@fayz-ai/core 0.59.0 → 0.63.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.
@@ -14,6 +14,10 @@ function fail(scope, msg) {
14
14
  function nonEmptyString(v) {
15
15
  return typeof v === "string" && v.trim().length > 0;
16
16
  }
17
+ function isComponentType(value) {
18
+ if (typeof value === "function") return true;
19
+ return typeof value === "object" && value !== null && "$$typeof" in value;
20
+ }
17
21
  function assertPluginManifestContract(manifest) {
18
22
  const id = manifest?.id;
19
23
  const scope = nonEmptyString(id) ? id : "<unknown plugin>";
@@ -28,7 +32,7 @@ function assertPluginManifestContract(manifest) {
28
32
  const routePaths = /* @__PURE__ */ new Set();
29
33
  for (const [i, route] of manifest.routes.entries()) {
30
34
  if (!nonEmptyString(route?.path)) fail(scope, `routes[${i}].path must be a non-empty string`);
31
- if (typeof route?.component !== "function") fail(scope, `routes[${i}].component must be a component`);
35
+ if (!isComponentType(route?.component)) fail(scope, `routes[${i}].component must be a component`);
32
36
  if (routePaths.has(route.path)) fail(scope, `duplicate route path "${route.path}"`);
33
37
  routePaths.add(route.path);
34
38
  }
@@ -42,7 +46,7 @@ function assertPluginManifestContract(manifest) {
42
46
  for (const [i, tab] of (manifest.settings ?? []).entries()) {
43
47
  if (!nonEmptyString(tab?.id)) fail(scope, `settings[${i}].id must be a non-empty string`);
44
48
  if (!nonEmptyString(tab?.label)) fail(scope, `settings[${i}].label must be a non-empty string`);
45
- if (typeof tab?.component !== "function") fail(scope, `settings[${i}].component must be a component`);
49
+ if (!isComponentType(tab?.component)) fail(scope, `settings[${i}].component must be a component`);
46
50
  if (settingIds.has(tab.id)) fail(scope, `duplicate settings tab id "${tab.id}"`);
47
51
  settingIds.add(tab.id);
48
52
  }
@@ -286,5 +290,5 @@ function assertConnectorContract(connector) {
286
290
  }
287
291
 
288
292
  export { PluginContractError, assertConnectorContract, assertPluginManifestContract, bespokeConnectorTables };
289
- //# sourceMappingURL=chunk-37YMNSAI.js.map
290
- //# sourceMappingURL=chunk-37YMNSAI.js.map
293
+ //# sourceMappingURL=chunk-QIF3U44O.js.map
294
+ //# sourceMappingURL=chunk-QIF3U44O.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/testing.ts"],"names":[],"mappings":"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","file":"chunk-QIF3U44O.js","sourcesContent":["// ---------------------------------------------------------------------------\n// Plugin contract assertions — the integrity half of the deploy gate.\n// ---------------------------------------------------------------------------\n// Framework-agnostic runtime checks (no test-runner dependency) that any\n// plugin's *.test.ts calls to prove its manifest/connector conform to the\n// platform contract BEFORE it can ship. A plugin that fails these would break\n// the host app at mount time (missing route component, duplicate ids, malformed\n// settings tab). Pair with a capability test (does the plugin do its job?) — see\n// docs/plugins/PLUGIN-PATTERNS.md → capability anatomy. These throw on the first violation.\nimport { errorMessage } from './lib/error-message'\nimport type { PluginManifest } from './types/plugins'\nimport type { Connector } from './integrations'\nimport {\n CONNECTOR_CATEGORIES,\n connectorEntities,\n connectorPlanes,\n connectorSubscribes,\n connectorSubscribesTo,\n grants,\n invocationPlane,\n isConnectorCategory,\n isEventPermission,\n permissionActions,\n requestPlaneSpec,\n} from './integrations'\nimport type { ConnectorPermission } from './integrations'\n\nexport class PluginContractError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'PluginContractError'\n }\n}\n\nfunction fail(scope: string, msg: string): never {\n throw new PluginContractError(`[${scope}] ${msg}`)\n}\n\nfunction nonEmptyString(v: unknown): v is string {\n return typeof v === 'string' && v.trim().length > 0\n}\n\n/**\n * Assert a PluginManifest is structurally sound enough to mount safely.\n * Checks identity, navigation/route wiring, settings tabs, declared features,\n * and id uniqueness. Throws PluginContractError on the first problem.\n */\n/**\n * A function component, or one of React's component objects — `React.lazy`,\n * `memo`, `forwardRef` — which are objects tagged with `$$typeof`. A page that\n * loads with its route is a `React.lazy`, and it is as much a component as the\n * function it resolves to.\n */\nfunction isComponentType(value: unknown): boolean {\n if (typeof value === 'function') return true\n return typeof value === 'object' && value !== null && '$$typeof' in value\n}\n\nexport function assertPluginManifestContract(manifest: PluginManifest): void {\n const id = manifest?.id\n const scope = nonEmptyString(id) ? id : '<unknown plugin>'\n\n for (const field of ['id', 'name', 'icon', 'version'] as const) {\n if (!nonEmptyString(manifest?.[field])) fail(scope, `manifest.${field} must be a non-empty string`)\n }\n\n if (!Array.isArray(manifest.navigation)) fail(scope, 'manifest.navigation must be an array (use [] for settings-only plugins)')\n if (!Array.isArray(manifest.routes)) fail(scope, 'manifest.routes must be an array (use [] for settings-only plugins)')\n\n // Every nav entry must point at a route; every route needs a path + component.\n for (const [i, nav] of manifest.navigation.entries()) {\n if (!nonEmptyString((nav as any)?.route)) fail(scope, `navigation[${i}].route must be a non-empty string`)\n }\n const routePaths = new Set<string>()\n for (const [i, route] of manifest.routes.entries()) {\n if (!nonEmptyString((route as any)?.path)) fail(scope, `routes[${i}].path must be a non-empty string`)\n if (!isComponentType((route as any)?.component)) fail(scope, `routes[${i}].component must be a component`)\n if (routePaths.has((route as any).path)) fail(scope, `duplicate route path \"${(route as any).path}\"`)\n routePaths.add((route as any).path)\n }\n // A nav entry that links to a route the plugin doesn't declare is dead UI.\n for (const [i, nav] of manifest.navigation.entries()) {\n const r = (nav as any).route\n if (routePaths.size > 0 && !routePaths.has(r)) {\n fail(scope, `navigation[${i}].route \"${r}\" has no matching route in manifest.routes`)\n }\n }\n\n // Settings tabs (the only UI surface integrations need) must be renderable.\n const settingIds = new Set<string>()\n for (const [i, tab] of (manifest.settings ?? []).entries()) {\n if (!nonEmptyString((tab as any)?.id)) fail(scope, `settings[${i}].id must be a non-empty string`)\n if (!nonEmptyString((tab as any)?.label)) fail(scope, `settings[${i}].label must be a non-empty string`)\n if (!isComponentType((tab as any)?.component)) fail(scope, `settings[${i}].component must be a component`)\n if (settingIds.has((tab as any).id)) fail(scope, `duplicate settings tab id \"${(tab as any).id}\"`)\n settingIds.add((tab as any).id)\n }\n\n for (const [i, feat] of (manifest.declaredFeatures ?? []).entries()) {\n if (!nonEmptyString((feat as any)?.id)) fail(scope, `declaredFeatures[${i}].id must be a non-empty string`)\n }\n\n for (const [i, src] of (manifest.emitsFrom ?? []).entries()) {\n if (!nonEmptyString(src?.table)) fail(scope, `emitsFrom[${i}].table must be a non-empty string`)\n if (!nonEmptyString(src?.entityKey)) fail(scope, `emitsFrom[${i}].entityKey must be a non-empty string`)\n for (const action of src.actions ?? []) {\n if (!EVENT_ACTIONS.has(action)) fail(scope, `emitsFrom[${i}] has unknown action \"${action}\"`)\n }\n }\n\n const functionSlugs = new Set<string>()\n for (const [i, fn] of (manifest.functions ?? []).entries()) {\n if (!SLUG.test(fn?.slug ?? '')) fail(scope, `functions[${i}].slug must be kebab-case — it becomes the deployed function name`)\n if (functionSlugs.has(fn.slug)) fail(scope, `duplicate function slug \"${fn.slug}\"`)\n functionSlugs.add(fn.slug)\n if (typeof fn.verifyJwt !== 'boolean') fail(scope, `functions[${i}].verifyJwt must be a boolean`)\n if (!FUNCTION_INGRESS.has(fn.ingress)) fail(scope, `functions[${i}].ingress \"${fn.ingress}\" is not one of ${[...FUNCTION_INGRESS].join(', ')}`)\n // The ingress authenticates by signature, not by a caller JWT it does not have.\n if (fn.ingress === 'fayz' && fn.verifyJwt) fail(scope, `functions[${i}] is reached through the Fayz ingress, so verifyJwt must be false`)\n for (const secret of fn.secrets ?? []) {\n // A name, never a value — this is the shape that keeps a key out of git.\n if (!SECRET_NAME.test(secret)) fail(scope, `functions[${i}].secrets must name secrets (SCREAMING_SNAKE_CASE), never carry their values`)\n }\n }\n\n for (const [i, def] of (manifest.connectors ?? []).entries()) {\n // An unlisted category renders NO badge rather than a wrong one, so the\n // mistake is invisible in a screenshot. Caught here instead.\n if (def.category !== undefined && !isConnectorCategory(def.category)) {\n fail(\n scope,\n `connectors[${i}].category \"${def.category}\" is not a catalogue category — ` +\n `use one of ${CONNECTOR_CATEGORIES.join(', ')}, taken from the catalogue row with this connector's slug.`,\n )\n }\n for (const pattern of def.subscribesTo ?? []) {\n if (!nonEmptyString(pattern)) fail(scope, `connectors[${i}].subscribesTo must hold non-empty patterns`)\n // Only a trailing star is honoured; see eventKeyMatches.\n if (pattern.includes('*') && !pattern.endsWith('*')) {\n fail(scope, `connectors[${i}].subscribesTo \"${pattern}\" — \"*\" is only honoured at the end`)\n }\n }\n\n assertConnectorPermissions(scope, `connectors[${i}]`, def)\n // The request plane's two fields are required THERE and meaningless\n // elsewhere. Checked at the manifest so a connector cannot reach a buyer\n // with an undeclared budget — the failure would otherwise be a spinner.\n if ((def.planes ?? []).includes('request')) {\n try {\n requestPlaneSpec(def)\n } catch (error) {\n fail(scope, `connectors[${i}] ${errorMessage(error)}`)\n }\n } else if (def.latencyBudgetMs !== undefined || def.onFailure !== undefined) {\n fail(\n scope,\n `connectors[${i}] declares latencyBudgetMs/onFailure but is not on the request plane — ` +\n `nothing enforces them, so they read as a guarantee that does not exist.`,\n )\n }\n // Authorization vs configuration. Both declarations end up on the same row,\n // and a key in both is a value with two owners: the connect form would write\n // it and the settings form would overwrite it.\n const fieldKeys = new Set((def.fields ?? []).map((f) => f.key))\n const settingKeys = new Set<string>()\n for (const [j, setting] of (def.settings ?? []).entries()) {\n const at = `connectors[${i}].settings[${j}]`\n if (!nonEmptyString(setting?.key)) fail(scope, `${at}.key must be a non-empty string`)\n if (!nonEmptyString(setting?.label)) fail(scope, `${at}.label must be a non-empty string`)\n if (!SETTING_TYPES.has(setting.type)) {\n fail(scope, `${at}.type \"${setting.type}\" is not one of ${[...SETTING_TYPES].join(', ')}`)\n }\n if (settingKeys.has(setting.key)) fail(scope, `${at} duplicates settings key \"${setting.key}\"`)\n settingKeys.add(setting.key)\n if (fieldKeys.has(setting.key)) {\n fail(\n scope,\n `${at}.key \"${setting.key}\" is also a credential field — a key either authorizes the ` +\n `connection (fields) or configures it (settings), never both.`,\n )\n }\n if (setting.type === 'select' || setting.type === 'multi-select') {\n if (!Array.isArray(setting.options) || setting.options.length === 0) {\n fail(scope, `${at} is a ${setting.type} and must declare options — that is what replaces a free-text box`)\n }\n for (const [k, option] of setting.options.entries()) {\n if (!nonEmptyString(option?.value)) fail(scope, `${at}.options[${k}].value must be a non-empty string`)\n if (!nonEmptyString(option?.label)) fail(scope, `${at}.options[${k}].label must be a non-empty string`)\n }\n }\n if (setting.pattern !== undefined) {\n if (setting.type !== 'text') fail(scope, `${at}.pattern only applies to a text setting`)\n try {\n new RegExp(setting.pattern)\n } catch {\n fail(scope, `${at}.pattern is not a valid regular expression`)\n }\n // A refusal with no sentence is a form that says no and not why.\n if (!nonEmptyString(setting.patternHint)) fail(scope, `${at} declares a pattern, so it must declare patternHint`)\n }\n }\n // Declared settings nobody can read or write are a screen that renders empty.\n if (settingKeys.size > 0) {\n if (typeof def.getSettings !== 'function') fail(scope, `connectors[${i}] declares settings but no getSettings()`)\n if (typeof def.saveSettings !== 'function') fail(scope, `connectors[${i}] declares settings but no saveSettings()`)\n }\n\n // \"Acionado em quais momentos\" — a moment on a plane the connector does not\n // have is a promise the code cannot keep.\n const planes = new Set(connectorPlanes(def))\n const momentKeys = new Set<string>()\n for (const [j, moment] of (def.invokedAt ?? []).entries()) {\n const at = `connectors[${i}].invokedAt[${j}]`\n if (!nonEmptyString(moment?.key)) fail(scope, `${at}.key must be a non-empty string`)\n if (!nonEmptyString(moment?.label)) fail(scope, `${at}.label must be a non-empty string`)\n if (momentKeys.has(moment.key)) fail(scope, `${at} duplicates key \"${moment.key}\"`)\n momentKeys.add(moment.key)\n const plane = invocationPlane(moment)\n if (!planes.has(plane)) {\n fail(scope, `${at} is declared on the ${plane} plane, which connectors[${i}].planes does not include`)\n }\n if (moment.trigger !== undefined) {\n if (plane !== 'sync') fail(scope, `${at}.trigger only applies to a sync moment`)\n if (!TRIGGERS.has(moment.trigger)) fail(scope, `${at} has unknown trigger \"${moment.trigger}\"`)\n }\n // A moment that reaches something the connector never asked for is the\n // screen answering \"quando ele age\" with access nobody consented to.\n const declared = new Set((def.permissions ?? []).map((p) => p.resource))\n for (const resource of moment.touches ?? []) {\n if (!declared.has(resource)) {\n fail(\n scope,\n `${at}.touches names \"${resource}\", which connectors[${i}].permissions does not declare — ` +\n `a call site cannot reach what the consent view never showed.`,\n )\n }\n }\n }\n\n for (const [j, auto] of (def.managedAutomations ?? []).entries()) {\n if (!nonEmptyString(auto?.eventKey)) fail(scope, `connectors[${i}].managedAutomations[${j}].eventKey must be a non-empty string`)\n if (!nonEmptyString(auto?.label)) fail(scope, `connectors[${i}].managedAutomations[${j}].label must be a non-empty string`)\n // The screen would promise a reaction the ingress never delivers.\n if (!connectorSubscribes(def, auto.eventKey)) {\n fail(scope, `connectors[${i}].managedAutomations[${j}] fires on \"${auto.eventKey}\", which no subscribesTo pattern covers`)\n }\n }\n }\n\n // A connector brings a ConnectorDefinition, not a pair of tables.\n for (const [i, mig] of (manifest.migrations ?? []).entries()) {\n for (const table of bespokeConnectorTables(mig?.sql)) {\n fail(\n scope,\n `migrations[${i}] (\"${mig?.id ?? '?'}\") creates public.${table} — a connector's own ` +\n `*_integrations / *_sync_log table. Store the connection in connections / ` +\n `sync_runs via createConnectionStore('<connector-id>'): two accounts are two ` +\n `rows separated by instance_key, and connector-specific counters go in stats.`,\n )\n }\n }\n\n // A plugin that contributes nothing mountable is almost always a mistake.\n // (Connector-only addon plugins contribute via `connectors` instead.)\n if (\n manifest.navigation.length === 0 &&\n manifest.routes.length === 0 &&\n (manifest.settings ?? []).length === 0 &&\n (manifest.connectors ?? []).length === 0\n ) {\n fail(scope, 'plugin contributes no navigation, routes, settings, or connectors — it would mount but do nothing')\n }\n}\n\n/**\n * What a connector says it needs — and the four ways that declaration can\n * contradict the ones that already existed.\n *\n * The feature this guards is a consent view. Its whole value is that the list it\n * shows is the list, so every way of ending up with two lists is refused here:\n *\n * 1. an action that does not exist for the resource kind (`listen` on a\n * record type, `write` on an event) — a word the reader would have to guess at;\n * 2. a `data` permission naming a resource the legacy `entities` never listed,\n * or an entity with no permission — the \"writes to an entity it never\n * listed\" case, in both directions;\n * 3. a `listen` permission the legacy `subscribesTo` does not name, or a\n * `subscribesTo` pattern no permission explains — the connector would be\n * delivered facts the consent view never showed, or shown facts the ingress\n * filters out;\n * 4. two permissions for the same resource — two rows, two reasons, and no\n * answer to which one the tenant agreed to.\n *\n * Rules 2 and 3 only bite when BOTH declarations are present. A connector built\n * against an older core declares only the legacy fields and is unaffected; a\n * connector written today declares only `permissions` and both are derived from\n * it. What is refused is saying both things and saying them differently.\n */\nfunction assertConnectorPermissions(\n scope: string,\n path: string,\n def: { permissions?: ConnectorPermission[]; entities?: string[]; subscribesTo?: string[] },\n): void {\n const permissions = def.permissions\n if (permissions === undefined) return\n if (!Array.isArray(permissions)) fail(scope, `${path}.permissions must be an array`)\n\n const seen = new Set<string>()\n for (const [j, permission] of permissions.entries()) {\n const at = `${path}.permissions[${j}]`\n if (permission?.kind !== 'data' && permission?.kind !== 'event') {\n fail(scope, `${at}.kind must be \"data\" or \"event\"`)\n }\n if (!nonEmptyString(permission.resource)) fail(scope, `${at}.resource must be a non-empty string`)\n // The reason is the only part a tenant can actually judge; a blank one turns\n // the screen back into the schema dump it exists to replace.\n if (!nonEmptyString(permission.reason)) {\n fail(scope, `${at} must declare a reason — the sentence the tenant judges before authorizing`)\n }\n if (!Array.isArray(permission.actions) || permission.actions.length === 0) {\n fail(scope, `${at}.actions must name at least one action — a resource with no access is not a permission`)\n }\n const legal = permissionActions(permission.kind)\n for (const action of permission.actions) {\n if (!legal.includes(action)) {\n fail(scope, `${at} asks for \"${action}\" on the ${permission.kind} resource \"${permission.resource}\", which only admits ${legal.join(', ')}`)\n }\n }\n if (isEventPermission(permission) && permission.resource.includes('*') && !permission.resource.endsWith('*')) {\n fail(scope, `${at}.resource \"${permission.resource}\" — \"*\" is only honoured at the end`)\n }\n const key = `${permission.kind}:${permission.resource}`\n if (seen.has(key)) fail(scope, `${at} repeats \"${key}\" — one resource, one row, one reason`)\n seen.add(key)\n }\n\n // (2) data permissions ↔ the legacy entities list.\n if (def.entities !== undefined) {\n const declared = new Set(connectorEntities({ permissions }))\n const legacy = new Set(def.entities)\n for (const entity of declared) {\n if (!legacy.has(entity)) {\n fail(\n scope,\n `${path}.permissions reaches \"${entity}\", which ${path}.entities does not list — ` +\n `the two describe the same access and must name the same set (drop entities; it is derived).`,\n )\n }\n }\n for (const entity of legacy) {\n if (!declared.has(entity)) {\n fail(\n scope,\n `${path}.entities lists \"${entity}\" with no permission saying what it does with it — ` +\n `a record type on the consent view with no read/write is a name, not a declaration.`,\n )\n }\n }\n }\n\n // (3) listen permissions ↔ the legacy subscribesTo list.\n if (def.subscribesTo !== undefined) {\n const declared = new Set(connectorSubscribesTo({ permissions }))\n const legacy = new Set(def.subscribesTo)\n for (const pattern of declared) {\n if (!legacy.has(pattern)) {\n fail(\n scope,\n `${path}.permissions listens to \"${pattern}\", which ${path}.subscribesTo does not — ` +\n `the ingress filters on that list, so the consent view would promise a fact never delivered.`,\n )\n }\n }\n for (const pattern of legacy) {\n if (!declared.has(pattern)) {\n fail(\n scope,\n `${path}.subscribesTo asks for \"${pattern}\" with no listen permission explaining it — ` +\n `the connector would receive a fact the tenant was never shown.`,\n )\n }\n }\n }\n}\n\n/**\n * `CREATE TABLE [IF NOT EXISTS] [schema.]name` where name ends in `_integrations`\n * or `_sync_log` — the pair four connectors each reinvented before\n * `connections` / `sync_runs` existed (FAY-1376). Neither generic table\n * matches, so a connector that stores its connection in them creates nothing.\n *\n * Deliberately duplicated in scripts/check-connector-tables.mjs, which scans the\n * .sql files themselves: that runs in the `contracts` CI job with no install and\n * no build, so it cannot import this. This half catches SQL declared inline on a\n * manifest, which no .sql walk would see. The two are held in agreement by one\n * case table, asserted from both sides — see\n * packages/core/test/integrations/connector-tables.test.ts.\n */\nconst BESPOKE_CONNECTOR_TABLE =\n /\\bcreate\\s+table\\s+(?:if\\s+not\\s+exists\\s+)?(?:[a-z0-9_]+\\s*\\.\\s*)?([a-z0-9_]*(?:_integrations|_sync_log))\\b/gi\n\n/** Table names a CREATE TABLE in this SQL would bring back. Empty = conformant. */\nexport function bespokeConnectorTables(sql: unknown): string[] {\n const text = typeof sql === 'string' ? sql.replace(/\"/g, '') : ''\n const found = new Set<string>()\n for (const m of text.matchAll(BESPOKE_CONNECTOR_TABLE)) found.add(m[1].toLowerCase())\n return [...found]\n}\n\nconst EVENT_ACTIONS = new Set(['created', 'updated', 'deleted'])\nconst FUNCTION_INGRESS = new Set(['fayz', 'none'])\nconst SLUG = /^[a-z0-9][a-z0-9-]*$/\nconst SECRET_NAME = /^[A-Z][A-Z0-9_]*$/\n\nconst SETTING_TYPES = new Set(['text', 'select', 'multi-select', 'toggle'])\nconst AUTH_KINDS = new Set(['oauth', 'api-key', 'mtls'])\nconst DIRECTIONS = new Set(['inbound', 'outbound', 'bidirectional'])\nconst TRIGGERS = new Set(['on-write', 'scheduled', 'manual', 'webhook'])\n\n/**\n * Assert an integration Connector descriptor is well-formed: identity present,\n * a known auth kind, and at least one capability with a valid direction +\n * trigger set. This is the contract a connector must satisfy BEFORE its\n * data-plane (edge function) exists — the TDD anchor for an integration.\n */\nexport function assertConnectorContract(connector: Connector): void {\n const scope = nonEmptyString(connector?.id) ? `connector:${connector.id}` : '<unknown connector>'\n for (const field of ['id', 'provider', 'pluginId'] as const) {\n if (!nonEmptyString(connector?.[field])) fail(scope, `connector.${field} must be a non-empty string`)\n }\n if (!AUTH_KINDS.has(connector.authKind)) fail(scope, `connector.authKind \"${connector.authKind}\" is not one of ${[...AUTH_KINDS].join(', ')}`)\n if (!Array.isArray(connector.capabilities) || connector.capabilities.length === 0) {\n fail(scope, 'connector.capabilities must list at least one capability')\n }\n for (const [i, cap] of connector.capabilities.entries()) {\n if (!nonEmptyString(cap?.entity)) fail(scope, `capabilities[${i}].entity must be a non-empty string`)\n if (!DIRECTIONS.has(cap.direction)) fail(scope, `capabilities[${i}].direction \"${cap.direction}\" is invalid`)\n if (!Array.isArray(cap.triggers) || cap.triggers.length === 0) fail(scope, `capabilities[${i}].triggers must be non-empty`)\n for (const trig of cap.triggers) {\n if (!TRIGGERS.has(trig)) fail(scope, `capabilities[${i}] has unknown trigger \"${trig}\"`)\n }\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { lazyComponent } from './lib/lazy-component';
1
2
  export { createDebug } from './lib/debug';
2
3
  export { errorMessage, describeError, offlineMessage } from './lib/error-message';
3
4
  export { useConnectivity, getConnectivity, subscribeConnectivity, installConnectivityListeners, markOffline, markOnline, RECONNECTED_EVENT, } from './lib/connectivity';
@@ -128,6 +129,8 @@ export type { ServiceResult, ServiceSuccess, ServiceFailure, ServiceRefusal, Cal
128
129
  export { I18nProvider, useI18nConfig, useTranslation, coreTranslations, mergeTranslations, registerTranslations, getCurrentLocale, setCurrentLocale, preloadLocale, setLocaleStore, tl, resolveLocale } from './i18n/index';
129
130
  export { hashRouterAdapter, historyRouterAdapter, staticRouterAdapter, hostRouterAdapter, defaultRouterAdapter, windowRouterAdapter, } from './router/index';
130
131
  export type { RouterAdapter } from './router/index';
132
+ export { configureAppRouter, appRouter, blockAppNavigation, appRoutingMode, currentAppPath, navigateApp, replaceApp, appHref, appUrl, onAppPathChange, useAppPath, } from './router/app-router';
133
+ export type { AppRoutingMode, AppRouterOptions } from './router/app-router';
131
134
  export { useNavHistoryStore, recordNavigation, useNavReferrer, navHistoryBack, routeModule, recordActivity, getRecentActivity, clearActivity, installActivityCapture, } from './router/history';
132
135
  export type { NavHistoryEntry, ActivityEvent } from './router/history';
133
136
  export type { AnalyticsCardDef, ResolvedAnalyticsCard, AnalyticsQuery, AnalyticsSource, AnalyticsRunContext, AnalyticsDimension, AnalyticsMeasure, AnalyticsAgg, AnalyticsGrain, AnalyticsFormat, AnalyticsFilterDef, AnalyticsFilterOption, AnalyticsVizDef, AnalyticsVizType, AnalyticsStatementDef, AnalyticsStatementSection, AnalyticsStatementTotal, AnalyticsStatementLine, AnalyticsColumnDef, AnalyticsPlacement, AnalyticsDateRange, AnalyticsCompare, AnalyticsQueryState, AnalyticsResult, AnalyticsSummary, AnalyticsProvider, AnalyticsRow, AnalyticsBatchRequest, } from './types/analytics';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { PluginContractError, assertConnectorContract, assertPluginManifestContract, bespokeConnectorTables } from './chunk-37YMNSAI.js';
1
+ export { PluginContractError, assertConnectorContract, assertPluginManifestContract, bespokeConnectorTables } from './chunk-QIF3U44O.js';
2
2
  export { CONNECTIONS_TABLE, CONNECTOR_CATEGORIES, ConnectionSettingsError, ConnectorRuntimeTokenUnavailableError, RequestBlockedError, RequestPlaneError, SYNC_RUNS_TABLE, assertSettingsAllowed, buyerIdempotencyKey, connectionKey, connectionRuns, connectionSettings, connectionStatus, connectorDirection, connectorEntities, connectorGrantScopes, connectorPermissions, connectorPlanes, connectorRuntimeToken, connectorSettings, connectorSubscribes, connectorSubscribesTo, createConnectionStore, createRpcEffectLedger, eventKeyMatches, getConnectorRuntimeTokenSource, grants, groupedPermissions, hasRequestPlane, hasSensitivePermission, invocationPlane, isConnectorCategory, isDataPermission, isEventPermission, isSettingSet, listConnections, missingRequiredSettings, permissionActions, permissionsWrite, preferredPlane, requestPlaneSpec, runEffect, runRequest, setConnectorRuntimeTokenSource, settingsStatus, setupStatusDetail, sortedPermissions, withAfterHooks } from './chunk-XXHB7ZRM.js';
3
3
  export { CONNECTOR_RUNTIME_TOKEN_HEADER, ConnectorHttpError, RateLimitExceededError, advanceWindow, backoffDelay, classify, createRateLimiter, cursorCompleteness, fetchWithRetry, isExpiring, paginate, parseRetryAfter, reconcileMirror, serializeCursor, sliceWindow, statusNeedsBody } from './chunk-3TRR2YLM.js';
4
4
  export { comboOf, createKeymap, directionOf, haptic, moveFocus, setHapticsEnabled } from './chunk-RBPDK2WB.js';
@@ -14,13 +14,21 @@ export { DataError, describeError, errorMessage, offlineMessage, toDataError } f
14
14
  export { clearEntityRegistry, deriveEntityKey, getAllEntities, getEntityByKey, registerEntity } from './chunk-CU64QI4A.js';
15
15
  import { getCurrentLocale } from './chunk-3Q7EFWGY.js';
16
16
  export { I18nProvider, coreTranslations, getCurrentLocale, mergeTranslations, preloadLocale, registerTranslations, resolveLocale, setCurrentLocale, setLocaleStore, tl, useI18nConfig, useTranslation } from './chunk-3Q7EFWGY.js';
17
+ import { historyRouterAdapter, hashRouterAdapter } from './chunk-OXQGRJZT.js';
17
18
  export { defaultRouterAdapter, hashRouterAdapter, historyRouterAdapter, hostRouterAdapter, staticRouterAdapter, windowRouterAdapter } from './chunk-OXQGRJZT.js';
18
19
  export { FayzRuntimeError, createFayzRuntimeClient } from './chunk-7RTUHSKY.js';
19
20
  export { AGENT_ROLES } from './chunk-2UPIZTL3.js';
20
- import * as React3 from 'react';
21
+ import * as React4 from 'react';
21
22
  import { useSyncExternalStore, useEffect } from 'react';
22
23
  import { create } from 'zustand';
23
24
 
25
+ function lazyComponent(load, fallback = null) {
26
+ const Lazy = React4.lazy(() => load().then((Component2) => ({ default: Component2 })));
27
+ const Loaded = (props) => React4.createElement(React4.Suspense, { fallback }, React4.createElement(Lazy, props));
28
+ Loaded.displayName = "LazyComponent";
29
+ return Loaded;
30
+ }
31
+
24
32
  // src/lib/debug.ts
25
33
  function isDevBuild() {
26
34
  try {
@@ -1125,20 +1133,20 @@ function matchesDomainEvent(event, match) {
1125
1133
  return patterns.some((p) => p === "*" || (p.endsWith("*") ? event.key.startsWith(p.slice(0, -1)) : p === event.key));
1126
1134
  }
1127
1135
  function useDataVersion(match) {
1128
- const [version, setVersion] = React3.useState(0);
1129
- const matchRef = React3.useRef(match);
1136
+ const [version, setVersion] = React4.useState(0);
1137
+ const matchRef = React4.useRef(match);
1130
1138
  matchRef.current = match;
1131
- React3.useEffect(() => registerEventSink((event) => {
1139
+ React4.useEffect(() => registerEventSink((event) => {
1132
1140
  if (matchesDomainEvent(event, matchRef.current)) setVersion((v) => v + 1);
1133
1141
  }), []);
1134
1142
  return version;
1135
1143
  }
1136
1144
  function useOnDataChange(match, handler) {
1137
- const matchRef = React3.useRef(match);
1145
+ const matchRef = React4.useRef(match);
1138
1146
  matchRef.current = match;
1139
- const handlerRef = React3.useRef(handler);
1147
+ const handlerRef = React4.useRef(handler);
1140
1148
  handlerRef.current = handler;
1141
- React3.useEffect(() => registerEventSink((event) => {
1149
+ React4.useEffect(() => registerEventSink((event) => {
1142
1150
  if (matchesDomainEvent(event, matchRef.current)) handlerRef.current(event);
1143
1151
  }), []);
1144
1152
  }
@@ -1236,9 +1244,9 @@ async function loadEventRuns(eventKey, options) {
1236
1244
 
1237
1245
  // src/events/index.tsx
1238
1246
  function useOnEvent(event, handler, deps = []) {
1239
- const ref = React3.useRef(handler);
1247
+ const ref = React4.useRef(handler);
1240
1248
  ref.current = handler;
1241
- React3.useEffect(
1249
+ React4.useEffect(
1242
1250
  () => eventBus.on(event, (payload) => ref.current(payload)),
1243
1251
  // eslint-disable-next-line react-hooks/exhaustive-deps
1244
1252
  [event, ...deps]
@@ -1844,15 +1852,15 @@ function blockEditorMode() {
1844
1852
  }
1845
1853
  var BLOCK_PATH_ATTRIBUTE = "data-fayz-block";
1846
1854
  var BLOCK_TYPE_ATTRIBUTE = "data-fayz-block-type";
1847
- var BlockPathContext = React3.createContext("");
1855
+ var BlockPathContext = React4.createContext("");
1848
1856
  function useBlockPath() {
1849
- return React3.useContext(BlockPathContext);
1857
+ return React4.useContext(BlockPathContext);
1850
1858
  }
1851
1859
  function getBlockErrorVisibility() {
1852
1860
  return errorVisibility ?? defaultVisibility();
1853
1861
  }
1854
1862
  function BlockErrorCard({ title, detail }) {
1855
- return React3.createElement(
1863
+ return React4.createElement(
1856
1864
  "div",
1857
1865
  {
1858
1866
  "data-block-error": title,
@@ -1865,14 +1873,14 @@ function BlockErrorCard({ title, detail }) {
1865
1873
  }
1866
1874
  },
1867
1875
  title,
1868
- detail ? React3.createElement("div", { style: { opacity: 0.8, marginTop: 4 } }, detail) : null
1876
+ detail ? React4.createElement("div", { style: { opacity: 0.8, marginTop: 4 } }, detail) : null
1869
1877
  );
1870
1878
  }
1871
1879
  function UnknownBlock({ type }) {
1872
1880
  if (getBlockErrorVisibility() === "silent") return null;
1873
- return React3.createElement(BlockErrorCard, { title: `Unknown block: "${type}"` });
1881
+ return React4.createElement(BlockErrorCard, { title: `Unknown block: "${type}"` });
1874
1882
  }
1875
- var BlockErrorBoundary = class extends React3.Component {
1883
+ var BlockErrorBoundary = class extends React4.Component {
1876
1884
  constructor() {
1877
1885
  super(...arguments);
1878
1886
  this.state = { error: null };
@@ -1886,22 +1894,22 @@ var BlockErrorBoundary = class extends React3.Component {
1886
1894
  render() {
1887
1895
  if (!this.state.error) return this.props.children;
1888
1896
  if (getBlockErrorVisibility() === "silent") return null;
1889
- return React3.createElement(BlockErrorCard, {
1897
+ return React4.createElement(BlockErrorCard, {
1890
1898
  title: `Block "${this.props.blockType}" crashed`,
1891
1899
  detail: this.state.error.message
1892
1900
  });
1893
1901
  }
1894
1902
  };
1895
- var BlockAncestryContext = React3.createContext([]);
1903
+ var BlockAncestryContext = React4.createContext([]);
1896
1904
  function ConstraintViolation({ detail }) {
1897
1905
  if (getBlockErrorVisibility() === "silent") return null;
1898
- return React3.createElement(BlockErrorCard, { title: "Misplaced block", detail });
1906
+ return React4.createElement(BlockErrorCard, { title: "Misplaced block", detail });
1899
1907
  }
1900
1908
  var warnedViolations = /* @__PURE__ */ new Set();
1901
1909
  function BlockRenderer({ node, path }) {
1902
- const ancestry = React3.useContext(BlockAncestryContext);
1910
+ const ancestry = React4.useContext(BlockAncestryContext);
1903
1911
  const Comp = getBlock(node.type);
1904
- if (!Comp) return React3.createElement(UnknownBlock, { type: node.type });
1912
+ if (!Comp) return React4.createElement(UnknownBlock, { type: node.type });
1905
1913
  const violations = checkNodePlacement(node.type, ancestry);
1906
1914
  if (violations.length > 0) {
1907
1915
  const message = violations.map((v) => v.detail).join("; ");
@@ -1909,23 +1917,23 @@ function BlockRenderer({ node, path }) {
1909
1917
  warnedViolations.add(message);
1910
1918
  console.warn(`[blocks] ${message}`);
1911
1919
  }
1912
- return React3.createElement(ConstraintViolation, { detail: violations[0].detail });
1920
+ return React4.createElement(ConstraintViolation, { detail: violations[0].detail });
1913
1921
  }
1914
1922
  const childEls = node.children?.length ? renderBlocks(node.children, path ? `${path}.children` : void 0) : null;
1915
- const rendered = React3.createElement(
1923
+ const rendered = React4.createElement(
1916
1924
  BlockAncestryContext.Provider,
1917
1925
  { value: ancestry.length ? [...ancestry, node.type] : [node.type] },
1918
- React3.createElement(
1926
+ React4.createElement(
1919
1927
  BlockErrorBoundary,
1920
1928
  { blockType: node.type },
1921
- React3.createElement(Comp, { ...node.props ?? {}, node }, childEls)
1929
+ React4.createElement(Comp, { ...node.props ?? {}, node }, childEls)
1922
1930
  )
1923
1931
  );
1924
1932
  if (!editorMode || !path) return rendered;
1925
- return React3.createElement(
1933
+ return React4.createElement(
1926
1934
  BlockPathContext.Provider,
1927
1935
  { value: path },
1928
- React3.createElement(
1936
+ React4.createElement(
1929
1937
  "div",
1930
1938
  {
1931
1939
  [BLOCK_PATH_ATTRIBUTE]: path,
@@ -1938,7 +1946,7 @@ function BlockRenderer({ node, path }) {
1938
1946
  }
1939
1947
  function renderBlocks(nodes, basePath) {
1940
1948
  return nodes.map(
1941
- (node, i) => React3.createElement(BlockRenderer, {
1949
+ (node, i) => React4.createElement(BlockRenderer, {
1942
1950
  key: node.id ?? `${node.type}-${i}`,
1943
1951
  node,
1944
1952
  // POSITIONAL, deliberately. `[#id]` is the reorder-stable form
@@ -3054,9 +3062,9 @@ var app_manifest_schema_default = {
3054
3062
  }
3055
3063
  }
3056
3064
  };
3057
- var ManifestContext = React3.createContext(null);
3065
+ var ManifestContext = React4.createContext(null);
3058
3066
  function useManifest() {
3059
- return React3.useContext(ManifestContext);
3067
+ return React4.useContext(ManifestContext);
3060
3068
  }
3061
3069
  function defineApp(manifest) {
3062
3070
  const full = {
@@ -3088,10 +3096,10 @@ function renderApp(input, opts = {}) {
3088
3096
  `Scaffold "${surface.scaffold}" is not registered. Call renderApp from the package that provides it (e.g. @fayz-ai/admin, @fayz-ai/portal, @fayz-ai/storefront) or call its register*Scaffold() first.`
3089
3097
  );
3090
3098
  }
3091
- return React3.createElement(
3099
+ return React4.createElement(
3092
3100
  ManifestContext.Provider,
3093
3101
  { value: manifest },
3094
- React3.createElement(Scaffold, { manifest, surface: surfaceName })
3102
+ React4.createElement(Scaffold, { manifest, surface: surfaceName })
3095
3103
  );
3096
3104
  }
3097
3105
 
@@ -3306,6 +3314,135 @@ async function record(client2, service, status, reason, durationMs, tenantId) {
3306
3314
  function callServiceForTenant(client2, tenantId, name, payload = {}, options = {}) {
3307
3315
  return callService(client2, name, payload, { ...options, tenantId });
3308
3316
  }
3317
+ var mode = "hash";
3318
+ var adapter = null;
3319
+ var uninstall = null;
3320
+ var configuredKey = null;
3321
+ var blockers = /* @__PURE__ */ new Set();
3322
+ function normalize(path) {
3323
+ const bare = path.replace(/^#/, "");
3324
+ if (!bare) return "/";
3325
+ return bare.startsWith("/") ? bare : `/${bare}`;
3326
+ }
3327
+ function configureAppRouter(next, options = {}) {
3328
+ const key = `${next}|${(options.documentPaths ?? []).join(",")}`;
3329
+ if (adapter && configuredKey === key) return adapter;
3330
+ configuredKey = key;
3331
+ uninstall?.();
3332
+ uninstall = null;
3333
+ mode = next;
3334
+ adapter = next === "history" ? guarded(historyRouterAdapter()) : hashRouterAdapter();
3335
+ if (next === "history" && typeof window !== "undefined") {
3336
+ uninstall = installHistoryBridges(adapter, options);
3337
+ }
3338
+ return adapter;
3339
+ }
3340
+ function blockAppNavigation(blocker) {
3341
+ blockers.add(blocker);
3342
+ return () => {
3343
+ blockers.delete(blocker);
3344
+ };
3345
+ }
3346
+ function guarded(router) {
3347
+ return {
3348
+ navigate(to) {
3349
+ for (const blocker of blockers) if (blocker(normalize(to))) return;
3350
+ router.navigate(to);
3351
+ },
3352
+ replace: (to) => router.replace(to),
3353
+ getCurrentPath: () => router.getCurrentPath(),
3354
+ onPathChange: (cb) => router.onPathChange(cb),
3355
+ href: (to) => router.href(to),
3356
+ interceptsLinkClicks: router.interceptsLinkClicks
3357
+ };
3358
+ }
3359
+ function appRouter() {
3360
+ if (!adapter) adapter = hashRouterAdapter();
3361
+ return adapter;
3362
+ }
3363
+ function appRoutingMode() {
3364
+ return mode;
3365
+ }
3366
+ function currentAppPath() {
3367
+ if (typeof window === "undefined") return "/";
3368
+ return normalize(appRouter().getCurrentPath() || "/");
3369
+ }
3370
+ function navigateApp(to) {
3371
+ appRouter().navigate(normalize(to));
3372
+ }
3373
+ function replaceApp(to) {
3374
+ const router = appRouter();
3375
+ const before = router.getCurrentPath();
3376
+ router.replace(normalize(to));
3377
+ if (mode === "hash" && typeof window !== "undefined" && router.getCurrentPath() !== before) {
3378
+ window.dispatchEvent(new HashChangeEvent("hashchange"));
3379
+ }
3380
+ }
3381
+ function appHref(to) {
3382
+ if (/^([a-z][a-z0-9+.-]*:|\/\/)/i.test(to)) return to;
3383
+ return appRouter().href(normalize(to));
3384
+ }
3385
+ function appUrl(to) {
3386
+ if (typeof window === "undefined") return appHref(to);
3387
+ const href = appHref(to);
3388
+ return href.startsWith("#") ? `${window.location.origin}${window.location.pathname}${href}` : `${window.location.origin}${href}`;
3389
+ }
3390
+ function onAppPathChange(cb) {
3391
+ return appRouter().onPathChange((path) => cb(normalize(path || "/")));
3392
+ }
3393
+ function useAppPath() {
3394
+ const [path, setPath] = React4.useState(currentAppPath);
3395
+ React4.useEffect(() => {
3396
+ setPath(currentAppPath());
3397
+ return onAppPathChange(setPath);
3398
+ }, []);
3399
+ return path;
3400
+ }
3401
+ function installHistoryBridges(router, options) {
3402
+ const documentPaths = (options.documentPaths ?? []).map(normalize);
3403
+ const isDocumentPath = (pathname) => documentPaths.some((p) => pathname === p || pathname.startsWith(p.endsWith("/") ? p : `${p}/`));
3404
+ const legacyTarget = (hash) => hash.startsWith("#/") ? normalize(hash.slice(1)) : null;
3405
+ const opened = legacyTarget(window.location.hash);
3406
+ if (opened) window.history.replaceState(window.history.state, "", opened);
3407
+ const onHashChange = () => {
3408
+ const target = legacyTarget(window.location.hash);
3409
+ if (target) router.replace(target);
3410
+ };
3411
+ const onClick = (event) => {
3412
+ if (event.defaultPrevented || event.button !== 0) return;
3413
+ if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
3414
+ const anchor = event.target?.closest?.("a");
3415
+ if (!anchor || anchor.hasAttribute("download")) return;
3416
+ const target = anchor.getAttribute("target");
3417
+ if (target && target !== "_self") return;
3418
+ const raw = anchor.getAttribute("href");
3419
+ if (!raw) return;
3420
+ const fromFragment = legacyTarget(raw);
3421
+ if (fromFragment) {
3422
+ event.preventDefault();
3423
+ router.navigate(fromFragment);
3424
+ return;
3425
+ }
3426
+ if (raw.startsWith("#")) return;
3427
+ let url;
3428
+ try {
3429
+ url = new URL(anchor.href, window.location.href);
3430
+ } catch {
3431
+ return;
3432
+ }
3433
+ if (url.origin !== window.location.origin) return;
3434
+ if (isDocumentPath(url.pathname)) return;
3435
+ if (/\.[a-z0-9]{1,5}$/i.test(url.pathname)) return;
3436
+ event.preventDefault();
3437
+ router.navigate(url.pathname + url.search + url.hash);
3438
+ };
3439
+ window.addEventListener("hashchange", onHashChange);
3440
+ document.addEventListener("click", onClick);
3441
+ return () => {
3442
+ window.removeEventListener("hashchange", onHashChange);
3443
+ document.removeEventListener("click", onClick);
3444
+ };
3445
+ }
3309
3446
  var MAX_ENTRIES = 20;
3310
3447
  var useNavHistoryStore = create((set) => ({
3311
3448
  stack: [],
@@ -3751,9 +3888,9 @@ function reportAppError(error, context = {}) {
3751
3888
  }
3752
3889
  return report;
3753
3890
  }
3754
- var uninstall = null;
3891
+ var uninstall2 = null;
3755
3892
  function installGlobalErrorHandlers() {
3756
- if (uninstall) return uninstall;
3893
+ if (uninstall2) return uninstall2;
3757
3894
  if (typeof window === "undefined") return () => {
3758
3895
  };
3759
3896
  const onError = (event) => {
@@ -3767,12 +3904,12 @@ function installGlobalErrorHandlers() {
3767
3904
  };
3768
3905
  window.addEventListener("error", onError);
3769
3906
  window.addEventListener("unhandledrejection", onRejection);
3770
- uninstall = () => {
3907
+ uninstall2 = () => {
3771
3908
  window.removeEventListener("error", onError);
3772
3909
  window.removeEventListener("unhandledrejection", onRejection);
3773
- uninstall = null;
3910
+ uninstall2 = null;
3774
3911
  };
3775
- return uninstall;
3912
+ return uninstall2;
3776
3913
  }
3777
3914
  function createVendorReporter(client2) {
3778
3915
  return (report) => {
@@ -3982,6 +4119,6 @@ function cancelReplayResults(rows, operationKey) {
3982
4119
  });
3983
4120
  }
3984
4121
 
3985
- export { ADDRESS_REQUIRED_KEYS, APP_ERROR_EVENT, BLOCK_PATH_ATTRIBUTE, BLOCK_TYPE_ATTRIBUTE, BR_COUNTRY_CALLING_CODE, BR_MATCH_SUFFIX_LENGTH, BlockChildren, BlockErrorBoundary, BlockRenderer, COUNTRIES, CURRENT_MANIFEST_VERSION, DEFAULT_COUNTRY, DEFAULT_LEAD_PADDING, DEFAULT_TRAIL_PADDING, EMPTY_APP_CONFIG, EVENT_LOG_TABLE, IMPERSONATION_KEY, MAX_QUICK_REPLY_BUTTONS, MAX_TEMPLATE_VARIABLES, MESSAGE_TEMPLATES_TABLE, MIN_QUERY_LENGTH, PROVIDER_TEMPLATE_LANGUAGE, RECONNECTED_EVENT, RECORD_GROUP, TENANT_OWNED_MANIFEST_KEYS, WidgetZone, absoluteUrl, activeFacet, app_manifest_schema_default as appManifestSchema, applyAppConfigToManifest, applyNavComposition, applySeo, blockEditorMode, brNationalNumber, brPhoneSuffixKey, breadcrumbJsonLd, buildCSV, buildSeoTags, callService, callServiceForTenant, cancelReplayResults, channelOfOrder, clearActivity, clearErrorReporters, clearEventSinks, clearMessageDefaults, clearPostalCache, clearSearchCache, compileProviderTemplate, computeContractHash, countryName, createDebug, createEdgePostalProvider, createPendingCommand, createSafeDataProvider, createVendorReporter, createViaCepProvider, currencyConfig, defineApp, digitsOf, docKind, documentRefusal, downloadCSV, emitDomainEvent, exportCSV, fetchAppConfig, fixedDiscountShares, foldText, foldWithMap, formatCNPJ, formatCPF, formatCurrency, formatDate, formatDateTime, formatPostalCode, getActiveLocale, getBlockErrorVisibility, getConnectivity, getCountry, getCountrySchema, getDefaultCurrency, getEventsWithoutMessages, getHouseCurrency, getMessageDefaults, getPostalLookupProvider, getRecentActivity, highlightRanges, installActivityCapture, installConnectivityListeners, installGlobalErrorHandlers, invalidateAppConfig, isAddressEmpty, isAddressIncomplete, isBankEmpty, isBankIncomplete, isImpersonating, isSearchIndexAvailable, isValidCNPJ, isValidCPF, isValidCpfOrCnpj, isValidPostalCode, isValidSpanishTaxId, legacyKindOfChannel, lineAddOnLabel, lineAddOns, lineAddOnsSummary, loadCritical, loadEventRuns, loadMessageOverrides, localDateKey, lookupPostalCode, markOffline, markOnline, maskCpfCnpj, maskDigitCount, maskPhone, migrateManifest, navHistoryBack, normalizeAppConfig, normalizeBrPhoneToE164, normalizeMessageActions, normalizePostalCode, normalizeQuery, onDomainEvent, onDomainEvents, onlyDigits, openingServiceCharge, organizationJsonLd, payeeAccountFields, payeeMethodOf, placementRuleApplies, positionalVariables, providerTemplateName, readImpersonation, recordActivity, recordEventRun, recordNavigation, recordRailFields, registerErrorReporter, registerEventSink, registerManifestMigration, registerMessageDefaults, renderApp, renderBlocks, renderMessageTemplate, reportAppError, reportDataError, resetErrorDedupe, resolveBackendEnv, resolveCurrency, resolveIntegrationSurface, resolveMessage, resolveMessages, routeModule, sampleEventPayload, scoreCandidate, searchEverything, seoOrigin, serializeManifest, serializeManifestWithHash, setBlockEditorMode, setBlockErrorVisibility, setDefaultCurrency, setHouseCurrency, setPostalLookupProvider, setSearchIndexAvailable, shortHash, similarity, startEventLog, subscribeConnectivity, subscribeHouseCurrency, supportedCountrySchemas, surfaceAllowsWrites, toTenantPluginBindings, todayLocal, unitDisabledModules, unmaskPhone, useBlockPath, useConnectivity, useDataVersion, useManifest, useNavHistoryStore, useNavReferrer, useOnDataChange, useOnEvent, useSeo, validateAddress, validateManifest, writeImpersonation };
4122
+ export { ADDRESS_REQUIRED_KEYS, APP_ERROR_EVENT, BLOCK_PATH_ATTRIBUTE, BLOCK_TYPE_ATTRIBUTE, BR_COUNTRY_CALLING_CODE, BR_MATCH_SUFFIX_LENGTH, BlockChildren, BlockErrorBoundary, BlockRenderer, COUNTRIES, CURRENT_MANIFEST_VERSION, DEFAULT_COUNTRY, DEFAULT_LEAD_PADDING, DEFAULT_TRAIL_PADDING, EMPTY_APP_CONFIG, EVENT_LOG_TABLE, IMPERSONATION_KEY, MAX_QUICK_REPLY_BUTTONS, MAX_TEMPLATE_VARIABLES, MESSAGE_TEMPLATES_TABLE, MIN_QUERY_LENGTH, PROVIDER_TEMPLATE_LANGUAGE, RECONNECTED_EVENT, RECORD_GROUP, TENANT_OWNED_MANIFEST_KEYS, WidgetZone, absoluteUrl, activeFacet, appHref, app_manifest_schema_default as appManifestSchema, appRouter, appRoutingMode, appUrl, applyAppConfigToManifest, applyNavComposition, applySeo, blockAppNavigation, blockEditorMode, brNationalNumber, brPhoneSuffixKey, breadcrumbJsonLd, buildCSV, buildSeoTags, callService, callServiceForTenant, cancelReplayResults, channelOfOrder, clearActivity, clearErrorReporters, clearEventSinks, clearMessageDefaults, clearPostalCache, clearSearchCache, compileProviderTemplate, computeContractHash, configureAppRouter, countryName, createDebug, createEdgePostalProvider, createPendingCommand, createSafeDataProvider, createVendorReporter, createViaCepProvider, currencyConfig, currentAppPath, defineApp, digitsOf, docKind, documentRefusal, downloadCSV, emitDomainEvent, exportCSV, fetchAppConfig, fixedDiscountShares, foldText, foldWithMap, formatCNPJ, formatCPF, formatCurrency, formatDate, formatDateTime, formatPostalCode, getActiveLocale, getBlockErrorVisibility, getConnectivity, getCountry, getCountrySchema, getDefaultCurrency, getEventsWithoutMessages, getHouseCurrency, getMessageDefaults, getPostalLookupProvider, getRecentActivity, highlightRanges, installActivityCapture, installConnectivityListeners, installGlobalErrorHandlers, invalidateAppConfig, isAddressEmpty, isAddressIncomplete, isBankEmpty, isBankIncomplete, isImpersonating, isSearchIndexAvailable, isValidCNPJ, isValidCPF, isValidCpfOrCnpj, isValidPostalCode, isValidSpanishTaxId, lazyComponent, legacyKindOfChannel, lineAddOnLabel, lineAddOns, lineAddOnsSummary, loadCritical, loadEventRuns, loadMessageOverrides, localDateKey, lookupPostalCode, markOffline, markOnline, maskCpfCnpj, maskDigitCount, maskPhone, migrateManifest, navHistoryBack, navigateApp, normalizeAppConfig, normalizeBrPhoneToE164, normalizeMessageActions, normalizePostalCode, normalizeQuery, onAppPathChange, onDomainEvent, onDomainEvents, onlyDigits, openingServiceCharge, organizationJsonLd, payeeAccountFields, payeeMethodOf, placementRuleApplies, positionalVariables, providerTemplateName, readImpersonation, recordActivity, recordEventRun, recordNavigation, recordRailFields, registerErrorReporter, registerEventSink, registerManifestMigration, registerMessageDefaults, renderApp, renderBlocks, renderMessageTemplate, replaceApp, reportAppError, reportDataError, resetErrorDedupe, resolveBackendEnv, resolveCurrency, resolveIntegrationSurface, resolveMessage, resolveMessages, routeModule, sampleEventPayload, scoreCandidate, searchEverything, seoOrigin, serializeManifest, serializeManifestWithHash, setBlockEditorMode, setBlockErrorVisibility, setDefaultCurrency, setHouseCurrency, setPostalLookupProvider, setSearchIndexAvailable, shortHash, similarity, startEventLog, subscribeConnectivity, subscribeHouseCurrency, supportedCountrySchemas, surfaceAllowsWrites, toTenantPluginBindings, todayLocal, unitDisabledModules, unmaskPhone, useAppPath, useBlockPath, useConnectivity, useDataVersion, useManifest, useNavHistoryStore, useNavReferrer, useOnDataChange, useOnEvent, useSeo, validateAddress, validateManifest, writeImpersonation };
3986
4123
  //# sourceMappingURL=index.js.map
3987
4124
  //# sourceMappingURL=index.js.map