@infuro/cms-core 1.0.34 → 1.0.35

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 (158) hide show
  1. package/README.md +13 -0
  2. package/dist/OrderTrackPage-W3J6WIG2.js +426 -0
  3. package/dist/OrderTrackPage-Z6FCJQYY.cjs +428 -0
  4. package/dist/admin.cjs +34329 -20923
  5. package/dist/admin.d.cts +186 -9
  6. package/dist/admin.d.ts +186 -9
  7. package/dist/admin.js +34140 -20829
  8. package/dist/api.cjs +120 -17515
  9. package/dist/api.d.cts +633 -3
  10. package/dist/api.d.ts +633 -3
  11. package/dist/api.js +14 -17528
  12. package/dist/auth.cjs +192 -1034
  13. package/dist/auth.d.cts +194 -51
  14. package/dist/auth.d.ts +194 -51
  15. package/dist/auth.js +4 -966
  16. package/dist/chunk-2XE4X74C.js +29602 -0
  17. package/dist/chunk-3DZRIZOD.cjs +52 -0
  18. package/dist/chunk-3KPNTQBV.cjs +620 -0
  19. package/dist/chunk-46GKADYE.cjs +84 -0
  20. package/dist/chunk-4TRPKBKO.js +589 -0
  21. package/dist/chunk-5ELSW2UP.js +150 -0
  22. package/dist/chunk-6KPQWRFW.js +171 -0
  23. package/dist/chunk-7NMT3GBR.cjs +29 -0
  24. package/dist/chunk-7YIBMQDR.cjs +86 -0
  25. package/dist/chunk-BGJAV67S.cjs +29710 -0
  26. package/dist/chunk-CNTSLED2.cjs +559 -0
  27. package/dist/chunk-CRFV5WJK.js +16 -0
  28. package/dist/chunk-D5FBNKQM.cjs +104 -0
  29. package/dist/chunk-EF2JBPDM.js +114 -0
  30. package/dist/chunk-EQPITOP6.js +543 -0
  31. package/dist/chunk-GO7PPYNU.js +76 -0
  32. package/dist/chunk-HF3L2GIT.cjs +194 -0
  33. package/dist/chunk-J7XHLOLO.js +830 -0
  34. package/dist/chunk-JBRR5UYL.js +87 -0
  35. package/dist/chunk-JC6DLWTE.js +21 -0
  36. package/dist/chunk-JHF4YYRC.cjs +188 -0
  37. package/dist/chunk-JXF23MPG.js +25 -0
  38. package/dist/chunk-MQBT33IV.js +48 -0
  39. package/dist/chunk-N44BJZ4C.cjs +123 -0
  40. package/dist/chunk-OOTLNH63.cjs +18 -0
  41. package/dist/chunk-PAMVINEX.cjs +577 -0
  42. package/dist/chunk-PNOKNSG2.cjs +222 -0
  43. package/dist/chunk-QM733NUK.js +186 -0
  44. package/dist/chunk-R73BKDRO.cjs +90 -0
  45. package/dist/chunk-SHUYVCID.js +4 -0
  46. package/dist/chunk-SYBOCAWB.js +97 -0
  47. package/dist/chunk-TDV6EJHV.js +192 -0
  48. package/dist/chunk-TFUOHI37.cjs +839 -0
  49. package/dist/chunk-TIAEXJLI.cjs +182 -0
  50. package/dist/chunk-UPLVMVRX.cjs +23 -0
  51. package/dist/chunk-USNT2KNT.cjs +6 -0
  52. package/dist/chunk-WEMDMVHQ.js +216 -0
  53. package/dist/chunk-XDSNZUW7.js +564 -0
  54. package/dist/chunk-XQ3QUHWR.cjs +83 -0
  55. package/dist/chunk-XW5ATPRW.cjs +155 -0
  56. package/dist/chunk-ZQ4X6OAU.js +82 -0
  57. package/dist/chunk-ZSVCP6N3.js +83 -0
  58. package/dist/cli.cjs +103 -84
  59. package/dist/cli.js +62 -27
  60. package/dist/email-FKR4FXFI.js +5 -0
  61. package/dist/email-KVKVPNCL.cjs +58 -0
  62. package/dist/email-queue-CGZBVVAS.js +2 -0
  63. package/dist/email-queue-TPZWLTIV.cjs +23 -0
  64. package/dist/erp-config-enabled-CUMQ6N2V.cjs +11 -0
  65. package/dist/erp-config-enabled-T37X7T34.js +2 -0
  66. package/dist/erp-order-invoice-3YISSOWW.js +3 -0
  67. package/dist/erp-order-invoice-ZR5F2KTA.cjs +12 -0
  68. package/dist/event-order-defaults-6E543227.js +2 -0
  69. package/dist/event-order-defaults-DUGDVGJI.cjs +39 -0
  70. package/dist/event-order-notifications-5GSAOYVS.cjs +27 -0
  71. package/dist/event-order-notifications-IIIF23D5.js +10 -0
  72. package/dist/hooks.cjs +259 -132
  73. package/dist/hooks.d.cts +42 -1
  74. package/dist/hooks.d.ts +42 -1
  75. package/dist/hooks.js +234 -91
  76. package/dist/index.cjs +3884 -22307
  77. package/dist/index.d.cts +2203 -772
  78. package/dist/index.d.ts +2203 -772
  79. package/dist/index.js +2871 -22064
  80. package/dist/interpolate-WAKPN56R.cjs +11 -0
  81. package/dist/interpolate-WDUWDF3I.js +2 -0
  82. package/dist/layout-36UFTHC5.cjs +11 -0
  83. package/dist/layout-AOBN26XG.js +2 -0
  84. package/dist/migrations/1779400000000-ConvertStatusToEnum.ts +142 -0
  85. package/dist/migrations/1779400000000-SeedDefaultCurrencies.ts +33 -0
  86. package/dist/migrations/1779500000000-VendorRolesAndPermissions.ts +102 -0
  87. package/dist/migrations/1779600000000-VendorRegistrationProfile.ts +52 -0
  88. package/dist/migrations/1779700000000-CollectionIsCatalog.ts +22 -0
  89. package/dist/migrations/1779710000000-CollectionPlatformCatalog.ts +60 -0
  90. package/dist/migrations/1779720000000-ProductCategoryPlatformCatalog.ts +157 -0
  91. package/dist/migrations/1779800000000-EventsAndEventProducts.ts +173 -0
  92. package/dist/migrations/1779810000000-BackfillVendorRoleEventsPermissions.ts +38 -0
  93. package/dist/migrations/1779820000000-FixProductsCategoryForeignKey.ts +70 -0
  94. package/dist/migrations/1779830000000-ProductTitleColumn.ts +32 -0
  95. package/dist/migrations/1779840000000-EventAboutAndVisibilityFields.ts +34 -0
  96. package/dist/migrations/1779850000000-EventCityCountrySplit.ts +43 -0
  97. package/dist/migrations/1779860000000-CreateCombos.ts +140 -0
  98. package/dist/migrations/1780100000000-OrderAttendeesEventId.ts +55 -0
  99. package/dist/migrations/1780110000000-EventContactFormId.ts +49 -0
  100. package/dist/migrations/1780130000000-ProductVariants.ts +54 -0
  101. package/dist/migrations/1780140000000-EventManagementEnhancements.ts +44 -0
  102. package/dist/migrations/1780160000000-EventRegistrationGstProductContactForm.ts +79 -0
  103. package/dist/migrations/1780170000000-ComboCurrencyPrices.ts +20 -0
  104. package/dist/migrations/1781110000000-VendorOwnerCombosPermission.ts +38 -0
  105. package/dist/migrations/1781120000000-RefundPoliciesAndRequests.ts +225 -0
  106. package/dist/migrations/1781130000000-CreateAttendees.ts +44 -0
  107. package/dist/migrations/1781140000000-EventOrderNotifications.ts +29 -0
  108. package/dist/migrations/1781150000000-EventNamedLists.ts +28 -0
  109. package/dist/migrations/1781160000000-RefundPolicyEventTiers.ts +27 -0
  110. package/dist/migrations/1781170000000-EventRefundPolicy.ts +42 -0
  111. package/dist/migrations/1781180000000-RemoveCartItemsUniqueConstraint.ts +15 -0
  112. package/dist/migrations/1781190000000-RenameProductTaxesToProductConfig.ts +84 -0
  113. package/dist/migrations/1781200000000-VendorOwnerProductConfigPermissions.ts +51 -0
  114. package/dist/migrations/1781210000000-VendorRoleProductConfigPermissions.ts +46 -0
  115. package/dist/migrations/helpers/vendor-role-seed.ts +243 -0
  116. package/dist/paid-order-erp-3USEG6WL.js +3 -0
  117. package/dist/paid-order-erp-FSQ3GSXE.cjs +12 -0
  118. package/dist/pg-boss-service-4XF2TQ2E.js +2 -0
  119. package/dist/pg-boss-service-L6MTF4EQ.cjs +15 -0
  120. package/dist/razorpay-KLO2KNCB.js +49 -0
  121. package/dist/razorpay-U23LGY72.cjs +56 -0
  122. package/dist/rbac-debug-db-D7ME7QUY.cjs +35 -0
  123. package/dist/rbac-debug-db-MTCTVNNM.js +33 -0
  124. package/dist/sms-defaults-2NL24H57.js +2 -0
  125. package/dist/sms-defaults-KCOPKQBA.cjs +19 -0
  126. package/dist/stripe-4FD27QVJ.js +51 -0
  127. package/dist/stripe-VU6OEG2D.cjs +57 -0
  128. package/dist/theme.cjs +31 -59
  129. package/dist/theme.d.cts +78 -3
  130. package/dist/theme.d.ts +78 -3
  131. package/dist/theme.js +23 -20
  132. package/dist/vendor-invite-status-77O7ZQ3U.cjs +19 -0
  133. package/dist/vendor-invite-status-PWJ3DE76.js +2 -0
  134. package/dist/whatsapp-queue-3DXA4MXU.js +2 -0
  135. package/dist/whatsapp-queue-KG65MXD5.cjs +15 -0
  136. package/package.json +147 -142
  137. package/dist/admin.cjs.map +0 -1
  138. package/dist/admin.js.map +0 -1
  139. package/dist/api.cjs.map +0 -1
  140. package/dist/api.js.map +0 -1
  141. package/dist/auth.cjs.map +0 -1
  142. package/dist/auth.js.map +0 -1
  143. package/dist/cli.cjs.map +0 -1
  144. package/dist/cli.js.map +0 -1
  145. package/dist/config-DJ5CmQvS.d.cts +0 -8
  146. package/dist/config-DJ5CmQvS.d.ts +0 -8
  147. package/dist/hooks.cjs.map +0 -1
  148. package/dist/hooks.js.map +0 -1
  149. package/dist/index-Bf5GO8fu.d.cts +0 -583
  150. package/dist/index-DOiJuMQA.d.ts +0 -583
  151. package/dist/index.cjs.map +0 -1
  152. package/dist/index.js.map +0 -1
  153. package/dist/theme.cjs.map +0 -1
  154. package/dist/theme.js.map +0 -1
  155. package/dist/types-DCVaXlPV.d.cts +0 -78
  156. package/dist/types-DCVaXlPV.d.ts +0 -78
  157. package/dist/vendor-scope-DTYhJk_I.d.cts +0 -129
  158. package/dist/vendor-scope-DTYhJk_I.d.ts +0 -129
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/theme/index.ts","../src/theme/registry.ts","../src/theme/renderer.ts"],"sourcesContent":["export type {\r\n PropType,\r\n PropDefinition,\r\n ComponentMeta,\r\n ThemeComponent,\r\n ThemeConfig,\r\n LayoutConfig,\r\n NavItem,\r\n NavbarConfig,\r\n FooterConfig,\r\n} from './types';\r\n\r\nexport { createTheme, buildResolver, getCatalog } from './registry';\r\nexport type { CatalogGroup } from './registry';\r\n\r\nexport { PageRenderer } from './renderer';\r\n","import type { ThemeConfig, ThemeComponent, ComponentMeta } from './types';\r\n\r\nexport function createTheme(config: ThemeConfig): ThemeConfig {\r\n const names = config.components.map((c) => c.meta.name);\r\n const duplicates = names.filter((n, i) => names.indexOf(n) !== i);\r\n if (duplicates.length) {\r\n throw new Error(`Duplicate component names in theme \"${config.name}\": ${duplicates.join(', ')}`);\r\n }\r\n return Object.freeze(config) as ThemeConfig;\r\n}\r\n\r\nexport function buildResolver(theme: ThemeConfig): Record<string, React.ComponentType<any>> {\r\n const resolver: Record<string, React.ComponentType<any>> = {};\r\n for (const { meta, component } of theme.components) {\r\n resolver[meta.name] = component;\r\n }\r\n return resolver;\r\n}\r\n\r\nexport interface CatalogGroup {\r\n category: string;\r\n components: ComponentMeta[];\r\n}\r\n\r\nexport function getCatalog(theme: ThemeConfig): CatalogGroup[] {\r\n const groups = new Map<string, ComponentMeta[]>();\r\n for (const { meta } of theme.components) {\r\n const list = groups.get(meta.category) || [];\r\n list.push(meta);\r\n groups.set(meta.category, list);\r\n }\r\n return Array.from(groups.entries()).map(([category, components]) => ({\r\n category,\r\n components,\r\n }));\r\n}\r\n","import React from 'react';\r\nimport type { ThemeConfig, NavbarConfig, FooterConfig } from './types';\r\nimport { buildResolver } from './registry';\r\n\r\ninterface CraftNode {\r\n type: string | { resolvedName: string };\r\n props: Record<string, any>;\r\n nodes?: string[];\r\n linkedNodes?: Record<string, string>;\r\n}\r\n\r\ntype CraftJson = Record<string, CraftNode>;\r\n\r\ninterface PageRendererProps {\r\n content: CraftJson;\r\n theme: ThemeConfig;\r\n navbarConfig?: NavbarConfig;\r\n footerConfig?: FooterConfig;\r\n}\r\n\r\nexport function PageRenderer({ content, theme, navbarConfig, footerConfig }: PageRendererProps) {\r\n const resolver = buildResolver(theme);\r\n const NavbarComponent = theme.layout?.navbar?.component;\r\n const FooterComponent = theme.layout?.footer?.component;\r\n\r\n return React.createElement(\r\n React.Fragment,\r\n null,\r\n NavbarComponent && navbarConfig\r\n ? React.createElement(NavbarComponent, navbarConfig)\r\n : null,\r\n React.createElement('main', null, renderNode(content, 'ROOT', resolver)),\r\n FooterComponent && footerConfig\r\n ? React.createElement(FooterComponent, footerConfig)\r\n : null,\r\n );\r\n}\r\n\r\nfunction getChildIds(node: CraftNode): string[] {\r\n const fromNodes = node.nodes ?? [];\r\n const fromLinked = Object.values(node.linkedNodes ?? {});\r\n return [...fromNodes, ...fromLinked];\r\n}\r\n\r\nfunction renderNode(\r\n json: CraftJson,\r\n nodeId: string,\r\n resolver: Record<string, React.ComponentType<any>>,\r\n): React.ReactNode {\r\n const node = json[nodeId];\r\n if (!node) return null;\r\n\r\n const resolvedName =\r\n typeof node.type === 'string' ? node.type : (node.type?.resolvedName ?? '');\r\n const Component = resolver[resolvedName];\r\n const childIds = getChildIds(node);\r\n const children = childIds.map((childId) => renderNode(json, childId, resolver));\r\n\r\n if (Component) {\r\n return React.createElement(Component, { key: nodeId, ...node.props }, children);\r\n }\r\n\r\n const tag = node.props?.is ?? 'div';\r\n const props = node.props ?? {};\r\n const safeProps: Record<string, unknown> = { key: nodeId };\r\n if (props.className != null) safeProps.className = props.className;\r\n if (props.style != null) safeProps.style = props.style;\r\n if (props.id != null) safeProps.id = props.id;\r\n return React.createElement(tag, safeProps, children);\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,SAAS,YAAY,QAAkC;AAC5D,QAAM,QAAQ,OAAO,WAAW,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI;AACtD,QAAM,aAAa,MAAM,OAAO,CAAC,GAAG,MAAM,MAAM,QAAQ,CAAC,MAAM,CAAC;AAChE,MAAI,WAAW,QAAQ;AACrB,UAAM,IAAI,MAAM,uCAAuC,OAAO,IAAI,MAAM,WAAW,KAAK,IAAI,CAAC,EAAE;AAAA,EACjG;AACA,SAAO,OAAO,OAAO,MAAM;AAC7B;AAEO,SAAS,cAAc,OAA8D;AAC1F,QAAM,WAAqD,CAAC;AAC5D,aAAW,EAAE,MAAM,UAAU,KAAK,MAAM,YAAY;AAClD,aAAS,KAAK,IAAI,IAAI;AAAA,EACxB;AACA,SAAO;AACT;AAOO,SAAS,WAAW,OAAoC;AAC7D,QAAM,SAAS,oBAAI,IAA6B;AAChD,aAAW,EAAE,KAAK,KAAK,MAAM,YAAY;AACvC,UAAM,OAAO,OAAO,IAAI,KAAK,QAAQ,KAAK,CAAC;AAC3C,SAAK,KAAK,IAAI;AACd,WAAO,IAAI,KAAK,UAAU,IAAI;AAAA,EAChC;AACA,SAAO,MAAM,KAAK,OAAO,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,UAAU,OAAO;AAAA,IACnE;AAAA,IACA;AAAA,EACF,EAAE;AACJ;;;ACnCA,mBAAkB;AAoBX,SAAS,aAAa,EAAE,SAAS,OAAO,cAAc,aAAa,GAAsB;AAC9F,QAAM,WAAW,cAAc,KAAK;AACpC,QAAM,kBAAkB,MAAM,QAAQ,QAAQ;AAC9C,QAAM,kBAAkB,MAAM,QAAQ,QAAQ;AAE9C,SAAO,aAAAA,QAAM;AAAA,IACX,aAAAA,QAAM;AAAA,IACN;AAAA,IACA,mBAAmB,eACf,aAAAA,QAAM,cAAc,iBAAiB,YAAY,IACjD;AAAA,IACJ,aAAAA,QAAM,cAAc,QAAQ,MAAM,WAAW,SAAS,QAAQ,QAAQ,CAAC;AAAA,IACvE,mBAAmB,eACf,aAAAA,QAAM,cAAc,iBAAiB,YAAY,IACjD;AAAA,EACN;AACF;AAEA,SAAS,YAAY,MAA2B;AAC9C,QAAM,YAAY,KAAK,SAAS,CAAC;AACjC,QAAM,aAAa,OAAO,OAAO,KAAK,eAAe,CAAC,CAAC;AACvD,SAAO,CAAC,GAAG,WAAW,GAAG,UAAU;AACrC;AAEA,SAAS,WACP,MACA,QACA,UACiB;AACjB,QAAM,OAAO,KAAK,MAAM;AACxB,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,eACJ,OAAO,KAAK,SAAS,WAAW,KAAK,OAAQ,KAAK,MAAM,gBAAgB;AAC1E,QAAM,YAAY,SAAS,YAAY;AACvC,QAAM,WAAW,YAAY,IAAI;AACjC,QAAM,WAAW,SAAS,IAAI,CAAC,YAAY,WAAW,MAAM,SAAS,QAAQ,CAAC;AAE9E,MAAI,WAAW;AACb,WAAO,aAAAA,QAAM,cAAc,WAAW,EAAE,KAAK,QAAQ,GAAG,KAAK,MAAM,GAAG,QAAQ;AAAA,EAChF;AAEA,QAAM,MAAM,KAAK,OAAO,MAAM;AAC9B,QAAM,QAAQ,KAAK,SAAS,CAAC;AAC7B,QAAM,YAAqC,EAAE,KAAK,OAAO;AACzD,MAAI,MAAM,aAAa,KAAM,WAAU,YAAY,MAAM;AACzD,MAAI,MAAM,SAAS,KAAM,WAAU,QAAQ,MAAM;AACjD,MAAI,MAAM,MAAM,KAAM,WAAU,KAAK,MAAM;AAC3C,SAAO,aAAAA,QAAM,cAAc,KAAK,WAAW,QAAQ;AACrD;","names":["React"]}
package/dist/theme.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/theme/registry.ts","../src/theme/renderer.ts"],"sourcesContent":["import type { ThemeConfig, ThemeComponent, ComponentMeta } from './types';\r\n\r\nexport function createTheme(config: ThemeConfig): ThemeConfig {\r\n const names = config.components.map((c) => c.meta.name);\r\n const duplicates = names.filter((n, i) => names.indexOf(n) !== i);\r\n if (duplicates.length) {\r\n throw new Error(`Duplicate component names in theme \"${config.name}\": ${duplicates.join(', ')}`);\r\n }\r\n return Object.freeze(config) as ThemeConfig;\r\n}\r\n\r\nexport function buildResolver(theme: ThemeConfig): Record<string, React.ComponentType<any>> {\r\n const resolver: Record<string, React.ComponentType<any>> = {};\r\n for (const { meta, component } of theme.components) {\r\n resolver[meta.name] = component;\r\n }\r\n return resolver;\r\n}\r\n\r\nexport interface CatalogGroup {\r\n category: string;\r\n components: ComponentMeta[];\r\n}\r\n\r\nexport function getCatalog(theme: ThemeConfig): CatalogGroup[] {\r\n const groups = new Map<string, ComponentMeta[]>();\r\n for (const { meta } of theme.components) {\r\n const list = groups.get(meta.category) || [];\r\n list.push(meta);\r\n groups.set(meta.category, list);\r\n }\r\n return Array.from(groups.entries()).map(([category, components]) => ({\r\n category,\r\n components,\r\n }));\r\n}\r\n","import React from 'react';\r\nimport type { ThemeConfig, NavbarConfig, FooterConfig } from './types';\r\nimport { buildResolver } from './registry';\r\n\r\ninterface CraftNode {\r\n type: string | { resolvedName: string };\r\n props: Record<string, any>;\r\n nodes?: string[];\r\n linkedNodes?: Record<string, string>;\r\n}\r\n\r\ntype CraftJson = Record<string, CraftNode>;\r\n\r\ninterface PageRendererProps {\r\n content: CraftJson;\r\n theme: ThemeConfig;\r\n navbarConfig?: NavbarConfig;\r\n footerConfig?: FooterConfig;\r\n}\r\n\r\nexport function PageRenderer({ content, theme, navbarConfig, footerConfig }: PageRendererProps) {\r\n const resolver = buildResolver(theme);\r\n const NavbarComponent = theme.layout?.navbar?.component;\r\n const FooterComponent = theme.layout?.footer?.component;\r\n\r\n return React.createElement(\r\n React.Fragment,\r\n null,\r\n NavbarComponent && navbarConfig\r\n ? React.createElement(NavbarComponent, navbarConfig)\r\n : null,\r\n React.createElement('main', null, renderNode(content, 'ROOT', resolver)),\r\n FooterComponent && footerConfig\r\n ? React.createElement(FooterComponent, footerConfig)\r\n : null,\r\n );\r\n}\r\n\r\nfunction getChildIds(node: CraftNode): string[] {\r\n const fromNodes = node.nodes ?? [];\r\n const fromLinked = Object.values(node.linkedNodes ?? {});\r\n return [...fromNodes, ...fromLinked];\r\n}\r\n\r\nfunction renderNode(\r\n json: CraftJson,\r\n nodeId: string,\r\n resolver: Record<string, React.ComponentType<any>>,\r\n): React.ReactNode {\r\n const node = json[nodeId];\r\n if (!node) return null;\r\n\r\n const resolvedName =\r\n typeof node.type === 'string' ? node.type : (node.type?.resolvedName ?? '');\r\n const Component = resolver[resolvedName];\r\n const childIds = getChildIds(node);\r\n const children = childIds.map((childId) => renderNode(json, childId, resolver));\r\n\r\n if (Component) {\r\n return React.createElement(Component, { key: nodeId, ...node.props }, children);\r\n }\r\n\r\n const tag = node.props?.is ?? 'div';\r\n const props = node.props ?? {};\r\n const safeProps: Record<string, unknown> = { key: nodeId };\r\n if (props.className != null) safeProps.className = props.className;\r\n if (props.style != null) safeProps.style = props.style;\r\n if (props.id != null) safeProps.id = props.id;\r\n return React.createElement(tag, safeProps, children);\r\n}\r\n"],"mappings":";AAEO,SAAS,YAAY,QAAkC;AAC5D,QAAM,QAAQ,OAAO,WAAW,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI;AACtD,QAAM,aAAa,MAAM,OAAO,CAAC,GAAG,MAAM,MAAM,QAAQ,CAAC,MAAM,CAAC;AAChE,MAAI,WAAW,QAAQ;AACrB,UAAM,IAAI,MAAM,uCAAuC,OAAO,IAAI,MAAM,WAAW,KAAK,IAAI,CAAC,EAAE;AAAA,EACjG;AACA,SAAO,OAAO,OAAO,MAAM;AAC7B;AAEO,SAAS,cAAc,OAA8D;AAC1F,QAAM,WAAqD,CAAC;AAC5D,aAAW,EAAE,MAAM,UAAU,KAAK,MAAM,YAAY;AAClD,aAAS,KAAK,IAAI,IAAI;AAAA,EACxB;AACA,SAAO;AACT;AAOO,SAAS,WAAW,OAAoC;AAC7D,QAAM,SAAS,oBAAI,IAA6B;AAChD,aAAW,EAAE,KAAK,KAAK,MAAM,YAAY;AACvC,UAAM,OAAO,OAAO,IAAI,KAAK,QAAQ,KAAK,CAAC;AAC3C,SAAK,KAAK,IAAI;AACd,WAAO,IAAI,KAAK,UAAU,IAAI;AAAA,EAChC;AACA,SAAO,MAAM,KAAK,OAAO,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,UAAU,OAAO;AAAA,IACnE;AAAA,IACA;AAAA,EACF,EAAE;AACJ;;;ACnCA,OAAO,WAAW;AAoBX,SAAS,aAAa,EAAE,SAAS,OAAO,cAAc,aAAa,GAAsB;AAC9F,QAAM,WAAW,cAAc,KAAK;AACpC,QAAM,kBAAkB,MAAM,QAAQ,QAAQ;AAC9C,QAAM,kBAAkB,MAAM,QAAQ,QAAQ;AAE9C,SAAO,MAAM;AAAA,IACX,MAAM;AAAA,IACN;AAAA,IACA,mBAAmB,eACf,MAAM,cAAc,iBAAiB,YAAY,IACjD;AAAA,IACJ,MAAM,cAAc,QAAQ,MAAM,WAAW,SAAS,QAAQ,QAAQ,CAAC;AAAA,IACvE,mBAAmB,eACf,MAAM,cAAc,iBAAiB,YAAY,IACjD;AAAA,EACN;AACF;AAEA,SAAS,YAAY,MAA2B;AAC9C,QAAM,YAAY,KAAK,SAAS,CAAC;AACjC,QAAM,aAAa,OAAO,OAAO,KAAK,eAAe,CAAC,CAAC;AACvD,SAAO,CAAC,GAAG,WAAW,GAAG,UAAU;AACrC;AAEA,SAAS,WACP,MACA,QACA,UACiB;AACjB,QAAM,OAAO,KAAK,MAAM;AACxB,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,eACJ,OAAO,KAAK,SAAS,WAAW,KAAK,OAAQ,KAAK,MAAM,gBAAgB;AAC1E,QAAM,YAAY,SAAS,YAAY;AACvC,QAAM,WAAW,YAAY,IAAI;AACjC,QAAM,WAAW,SAAS,IAAI,CAAC,YAAY,WAAW,MAAM,SAAS,QAAQ,CAAC;AAE9E,MAAI,WAAW;AACb,WAAO,MAAM,cAAc,WAAW,EAAE,KAAK,QAAQ,GAAG,KAAK,MAAM,GAAG,QAAQ;AAAA,EAChF;AAEA,QAAM,MAAM,KAAK,OAAO,MAAM;AAC9B,QAAM,QAAQ,KAAK,SAAS,CAAC;AAC7B,QAAM,YAAqC,EAAE,KAAK,OAAO;AACzD,MAAI,MAAM,aAAa,KAAM,WAAU,YAAY,MAAM;AACzD,MAAI,MAAM,SAAS,KAAM,WAAU,QAAQ,MAAM;AACjD,MAAI,MAAM,MAAM,KAAM,WAAU,KAAK,MAAM;AAC3C,SAAO,MAAM,cAAc,KAAK,WAAW,QAAQ;AACrD;","names":[]}
@@ -1,78 +0,0 @@
1
- type PropType = 'text' | 'textarea' | 'richtext' | 'image' | 'color' | 'select' | 'number' | 'boolean' | 'url' | 'entity';
2
- interface PropDefinition {
3
- name: string;
4
- label: string;
5
- type: PropType;
6
- options?: {
7
- label: string;
8
- value: string;
9
- }[];
10
- entity?: string;
11
- displayField?: string;
12
- required?: boolean;
13
- }
14
- interface ComponentMeta {
15
- name: string;
16
- label: string;
17
- category: string;
18
- icon: string;
19
- description: string;
20
- defaultProps: Record<string, any>;
21
- props?: PropDefinition[];
22
- canContainChildren?: boolean;
23
- }
24
- interface ThemeComponent {
25
- meta: ComponentMeta;
26
- component: React.ComponentType<any>;
27
- }
28
- interface NavItem {
29
- id: string;
30
- label: string;
31
- url: string;
32
- openInNewTab?: boolean;
33
- /** When set, url is derived from the linked page slug. */
34
- pageId?: number;
35
- children?: NavItem[];
36
- }
37
- interface NavbarConfig {
38
- logo: string;
39
- items: NavItem[];
40
- ctaLabel?: string;
41
- ctaUrl?: string;
42
- /** Optional variant for theme-specific layout (e.g. "page2"). */
43
- variant?: string;
44
- }
45
- interface FooterConfig {
46
- copyright: string;
47
- columns: {
48
- title: string;
49
- links: {
50
- label: string;
51
- url: string;
52
- }[];
53
- }[];
54
- socialLinks: {
55
- icon: string;
56
- url: string;
57
- }[];
58
- /** When set, footer shows this logo (e.g. same as navbar). */
59
- logo?: string;
60
- }
61
- interface LayoutConfig {
62
- navbar?: {
63
- component: React.ComponentType<NavbarConfig>;
64
- };
65
- footer?: {
66
- component: React.ComponentType<FooterConfig>;
67
- fields: PropDefinition[];
68
- defaults: Record<string, any>;
69
- };
70
- }
71
- interface ThemeConfig {
72
- name: string;
73
- label: string;
74
- components: ThemeComponent[];
75
- layout?: LayoutConfig;
76
- }
77
-
78
- export type { ComponentMeta as C, FooterConfig as F, LayoutConfig as L, NavItem as N, PropDefinition as P, ThemeComponent as T, NavbarConfig as a, PropType as b, ThemeConfig as c };
@@ -1,78 +0,0 @@
1
- type PropType = 'text' | 'textarea' | 'richtext' | 'image' | 'color' | 'select' | 'number' | 'boolean' | 'url' | 'entity';
2
- interface PropDefinition {
3
- name: string;
4
- label: string;
5
- type: PropType;
6
- options?: {
7
- label: string;
8
- value: string;
9
- }[];
10
- entity?: string;
11
- displayField?: string;
12
- required?: boolean;
13
- }
14
- interface ComponentMeta {
15
- name: string;
16
- label: string;
17
- category: string;
18
- icon: string;
19
- description: string;
20
- defaultProps: Record<string, any>;
21
- props?: PropDefinition[];
22
- canContainChildren?: boolean;
23
- }
24
- interface ThemeComponent {
25
- meta: ComponentMeta;
26
- component: React.ComponentType<any>;
27
- }
28
- interface NavItem {
29
- id: string;
30
- label: string;
31
- url: string;
32
- openInNewTab?: boolean;
33
- /** When set, url is derived from the linked page slug. */
34
- pageId?: number;
35
- children?: NavItem[];
36
- }
37
- interface NavbarConfig {
38
- logo: string;
39
- items: NavItem[];
40
- ctaLabel?: string;
41
- ctaUrl?: string;
42
- /** Optional variant for theme-specific layout (e.g. "page2"). */
43
- variant?: string;
44
- }
45
- interface FooterConfig {
46
- copyright: string;
47
- columns: {
48
- title: string;
49
- links: {
50
- label: string;
51
- url: string;
52
- }[];
53
- }[];
54
- socialLinks: {
55
- icon: string;
56
- url: string;
57
- }[];
58
- /** When set, footer shows this logo (e.g. same as navbar). */
59
- logo?: string;
60
- }
61
- interface LayoutConfig {
62
- navbar?: {
63
- component: React.ComponentType<NavbarConfig>;
64
- };
65
- footer?: {
66
- component: React.ComponentType<FooterConfig>;
67
- fields: PropDefinition[];
68
- defaults: Record<string, any>;
69
- };
70
- }
71
- interface ThemeConfig {
72
- name: string;
73
- label: string;
74
- components: ThemeComponent[];
75
- layout?: LayoutConfig;
76
- }
77
-
78
- export type { ComponentMeta as C, FooterConfig as F, LayoutConfig as L, NavItem as N, PropDefinition as P, ThemeComponent as T, NavbarConfig as a, PropType as b, ThemeConfig as c };
@@ -1,129 +0,0 @@
1
- /** Canonical name for new installs / migrations */
2
- declare const ADMIN_GROUP_NAME = "Administrator";
3
- /** System administrator group (roles UI + users / user_groups / permissions bypass). */
4
- declare function isSuperAdminGroupName(name: string | null | undefined): boolean;
5
- type EntityCrudAction = 'create' | 'read' | 'update' | 'delete';
6
- type EntityPermissionFlags = {
7
- c: boolean;
8
- r: boolean;
9
- u: boolean;
10
- d: boolean;
11
- };
12
- declare function getPermissionableEntityKeys(entityMap: Record<string, unknown>): string[];
13
- declare function permissionRowsToRecord(rows: Array<{
14
- entity: string;
15
- canCreate: boolean;
16
- canRead: boolean;
17
- canUpdate: boolean;
18
- canDelete: boolean;
19
- }> | undefined): Record<string, EntityPermissionFlags>;
20
- declare function hasEntityPermission(record: Record<string, EntityPermissionFlags> | undefined, entity: string, action: EntityCrudAction): boolean;
21
-
22
- /**
23
- * @deprecated Administrator bypass is now full entity access via `isRBACAdmin` in `sessionHasEntityAccess`.
24
- * Kept for backwards-compatible imports.
25
- */
26
- declare const RBAC_ADMIN_ONLY_ENTITIES: Set<string>;
27
- interface SessionUser {
28
- id?: string;
29
- email?: string | null;
30
- name?: string | null;
31
- groupId?: number;
32
- /** User group display name (from login). */
33
- groupName?: string | null;
34
- /** @deprecated use entityPerms / isRBACAdmin */
35
- permissions?: string[];
36
- /** Administrator group: bypasses entity-level RBAC on all resources */
37
- isRBACAdmin?: boolean;
38
- entityPerms?: Record<string, EntityPermissionFlags>;
39
- /** When false and not isRBACAdmin, admin API/UI is denied. */
40
- adminAccess?: boolean;
41
- /** Vendor stores this user can access (from vendor_users). */
42
- vendorIds?: number[];
43
- /** Active vendor for scoped CRUD (vendor staff). */
44
- activeVendorId?: number | null;
45
- /** Role for the active vendor link (`vendor_users.role`). */
46
- vendorRole?: 'owner' | 'staff' | null;
47
- /** Set at login: vendor store portal (not platform admin). */
48
- isVendorPortal?: boolean;
49
- /** Set at login: vendor store owner (team + permissions). */
50
- isVendorOwner?: boolean;
51
- }
52
- declare function sessionHasEntityAccess(user: SessionUser | null | undefined, entity: string, action: EntityCrudAction): boolean;
53
- declare function canManageRoles(user: SessionUser | null | undefined): boolean;
54
- type GetSession = () => Promise<{
55
- user?: SessionUser;
56
- } | null>;
57
- declare const OPEN_ENDPOINTS: Array<Record<string, string[]>>;
58
- declare const PERMISSION_REQUIRED_ENDPOINTS: Record<string, string[]>;
59
- declare function isOpenEndpoint(pathname: string): boolean;
60
- declare function getRequiredPermission(pathname: string): string[] | null;
61
- declare function isPublicMethod(pathname: string, method: string): boolean;
62
- interface AuthHelpers {
63
- requireAuth(req: Request): Promise<Response | null>;
64
- requirePermission(req: Request, permission: string): Promise<Response | null>;
65
- requireEntityPermission(req: Request, entity: string, action: EntityCrudAction): Promise<Response | null>;
66
- requireAdminAccess(req: Request): Promise<Response | null>;
67
- getAuthenticatedUser(): Promise<SessionUser | null>;
68
- }
69
- declare function createAuthHelpers(getSession: GetSession, NextResponse: {
70
- json: (body: unknown, init?: {
71
- status?: number;
72
- }) => Response;
73
- }): AuthHelpers;
74
- /** Pass return value into `createCmsApiHandler` (includes `getSessionUser` for vendor store APIs). */
75
- declare function createCmsAuthBundle(getSession: GetSession, NextResponse: {
76
- json: (body: unknown, init?: {
77
- status?: number;
78
- }) => Response;
79
- }): {
80
- requireAuth: (req: Request) => Promise<Response | null>;
81
- requireAdminAccess: (req: Request) => Promise<Response | null>;
82
- requireEntityPermission: (req: Request, entity: string, action: EntityCrudAction) => Promise<Response | null>;
83
- getSessionUser: () => Promise<SessionUser | null>;
84
- getAuthenticatedUser: () => Promise<SessionUser | null>;
85
- };
86
-
87
- /** Entities with a `vendorId` column (store data). */
88
- declare const VENDOR_SCOPED_STORE_ENTITIES: Set<string>;
89
- /**
90
- * Store admin RBAC for vendor portal users (read/create/update/delete fallbacks in rbac-debug).
91
- * Includes entities without `vendorId` that are still part of the store admin UI.
92
- */
93
- declare const VENDOR_STORE_RBAC_ENTITIES: Set<string>;
94
- type VendorScope = {
95
- type: 'all';
96
- } | {
97
- type: 'vendor';
98
- vendorId: number;
99
- vendorIds: number[];
100
- } | {
101
- type: 'deny';
102
- };
103
- declare const VENDOR_OWNER_GROUP_NAME = "Vendor Owner";
104
- /** User groups treated as vendor store staff (sidebar + scoped admin). */
105
- declare function isVendorGroupName(name: string | null | undefined): boolean;
106
- declare function isPlatformAdministrator(user: SessionUser | null | undefined): boolean;
107
- /** Vendor portal UI (store + store admin), not platform admin. */
108
- declare function isVendorPortalUser(user: SessionUser | null | undefined): boolean;
109
- declare function isVendorStaff(user: SessionUser | null | undefined): boolean;
110
- /** Vendor store owner (manages team + role permissions for their group). */
111
- declare function isVendorOwner(user: SessionUser | null | undefined): boolean;
112
- declare function canManageVendorTeam(user: SessionUser | null | undefined): boolean;
113
- declare function canManageVendorRoles(user: SessionUser | null | undefined): boolean;
114
- /** Platform admins (Administrator group) can onboard vendors. */
115
- declare function canOnboardVendors(user: SessionUser | null | undefined): boolean;
116
- declare function resolveVendorScopeFromSessionUser(user: SessionUser | null | undefined): VendorScope;
117
- /** Compute portal flags at login (persist on JWT). */
118
- declare function vendorPortalFlagsFromUser(input: {
119
- email: string;
120
- isRBACAdmin: boolean;
121
- groupName?: string | null;
122
- vendorIds?: number[];
123
- vendorRole?: 'owner' | 'staff' | null;
124
- }): {
125
- isVendorPortal: boolean;
126
- isVendorOwner: boolean;
127
- };
128
-
129
- export { ADMIN_GROUP_NAME as A, type EntityCrudAction as E, type GetSession as G, OPEN_ENDPOINTS as O, PERMISSION_REQUIRED_ENDPOINTS as P, RBAC_ADMIN_ONLY_ENTITIES as R, type SessionUser as S, VENDOR_OWNER_GROUP_NAME as V, type AuthHelpers as a, type EntityPermissionFlags as b, VENDOR_SCOPED_STORE_ENTITIES as c, VENDOR_STORE_RBAC_ENTITIES as d, type VendorScope as e, canManageRoles as f, canManageVendorRoles as g, canManageVendorTeam as h, canOnboardVendors as i, createAuthHelpers as j, createCmsAuthBundle as k, getPermissionableEntityKeys as l, getRequiredPermission as m, hasEntityPermission as n, isOpenEndpoint as o, isPlatformAdministrator as p, isPublicMethod as q, isSuperAdminGroupName as r, isVendorGroupName as s, isVendorOwner as t, isVendorPortalUser as u, isVendorStaff as v, permissionRowsToRecord as w, resolveVendorScopeFromSessionUser as x, sessionHasEntityAccess as y, vendorPortalFlagsFromUser as z };
@@ -1,129 +0,0 @@
1
- /** Canonical name for new installs / migrations */
2
- declare const ADMIN_GROUP_NAME = "Administrator";
3
- /** System administrator group (roles UI + users / user_groups / permissions bypass). */
4
- declare function isSuperAdminGroupName(name: string | null | undefined): boolean;
5
- type EntityCrudAction = 'create' | 'read' | 'update' | 'delete';
6
- type EntityPermissionFlags = {
7
- c: boolean;
8
- r: boolean;
9
- u: boolean;
10
- d: boolean;
11
- };
12
- declare function getPermissionableEntityKeys(entityMap: Record<string, unknown>): string[];
13
- declare function permissionRowsToRecord(rows: Array<{
14
- entity: string;
15
- canCreate: boolean;
16
- canRead: boolean;
17
- canUpdate: boolean;
18
- canDelete: boolean;
19
- }> | undefined): Record<string, EntityPermissionFlags>;
20
- declare function hasEntityPermission(record: Record<string, EntityPermissionFlags> | undefined, entity: string, action: EntityCrudAction): boolean;
21
-
22
- /**
23
- * @deprecated Administrator bypass is now full entity access via `isRBACAdmin` in `sessionHasEntityAccess`.
24
- * Kept for backwards-compatible imports.
25
- */
26
- declare const RBAC_ADMIN_ONLY_ENTITIES: Set<string>;
27
- interface SessionUser {
28
- id?: string;
29
- email?: string | null;
30
- name?: string | null;
31
- groupId?: number;
32
- /** User group display name (from login). */
33
- groupName?: string | null;
34
- /** @deprecated use entityPerms / isRBACAdmin */
35
- permissions?: string[];
36
- /** Administrator group: bypasses entity-level RBAC on all resources */
37
- isRBACAdmin?: boolean;
38
- entityPerms?: Record<string, EntityPermissionFlags>;
39
- /** When false and not isRBACAdmin, admin API/UI is denied. */
40
- adminAccess?: boolean;
41
- /** Vendor stores this user can access (from vendor_users). */
42
- vendorIds?: number[];
43
- /** Active vendor for scoped CRUD (vendor staff). */
44
- activeVendorId?: number | null;
45
- /** Role for the active vendor link (`vendor_users.role`). */
46
- vendorRole?: 'owner' | 'staff' | null;
47
- /** Set at login: vendor store portal (not platform admin). */
48
- isVendorPortal?: boolean;
49
- /** Set at login: vendor store owner (team + permissions). */
50
- isVendorOwner?: boolean;
51
- }
52
- declare function sessionHasEntityAccess(user: SessionUser | null | undefined, entity: string, action: EntityCrudAction): boolean;
53
- declare function canManageRoles(user: SessionUser | null | undefined): boolean;
54
- type GetSession = () => Promise<{
55
- user?: SessionUser;
56
- } | null>;
57
- declare const OPEN_ENDPOINTS: Array<Record<string, string[]>>;
58
- declare const PERMISSION_REQUIRED_ENDPOINTS: Record<string, string[]>;
59
- declare function isOpenEndpoint(pathname: string): boolean;
60
- declare function getRequiredPermission(pathname: string): string[] | null;
61
- declare function isPublicMethod(pathname: string, method: string): boolean;
62
- interface AuthHelpers {
63
- requireAuth(req: Request): Promise<Response | null>;
64
- requirePermission(req: Request, permission: string): Promise<Response | null>;
65
- requireEntityPermission(req: Request, entity: string, action: EntityCrudAction): Promise<Response | null>;
66
- requireAdminAccess(req: Request): Promise<Response | null>;
67
- getAuthenticatedUser(): Promise<SessionUser | null>;
68
- }
69
- declare function createAuthHelpers(getSession: GetSession, NextResponse: {
70
- json: (body: unknown, init?: {
71
- status?: number;
72
- }) => Response;
73
- }): AuthHelpers;
74
- /** Pass return value into `createCmsApiHandler` (includes `getSessionUser` for vendor store APIs). */
75
- declare function createCmsAuthBundle(getSession: GetSession, NextResponse: {
76
- json: (body: unknown, init?: {
77
- status?: number;
78
- }) => Response;
79
- }): {
80
- requireAuth: (req: Request) => Promise<Response | null>;
81
- requireAdminAccess: (req: Request) => Promise<Response | null>;
82
- requireEntityPermission: (req: Request, entity: string, action: EntityCrudAction) => Promise<Response | null>;
83
- getSessionUser: () => Promise<SessionUser | null>;
84
- getAuthenticatedUser: () => Promise<SessionUser | null>;
85
- };
86
-
87
- /** Entities with a `vendorId` column (store data). */
88
- declare const VENDOR_SCOPED_STORE_ENTITIES: Set<string>;
89
- /**
90
- * Store admin RBAC for vendor portal users (read/create/update/delete fallbacks in rbac-debug).
91
- * Includes entities without `vendorId` that are still part of the store admin UI.
92
- */
93
- declare const VENDOR_STORE_RBAC_ENTITIES: Set<string>;
94
- type VendorScope = {
95
- type: 'all';
96
- } | {
97
- type: 'vendor';
98
- vendorId: number;
99
- vendorIds: number[];
100
- } | {
101
- type: 'deny';
102
- };
103
- declare const VENDOR_OWNER_GROUP_NAME = "Vendor Owner";
104
- /** User groups treated as vendor store staff (sidebar + scoped admin). */
105
- declare function isVendorGroupName(name: string | null | undefined): boolean;
106
- declare function isPlatformAdministrator(user: SessionUser | null | undefined): boolean;
107
- /** Vendor portal UI (store + store admin), not platform admin. */
108
- declare function isVendorPortalUser(user: SessionUser | null | undefined): boolean;
109
- declare function isVendorStaff(user: SessionUser | null | undefined): boolean;
110
- /** Vendor store owner (manages team + role permissions for their group). */
111
- declare function isVendorOwner(user: SessionUser | null | undefined): boolean;
112
- declare function canManageVendorTeam(user: SessionUser | null | undefined): boolean;
113
- declare function canManageVendorRoles(user: SessionUser | null | undefined): boolean;
114
- /** Platform admins (Administrator group) can onboard vendors. */
115
- declare function canOnboardVendors(user: SessionUser | null | undefined): boolean;
116
- declare function resolveVendorScopeFromSessionUser(user: SessionUser | null | undefined): VendorScope;
117
- /** Compute portal flags at login (persist on JWT). */
118
- declare function vendorPortalFlagsFromUser(input: {
119
- email: string;
120
- isRBACAdmin: boolean;
121
- groupName?: string | null;
122
- vendorIds?: number[];
123
- vendorRole?: 'owner' | 'staff' | null;
124
- }): {
125
- isVendorPortal: boolean;
126
- isVendorOwner: boolean;
127
- };
128
-
129
- export { ADMIN_GROUP_NAME as A, type EntityCrudAction as E, type GetSession as G, OPEN_ENDPOINTS as O, PERMISSION_REQUIRED_ENDPOINTS as P, RBAC_ADMIN_ONLY_ENTITIES as R, type SessionUser as S, VENDOR_OWNER_GROUP_NAME as V, type AuthHelpers as a, type EntityPermissionFlags as b, VENDOR_SCOPED_STORE_ENTITIES as c, VENDOR_STORE_RBAC_ENTITIES as d, type VendorScope as e, canManageRoles as f, canManageVendorRoles as g, canManageVendorTeam as h, canOnboardVendors as i, createAuthHelpers as j, createCmsAuthBundle as k, getPermissionableEntityKeys as l, getRequiredPermission as m, hasEntityPermission as n, isOpenEndpoint as o, isPlatformAdministrator as p, isPublicMethod as q, isSuperAdminGroupName as r, isVendorGroupName as s, isVendorOwner as t, isVendorPortalUser as u, isVendorStaff as v, permissionRowsToRecord as w, resolveVendorScopeFromSessionUser as x, sessionHasEntityAccess as y, vendorPortalFlagsFromUser as z };