@baasix/baasix 0.1.60 → 0.1.61
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.
- package/dist/app/404/index.html +1 -1
- package/dist/app/404.html +1 -1
- package/dist/app/_next/static/chunks/app/(authenticated)/settings/schema/{page-2f3c1139867c8cab.js → page-e7f836d3a7f7c5d0.js} +1 -1
- package/dist/app/_next/static/chunks/{webpack-6ac1be755b80e221.js → webpack-b29732cfe967a5f5.js} +1 -1
- package/dist/app/activity-log/all-activity/index.html +1 -1
- package/dist/app/activity-log/all-activity/index.txt +1 -1
- package/dist/app/activity-log/email-log/index.html +1 -1
- package/dist/app/activity-log/email-log/index.txt +1 -1
- package/dist/app/activity-log/index.html +1 -1
- package/dist/app/activity-log/index.txt +1 -1
- package/dist/app/activity-log/notifications/index.html +1 -1
- package/dist/app/activity-log/notifications/index.txt +1 -1
- package/dist/app/activity-log/sessions/index.html +1 -1
- package/dist/app/activity-log/sessions/index.txt +1 -1
- package/dist/app/activity-log/workflow-executions/index.html +1 -1
- package/dist/app/activity-log/workflow-executions/index.txt +1 -1
- package/dist/app/activity-log/workflow-logs/index.html +1 -1
- package/dist/app/activity-log/workflow-logs/index.txt +1 -1
- package/dist/app/change-password/index.html +1 -1
- package/dist/app/change-password/index.txt +1 -1
- package/dist/app/dashboard/index.html +1 -1
- package/dist/app/dashboard/index.txt +1 -1
- package/dist/app/data-browser/index.html +1 -1
- package/dist/app/data-browser/index.txt +1 -1
- package/dist/app/file-manager/index.html +1 -1
- package/dist/app/file-manager/index.txt +1 -1
- package/dist/app/forgot-password/index.html +1 -1
- package/dist/app/forgot-password/index.txt +1 -1
- package/dist/app/index.html +1 -1
- package/dist/app/index.txt +1 -1
- package/dist/app/login/index.html +1 -1
- package/dist/app/login/index.txt +1 -1
- package/dist/app/register/index.html +1 -1
- package/dist/app/register/index.txt +1 -1
- package/dist/app/settings/migrations/index.html +1 -1
- package/dist/app/settings/migrations/index.txt +1 -1
- package/dist/app/settings/permissions/index.html +1 -1
- package/dist/app/settings/permissions/index.txt +1 -1
- package/dist/app/settings/project/index.html +1 -1
- package/dist/app/settings/project/index.txt +1 -1
- package/dist/app/settings/roles/index.html +1 -1
- package/dist/app/settings/roles/index.txt +1 -1
- package/dist/app/settings/schema/index.html +1 -1
- package/dist/app/settings/schema/index.txt +2 -2
- package/dist/app/settings/tasks/index.html +1 -1
- package/dist/app/settings/tasks/index.txt +1 -1
- package/dist/app/settings/templates/edit/index.html +1 -1
- package/dist/app/settings/templates/edit/index.txt +1 -1
- package/dist/app/settings/templates/index.html +1 -1
- package/dist/app/settings/templates/index.txt +1 -1
- package/dist/app/settings/tenants/index.html +1 -1
- package/dist/app/settings/tenants/index.txt +1 -1
- package/dist/app/users/index.html +1 -1
- package/dist/app/users/index.txt +1 -1
- package/dist/app/users/invites/index.html +1 -1
- package/dist/app/users/invites/index.txt +1 -1
- package/dist/app/users/list/index.html +1 -1
- package/dist/app/users/list/index.txt +1 -1
- package/dist/app/users/preferences/index.html +1 -1
- package/dist/app/users/preferences/index.txt +1 -1
- package/dist/app/users/user-roles/index.html +1 -1
- package/dist/app/users/user-roles/index.txt +1 -1
- package/dist/app/workflows/detail/index.html +1 -1
- package/dist/app/workflows/detail/index.txt +1 -1
- package/dist/app/workflows/edit/index.html +1 -1
- package/dist/app/workflows/edit/index.txt +1 -1
- package/dist/app/workflows/execution/index.html +1 -1
- package/dist/app/workflows/execution/index.txt +1 -1
- package/dist/app/workflows/index.html +1 -1
- package/dist/app/workflows/index.txt +1 -1
- package/dist/utils/schemaManager.d.ts +11 -0
- package/dist/utils/schemaManager.d.ts.map +1 -1
- package/dist/utils/schemaManager.js +142 -4
- package/dist/utils/schemaManager.js.map +1 -1
- package/dist/utils/typeMapper.d.ts.map +1 -1
- package/dist/utils/typeMapper.js +6 -3
- package/dist/utils/typeMapper.js.map +1 -1
- package/package.json +1 -1
- /package/dist/app/_next/static/{DYIYZoqILRowEWsJ0xAMA → ORfvBD2VaKIB_8_7O9AgQ}/_buildManifest.js +0 -0
- /package/dist/app/_next/static/{DYIYZoqILRowEWsJ0xAMA → ORfvBD2VaKIB_8_7O9AgQ}/_ssgManifest.js +0 -0
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
a:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
|
|
10
10
|
b:{"display":"inline-block"}
|
|
11
11
|
c:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
|
|
12
|
-
0:["
|
|
12
|
+
0:["ORfvBD2VaKIB_8_7O9AgQ",[[["",{"children":["(authenticated)",{"children":["workflows",{"children":["execution",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",{"children":["(authenticated)",{"children":["workflows",{"children":["execution",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(authenticated)","children","workflows","children","execution","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(authenticated)","children","workflows","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[null,["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(authenticated)","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}],"params":"$7"}]],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/admin/_next/static/css/17a2e01c4184b106.css","precedence":"next","crossOrigin":"$undefined"}]],["$","$L8",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$9","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$a","children":"404"}],["$","div",null,{"style":"$b","children":["$","h2",null,{"style":"$c","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}],"params":"$7"}]],null],null],["$Ld",null]]]]
|
|
13
13
|
d:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}]]
|
|
14
14
|
1:null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/admin/_next/static/css/17a2e01c4184b106.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/admin/_next/static/chunks/webpack-6ac1be755b80e221.js"/><script src="/admin/_next/static/chunks/fd9d1056-54169f07cd680d6c.js" async=""></script><script src="/admin/_next/static/chunks/2117-29b5fa47421595ad.js" async=""></script><script src="/admin/_next/static/chunks/main-app-55bcae20c77aaf0e.js" async=""></script><script src="/admin/_next/static/chunks/6fcbdc68-90be1a5480b8d353.js" async=""></script><script src="/admin/_next/static/chunks/70e0d97a-aeaf0cdc26ba1a58.js" async=""></script><script src="/admin/_next/static/chunks/54a60aa6-d9747982e0a81f58.js" async=""></script><script src="/admin/_next/static/chunks/5094-8d53e403235d4ca6.js" async=""></script><script src="/admin/_next/static/chunks/4438-c9a12ca15b6e9160.js" async=""></script><script src="/admin/_next/static/chunks/6530-a91e10cffa4200c4.js" async=""></script><script src="/admin/_next/static/chunks/6241-30d7169d1010e5a4.js" async=""></script><script src="/admin/_next/static/chunks/4475-8bdfbd536fba8c48.js" async=""></script><script src="/admin/_next/static/chunks/926-156f32067d111d6b.js" async=""></script><script src="/admin/_next/static/chunks/600-539045311240f579.js" async=""></script><script src="/admin/_next/static/chunks/1668-e3eabd0f6753c780.js" async=""></script><script src="/admin/_next/static/chunks/2676-73b0ee7c80073a84.js" async=""></script><script src="/admin/_next/static/chunks/1509-56ac00cdaaecdf53.js" async=""></script><script src="/admin/_next/static/chunks/6869-4f920a71fdc6b538.js" async=""></script><script src="/admin/_next/static/chunks/9487-b17481605e513b83.js" async=""></script><script src="/admin/_next/static/chunks/1783-d9fb550fd324300c.js" async=""></script><script src="/admin/_next/static/chunks/9881-419697138376e755.js" async=""></script><script src="/admin/_next/static/chunks/7324-b53229c59a640880.js" async=""></script><script src="/admin/_next/static/chunks/9124-a02f9e209e6e3cce.js" async=""></script><script src="/admin/_next/static/chunks/6712-781937c53a2c49da.js" async=""></script><script src="/admin/_next/static/chunks/6547-1aaab011e6089042.js" async=""></script><script src="/admin/_next/static/chunks/2033-8355304f13887db5.js" async=""></script><script src="/admin/_next/static/chunks/7304-bdd00a7504bc4081.js" async=""></script><script src="/admin/_next/static/chunks/3817-863d6bb5cfa0a8de.js" async=""></script><script src="/admin/_next/static/chunks/app/(authenticated)/workflows/page-33c1c69678122839.js" async=""></script><script src="/admin/_next/static/chunks/8473-6598318371eca31b.js" async=""></script><script src="/admin/_next/static/chunks/3563-b8842744384391fe.js" async=""></script><script src="/admin/_next/static/chunks/478-2b8adfd5c2853600.js" async=""></script><script src="/admin/_next/static/chunks/6599-03e2f2327c30b4c1.js" async=""></script><script src="/admin/_next/static/chunks/app/(authenticated)/layout-2a4b221af5cbbade.js" async=""></script><script src="/admin/_next/static/chunks/4883-8a924721bb21b3b0.js" async=""></script><script src="/admin/_next/static/chunks/app/layout-64ac14a534e2809b.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-FBCW8DT7KT" as="script"/><title>Baasix</title><script src="/admin/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-background font-sans antialiased"><!--$--><div class="flex items-center justify-center min-h-screen bg-background"><div class="text-center"><div class="inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-primary border-r-transparent align-[-0.125em] motion-reduce:animate-[spin_1.5s_linear_infinite]"></div><p class="mt-4 text-muted-foreground">Loading...</p></div></div><!--/$--><script src="/admin/_next/static/chunks/webpack-6ac1be755b80e221.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/admin/_next/static/css/17a2e01c4184b106.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[12846,[],\"\"]\n4:I[19107,[],\"ClientPageRoot\"]\n5:I[53740,[\"7999\",\"static/chunks/6fcbdc68-90be1a5480b8d353.js\",\"3572\",\"static/chunks/70e0d97a-aeaf0cdc26ba1a58.js\",\"7902\",\"static/chunks/54a60aa6-d9747982e0a81f58.js\",\"5094\",\"static/chunks/5094-8d53e403235d4ca6.js\",\"4438\",\"static/chunks/4438-c9a12ca15b6e9160.js\",\"6530\",\"static/chunks/6530-a91e10cffa4200c4.js\",\"6241\",\"static/chunks/6241-30d7169d1010e5a4.js\",\"4475\",\"static/chunks/4475-8bdfbd536fba8c48.js\",\"926\",\"static/chunks/926-156f32067d111d6b.js\",\"600\",\"static/chunks/600-539045311240f579.js\",\"1668\",\"static/chunks/1668-e3eabd0f6753c780.js\",\"2676\",\"static/chunks/2676-73b0ee7c80073a84.js\",\"1509\",\"static/chunks/1509-56ac00cdaaecdf53.js\",\"6869\",\"static/chunks/6869-4f920a71fdc6b538.js\",\"9487\",\"static/chunks/9487-b17481605e513b83.js\",\"1783\",\"static/chunks/1783-d9fb550fd324300c.js\",\"9881\",\"static/chunks/9881-419697138376e755.js\",\"7324\",\"static/chunks/7324-b53229c59a640880.js\",\"9124\",\"static/chunks/9124-a02f9e209e6e3cce.js\",\"6712\",\"static/chunks/6712-781937c53a2c49da.js\",\"6547\",\"static/chunks/6547-1aaab011e6089042.js\",\"2033\",\"static/chunks/2033-8355304f13887db5.js\",\"7304\",\"static/chunks/7304-bdd00a7504bc4081.js\",\"3817\",\"static/chunks/3817-863d6bb5cfa0a8de.js\",\"7866\",\"static/chunks/app/(authenticated)/workflows/page-33c1c69678122839.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[36423,[],\"\"]\n8:I[7915,[\"7999\",\"static/chunks/6fcbdc68-90be1a5480b8d353.js\",\"5094\",\"static/chunks/5094-8d53e403235d4ca6.js\",\"4438\",\"static/chunks/4438-c9a12ca15b6e9160.js\",\"6530\",\"static/chunks/6530-a91e10cffa4200c4.js\",\"6241\",\"static/chunks/6241-30d7169d1010e5a4.js\",\"4475\",\"static/chunks/4475-8bdfbd536fba8c48.js\",\"926\",\"static/chunks/926-156f32067d111d6b.js\",\"600\",\"static/chunks/600-539045311240f579.js\",\"1668\",\"static/chunks/1668-e3eabd0f6753c780.js\",\"9124\",\"static/chunks/9124-a02f9e209e6e3cce.js\",\"8473\",\"static/chunks/8473-6598318371eca31b.js\",\"3563\",\"static/chunks/3563-b8842744384391fe.js\",\"478\",\"static/chunks/478-2b8adfd5c2853600.js\",\"6599\",\"static/chunks/6599-03e2f2327c30b4c1.js\",\"2760\",\"static/chunks/ap"])</script><script>self.__next_f.push([1,"p/(authenticated)/layout-2a4b221af5cbbade.js\"],\"default\",1]\na:I[84821,[\"7999\",\"static/chunks/6fcbdc68-90be1a5480b8d353.js\",\"5094\",\"static/chunks/5094-8d53e403235d4ca6.js\",\"4438\",\"static/chunks/4438-c9a12ca15b6e9160.js\",\"6530\",\"static/chunks/6530-a91e10cffa4200c4.js\",\"6241\",\"static/chunks/6241-30d7169d1010e5a4.js\",\"1668\",\"static/chunks/1668-e3eabd0f6753c780.js\",\"6869\",\"static/chunks/6869-4f920a71fdc6b538.js\",\"8473\",\"static/chunks/8473-6598318371eca31b.js\",\"4883\",\"static/chunks/4883-8a924721bb21b3b0.js\",\"7304\",\"static/chunks/7304-bdd00a7504bc4081.js\",\"3185\",\"static/chunks/app/layout-64ac14a534e2809b.js\"],\"default\",1]\n10:I[61060,[],\"\"]\n9:{}\nb:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\nc:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\nd:{\"display\":\"inline-block\"}\ne:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n11:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"DYIYZoqILRowEWsJ0xAMA\",\"assetPrefix\":\"/admin\",\"urlParts\":[\"\",\"workflows\",\"\"],\"initialTree\":[\"\",{\"children\":[\"(authenticated)\",{\"children\":[\"workflows\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(authenticated)\",{\"children\":[\"workflows\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(authenticated)\",\"children\",\"workflows\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(authenticated)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}],\"params\":\"$9\"}]],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/admin/_next/static/css/17a2e01c4184b106.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$b\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$c\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$d\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$e\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}],\"params\":\"$9\"}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Lf\"],\"globalErrorComponent\":\"$10\",\"missingSlots\":\"$W11\"}]\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}]]\n3:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/admin/_next/static/css/17a2e01c4184b106.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/admin/_next/static/chunks/webpack-b29732cfe967a5f5.js"/><script src="/admin/_next/static/chunks/fd9d1056-54169f07cd680d6c.js" async=""></script><script src="/admin/_next/static/chunks/2117-29b5fa47421595ad.js" async=""></script><script src="/admin/_next/static/chunks/main-app-55bcae20c77aaf0e.js" async=""></script><script src="/admin/_next/static/chunks/6fcbdc68-90be1a5480b8d353.js" async=""></script><script src="/admin/_next/static/chunks/70e0d97a-aeaf0cdc26ba1a58.js" async=""></script><script src="/admin/_next/static/chunks/54a60aa6-d9747982e0a81f58.js" async=""></script><script src="/admin/_next/static/chunks/5094-8d53e403235d4ca6.js" async=""></script><script src="/admin/_next/static/chunks/4438-c9a12ca15b6e9160.js" async=""></script><script src="/admin/_next/static/chunks/6530-a91e10cffa4200c4.js" async=""></script><script src="/admin/_next/static/chunks/6241-30d7169d1010e5a4.js" async=""></script><script src="/admin/_next/static/chunks/4475-8bdfbd536fba8c48.js" async=""></script><script src="/admin/_next/static/chunks/926-156f32067d111d6b.js" async=""></script><script src="/admin/_next/static/chunks/600-539045311240f579.js" async=""></script><script src="/admin/_next/static/chunks/1668-e3eabd0f6753c780.js" async=""></script><script src="/admin/_next/static/chunks/2676-73b0ee7c80073a84.js" async=""></script><script src="/admin/_next/static/chunks/1509-56ac00cdaaecdf53.js" async=""></script><script src="/admin/_next/static/chunks/6869-4f920a71fdc6b538.js" async=""></script><script src="/admin/_next/static/chunks/9487-b17481605e513b83.js" async=""></script><script src="/admin/_next/static/chunks/1783-d9fb550fd324300c.js" async=""></script><script src="/admin/_next/static/chunks/9881-419697138376e755.js" async=""></script><script src="/admin/_next/static/chunks/7324-b53229c59a640880.js" async=""></script><script src="/admin/_next/static/chunks/9124-a02f9e209e6e3cce.js" async=""></script><script src="/admin/_next/static/chunks/6712-781937c53a2c49da.js" async=""></script><script src="/admin/_next/static/chunks/6547-1aaab011e6089042.js" async=""></script><script src="/admin/_next/static/chunks/2033-8355304f13887db5.js" async=""></script><script src="/admin/_next/static/chunks/7304-bdd00a7504bc4081.js" async=""></script><script src="/admin/_next/static/chunks/3817-863d6bb5cfa0a8de.js" async=""></script><script src="/admin/_next/static/chunks/app/(authenticated)/workflows/page-33c1c69678122839.js" async=""></script><script src="/admin/_next/static/chunks/8473-6598318371eca31b.js" async=""></script><script src="/admin/_next/static/chunks/3563-b8842744384391fe.js" async=""></script><script src="/admin/_next/static/chunks/478-2b8adfd5c2853600.js" async=""></script><script src="/admin/_next/static/chunks/6599-03e2f2327c30b4c1.js" async=""></script><script src="/admin/_next/static/chunks/app/(authenticated)/layout-2a4b221af5cbbade.js" async=""></script><script src="/admin/_next/static/chunks/4883-8a924721bb21b3b0.js" async=""></script><script src="/admin/_next/static/chunks/app/layout-64ac14a534e2809b.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-FBCW8DT7KT" as="script"/><title>Baasix</title><script src="/admin/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-background font-sans antialiased"><!--$--><div class="flex items-center justify-center min-h-screen bg-background"><div class="text-center"><div class="inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-primary border-r-transparent align-[-0.125em] motion-reduce:animate-[spin_1.5s_linear_infinite]"></div><p class="mt-4 text-muted-foreground">Loading...</p></div></div><!--/$--><script src="/admin/_next/static/chunks/webpack-b29732cfe967a5f5.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/admin/_next/static/css/17a2e01c4184b106.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[12846,[],\"\"]\n4:I[19107,[],\"ClientPageRoot\"]\n5:I[53740,[\"7999\",\"static/chunks/6fcbdc68-90be1a5480b8d353.js\",\"3572\",\"static/chunks/70e0d97a-aeaf0cdc26ba1a58.js\",\"7902\",\"static/chunks/54a60aa6-d9747982e0a81f58.js\",\"5094\",\"static/chunks/5094-8d53e403235d4ca6.js\",\"4438\",\"static/chunks/4438-c9a12ca15b6e9160.js\",\"6530\",\"static/chunks/6530-a91e10cffa4200c4.js\",\"6241\",\"static/chunks/6241-30d7169d1010e5a4.js\",\"4475\",\"static/chunks/4475-8bdfbd536fba8c48.js\",\"926\",\"static/chunks/926-156f32067d111d6b.js\",\"600\",\"static/chunks/600-539045311240f579.js\",\"1668\",\"static/chunks/1668-e3eabd0f6753c780.js\",\"2676\",\"static/chunks/2676-73b0ee7c80073a84.js\",\"1509\",\"static/chunks/1509-56ac00cdaaecdf53.js\",\"6869\",\"static/chunks/6869-4f920a71fdc6b538.js\",\"9487\",\"static/chunks/9487-b17481605e513b83.js\",\"1783\",\"static/chunks/1783-d9fb550fd324300c.js\",\"9881\",\"static/chunks/9881-419697138376e755.js\",\"7324\",\"static/chunks/7324-b53229c59a640880.js\",\"9124\",\"static/chunks/9124-a02f9e209e6e3cce.js\",\"6712\",\"static/chunks/6712-781937c53a2c49da.js\",\"6547\",\"static/chunks/6547-1aaab011e6089042.js\",\"2033\",\"static/chunks/2033-8355304f13887db5.js\",\"7304\",\"static/chunks/7304-bdd00a7504bc4081.js\",\"3817\",\"static/chunks/3817-863d6bb5cfa0a8de.js\",\"7866\",\"static/chunks/app/(authenticated)/workflows/page-33c1c69678122839.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[36423,[],\"\"]\n8:I[7915,[\"7999\",\"static/chunks/6fcbdc68-90be1a5480b8d353.js\",\"5094\",\"static/chunks/5094-8d53e403235d4ca6.js\",\"4438\",\"static/chunks/4438-c9a12ca15b6e9160.js\",\"6530\",\"static/chunks/6530-a91e10cffa4200c4.js\",\"6241\",\"static/chunks/6241-30d7169d1010e5a4.js\",\"4475\",\"static/chunks/4475-8bdfbd536fba8c48.js\",\"926\",\"static/chunks/926-156f32067d111d6b.js\",\"600\",\"static/chunks/600-539045311240f579.js\",\"1668\",\"static/chunks/1668-e3eabd0f6753c780.js\",\"9124\",\"static/chunks/9124-a02f9e209e6e3cce.js\",\"8473\",\"static/chunks/8473-6598318371eca31b.js\",\"3563\",\"static/chunks/3563-b8842744384391fe.js\",\"478\",\"static/chunks/478-2b8adfd5c2853600.js\",\"6599\",\"static/chunks/6599-03e2f2327c30b4c1.js\",\"2760\",\"static/chunks/ap"])</script><script>self.__next_f.push([1,"p/(authenticated)/layout-2a4b221af5cbbade.js\"],\"default\",1]\na:I[84821,[\"7999\",\"static/chunks/6fcbdc68-90be1a5480b8d353.js\",\"5094\",\"static/chunks/5094-8d53e403235d4ca6.js\",\"4438\",\"static/chunks/4438-c9a12ca15b6e9160.js\",\"6530\",\"static/chunks/6530-a91e10cffa4200c4.js\",\"6241\",\"static/chunks/6241-30d7169d1010e5a4.js\",\"1668\",\"static/chunks/1668-e3eabd0f6753c780.js\",\"6869\",\"static/chunks/6869-4f920a71fdc6b538.js\",\"8473\",\"static/chunks/8473-6598318371eca31b.js\",\"4883\",\"static/chunks/4883-8a924721bb21b3b0.js\",\"7304\",\"static/chunks/7304-bdd00a7504bc4081.js\",\"3185\",\"static/chunks/app/layout-64ac14a534e2809b.js\"],\"default\",1]\n10:I[61060,[],\"\"]\n9:{}\nb:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\nc:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\nd:{\"display\":\"inline-block\"}\ne:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n11:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"ORfvBD2VaKIB_8_7O9AgQ\",\"assetPrefix\":\"/admin\",\"urlParts\":[\"\",\"workflows\",\"\"],\"initialTree\":[\"\",{\"children\":[\"(authenticated)\",{\"children\":[\"workflows\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(authenticated)\",{\"children\":[\"workflows\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(authenticated)\",\"children\",\"workflows\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(authenticated)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}],\"params\":\"$9\"}]],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/admin/_next/static/css/17a2e01c4184b106.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$b\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$c\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$d\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$e\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}],\"params\":\"$9\"}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Lf\"],\"globalErrorComponent\":\"$10\",\"missingSlots\":\"$W11\"}]\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
a:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
|
|
10
10
|
b:{"display":"inline-block"}
|
|
11
11
|
c:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
|
|
12
|
-
0:["
|
|
12
|
+
0:["ORfvBD2VaKIB_8_7O9AgQ",[[["",{"children":["(authenticated)",{"children":["workflows",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["(authenticated)",{"children":["workflows",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(authenticated)","children","workflows","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[null,["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(authenticated)","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}],"params":"$7"}]],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/admin/_next/static/css/17a2e01c4184b106.css","precedence":"next","crossOrigin":"$undefined"}]],["$","$L8",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$9","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$a","children":"404"}],["$","div",null,{"style":"$b","children":["$","h2",null,{"style":"$c","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}],"params":"$7"}]],null],null],["$Ld",null]]]]
|
|
13
13
|
d:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}]]
|
|
14
14
|
1:null
|
|
@@ -112,6 +112,17 @@ export declare class SchemaManager {
|
|
|
112
112
|
* Build column definition for CREATE TABLE
|
|
113
113
|
*/
|
|
114
114
|
private buildColumnDefinition;
|
|
115
|
+
/**
|
|
116
|
+
* Convert a schema field's defaultValue into a raw SQL DEFAULT expression (without the "DEFAULT" keyword).
|
|
117
|
+
* Returns null if no default is defined.
|
|
118
|
+
*/
|
|
119
|
+
private getDefaultExpression;
|
|
120
|
+
/**
|
|
121
|
+
* Normalize a default expression for comparison.
|
|
122
|
+
* PostgreSQL stores defaults with type casts (e.g. 'hello'::text, now(), gen_random_uuid())
|
|
123
|
+
* so we strip casts and lowercase for a fair comparison.
|
|
124
|
+
*/
|
|
125
|
+
private normalizeDefaultForComparison;
|
|
115
126
|
/**
|
|
116
127
|
* Check if database is empty and seed if needed
|
|
117
128
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaManager.d.ts","sourceRoot":"","sources":["../../baasix/utils/schemaManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAIjE;;GAEG;AACH,UAAU,mBAAoB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,UAAU,wBAAyB,SAAQ,gBAAgB;IACzD,4DAA4D;IAC5D,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;KAC7B,CAAC;IACF,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACpD;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,sBAAsB,EAAE,aAAa,GAAG,SAAS,CAAC;CACvD;AAaD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAgC;IAErD,OAAO;IAEP;;;OAGG;IACH,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAQ9D;;OAEG;IACH,gBAAgB,IAAI,sBAAsB,EAAE;IAI5C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,aAAa;IAQnC;;;;;;;;OAQG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCjC;;OAEG;YACW,wBAAwB;
|
|
1
|
+
{"version":3,"file":"schemaManager.d.ts","sourceRoot":"","sources":["../../baasix/utils/schemaManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,6 +104,27 @@ export class SchemaManager {
|
|
|
104
104
|
// Enable pgcrypto for gen_random_uuid()
|
|
105
105
|
await sql.unsafe('CREATE EXTENSION IF NOT EXISTS pgcrypto');
|
|
106
106
|
console.log('PostgreSQL extension pgcrypto enabled');
|
|
107
|
+
// Create baasix_generate_suid() function for Short Unique IDs
|
|
108
|
+
// Generates a 21-character URL-safe string (like nanoid) using base64url alphabet
|
|
109
|
+
await sql.unsafe(`
|
|
110
|
+
CREATE OR REPLACE FUNCTION baasix_generate_suid(size int = 21)
|
|
111
|
+
RETURNS text AS $$
|
|
112
|
+
DECLARE
|
|
113
|
+
id text := '';
|
|
114
|
+
i int := 0;
|
|
115
|
+
urlsafe_chars text := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-';
|
|
116
|
+
bytes bytea;
|
|
117
|
+
BEGIN
|
|
118
|
+
bytes := gen_random_bytes(size);
|
|
119
|
+
WHILE i < size LOOP
|
|
120
|
+
id := id || substr(urlsafe_chars, (get_byte(bytes, i) & 63) + 1, 1);
|
|
121
|
+
i := i + 1;
|
|
122
|
+
END LOOP;
|
|
123
|
+
RETURN id;
|
|
124
|
+
END;
|
|
125
|
+
$$ LANGUAGE plpgsql VOLATILE;
|
|
126
|
+
`);
|
|
127
|
+
console.log('PostgreSQL function baasix_generate_suid created');
|
|
107
128
|
// Enable PostGIS if configured
|
|
108
129
|
if (env.get('DATABASE_POSTGIS') === 'true') {
|
|
109
130
|
await sql.unsafe('CREATE EXTENSION IF NOT EXISTS postgis');
|
|
@@ -545,13 +566,14 @@ export class SchemaManager {
|
|
|
545
566
|
*/
|
|
546
567
|
async syncTableColumns(collectionName, schema) {
|
|
547
568
|
const sql = getSqlClient();
|
|
548
|
-
// Get existing columns in the table
|
|
569
|
+
// Get existing columns in the table (include is_nullable and column_default for constraint syncing)
|
|
549
570
|
const existingColumns = await sql `
|
|
550
|
-
SELECT column_name, data_type
|
|
571
|
+
SELECT column_name, data_type, is_nullable, column_default
|
|
551
572
|
FROM information_schema.columns
|
|
552
573
|
WHERE table_name = ${collectionName}
|
|
553
574
|
`;
|
|
554
575
|
const existingColumnNames = existingColumns.map((col) => col.column_name);
|
|
576
|
+
const existingColumnMap = new Map(existingColumns.map((col) => [col.column_name, col]));
|
|
555
577
|
// Check each field in schema
|
|
556
578
|
for (const [fieldName, fieldSchema] of Object.entries(schema.fields)) {
|
|
557
579
|
const fs = fieldSchema;
|
|
@@ -584,6 +606,67 @@ export class SchemaManager {
|
|
|
584
606
|
}
|
|
585
607
|
}
|
|
586
608
|
}
|
|
609
|
+
else {
|
|
610
|
+
// Column exists — sync NOT NULL constraint if it changed
|
|
611
|
+
const existingCol = existingColumnMap.get(fieldName);
|
|
612
|
+
if (existingCol) {
|
|
613
|
+
// --- Sync NOT NULL constraint ---
|
|
614
|
+
const dbIsNullable = existingCol.is_nullable === 'YES';
|
|
615
|
+
const schemaAllowNull = fs.allowNull !== false; // default is nullable (allowNull: true)
|
|
616
|
+
if (dbIsNullable && !schemaAllowNull) {
|
|
617
|
+
// Schema says NOT NULL but DB allows NULL → SET NOT NULL
|
|
618
|
+
try {
|
|
619
|
+
await sql.unsafe(`ALTER TABLE "${collectionName}" ALTER COLUMN "${fieldName}" SET NOT NULL`);
|
|
620
|
+
console.log(`Set NOT NULL on column ${fieldName} in ${collectionName}`);
|
|
621
|
+
}
|
|
622
|
+
catch (error) {
|
|
623
|
+
console.error(`Failed to set NOT NULL on column ${fieldName} in ${collectionName}:`, error);
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
else if (!dbIsNullable && schemaAllowNull && !fs.primaryKey) {
|
|
627
|
+
// Schema says nullable but DB has NOT NULL → DROP NOT NULL (skip primary keys)
|
|
628
|
+
try {
|
|
629
|
+
await sql.unsafe(`ALTER TABLE "${collectionName}" ALTER COLUMN "${fieldName}" DROP NOT NULL`);
|
|
630
|
+
console.log(`Dropped NOT NULL on column ${fieldName} in ${collectionName}`);
|
|
631
|
+
}
|
|
632
|
+
catch (error) {
|
|
633
|
+
console.error(`Failed to drop NOT NULL on column ${fieldName} in ${collectionName}:`, error);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
// --- Sync DEFAULT value ---
|
|
637
|
+
const schemaDefault = this.getDefaultExpression(fs);
|
|
638
|
+
const dbDefault = existingCol.column_default;
|
|
639
|
+
// Skip SERIAL/auto-increment columns (their defaults are managed by sequences)
|
|
640
|
+
const isSerialDefault = dbDefault && dbDefault.startsWith('nextval(');
|
|
641
|
+
if (!isSerialDefault) {
|
|
642
|
+
if (schemaDefault === null && dbDefault !== null) {
|
|
643
|
+
// Schema has no default but DB has one → DROP DEFAULT
|
|
644
|
+
try {
|
|
645
|
+
await sql.unsafe(`ALTER TABLE "${collectionName}" ALTER COLUMN "${fieldName}" DROP DEFAULT`);
|
|
646
|
+
console.log(`Dropped DEFAULT on column ${fieldName} in ${collectionName}`);
|
|
647
|
+
}
|
|
648
|
+
catch (error) {
|
|
649
|
+
console.error(`Failed to drop DEFAULT on column ${fieldName} in ${collectionName}:`, error);
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
else if (schemaDefault !== null) {
|
|
653
|
+
// Compare: normalize DB default for comparison
|
|
654
|
+
const normalizedDbDefault = dbDefault ? this.normalizeDefaultForComparison(dbDefault) : null;
|
|
655
|
+
const normalizedSchemaDefault = this.normalizeDefaultForComparison(schemaDefault);
|
|
656
|
+
if (normalizedDbDefault !== normalizedSchemaDefault) {
|
|
657
|
+
// Default changed or was added → SET DEFAULT
|
|
658
|
+
try {
|
|
659
|
+
await sql.unsafe(`ALTER TABLE "${collectionName}" ALTER COLUMN "${fieldName}" SET DEFAULT ${schemaDefault}`);
|
|
660
|
+
console.log(`Set DEFAULT ${schemaDefault} on column ${fieldName} in ${collectionName}`);
|
|
661
|
+
}
|
|
662
|
+
catch (error) {
|
|
663
|
+
console.error(`Failed to set DEFAULT on column ${fieldName} in ${collectionName}:`, error);
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
587
670
|
}
|
|
588
671
|
// Add timestamp columns if needed
|
|
589
672
|
if (schema.timestamps !== false) {
|
|
@@ -891,6 +974,9 @@ export class SchemaManager {
|
|
|
891
974
|
case 'UUID':
|
|
892
975
|
pgType = 'UUID';
|
|
893
976
|
break;
|
|
977
|
+
case 'SUID':
|
|
978
|
+
pgType = 'VARCHAR(21)';
|
|
979
|
+
break;
|
|
894
980
|
case 'String':
|
|
895
981
|
pgType = fieldSchema.values?.stringLength ? `VARCHAR(${fieldSchema.values.stringLength})` : 'TEXT';
|
|
896
982
|
break;
|
|
@@ -983,8 +1069,8 @@ export class SchemaManager {
|
|
|
983
1069
|
parts.push('DEFAULT gen_random_uuid()');
|
|
984
1070
|
break;
|
|
985
1071
|
case 'SUID':
|
|
986
|
-
// Short unique ID -
|
|
987
|
-
parts.push('DEFAULT
|
|
1072
|
+
// Short unique ID - 21 char URL-safe string (like nanoid)
|
|
1073
|
+
parts.push('DEFAULT baasix_generate_suid()');
|
|
988
1074
|
break;
|
|
989
1075
|
case 'NOW':
|
|
990
1076
|
parts.push('DEFAULT NOW()');
|
|
@@ -1009,6 +1095,58 @@ export class SchemaManager {
|
|
|
1009
1095
|
}
|
|
1010
1096
|
return parts.join(' ');
|
|
1011
1097
|
}
|
|
1098
|
+
/**
|
|
1099
|
+
* Convert a schema field's defaultValue into a raw SQL DEFAULT expression (without the "DEFAULT" keyword).
|
|
1100
|
+
* Returns null if no default is defined.
|
|
1101
|
+
*/
|
|
1102
|
+
getDefaultExpression(fieldSchema) {
|
|
1103
|
+
if (fieldSchema.defaultValue === undefined || fieldSchema.defaultValue === null) {
|
|
1104
|
+
return null;
|
|
1105
|
+
}
|
|
1106
|
+
// Skip auto-increment types
|
|
1107
|
+
if (fieldSchema.autoIncrement || fieldSchema.type === 'AutoIncrement') {
|
|
1108
|
+
return null;
|
|
1109
|
+
}
|
|
1110
|
+
if (typeof fieldSchema.defaultValue === 'object' && fieldSchema.defaultValue.type) {
|
|
1111
|
+
switch (fieldSchema.defaultValue.type) {
|
|
1112
|
+
case 'UUIDV4':
|
|
1113
|
+
return 'gen_random_uuid()';
|
|
1114
|
+
case 'SUID':
|
|
1115
|
+
return 'baasix_generate_suid()';
|
|
1116
|
+
case 'NOW':
|
|
1117
|
+
return 'NOW()';
|
|
1118
|
+
case 'SQL':
|
|
1119
|
+
return fieldSchema.defaultValue.value || null;
|
|
1120
|
+
}
|
|
1121
|
+
return null;
|
|
1122
|
+
}
|
|
1123
|
+
else if (typeof fieldSchema.defaultValue === 'string') {
|
|
1124
|
+
return `'${fieldSchema.defaultValue}'`;
|
|
1125
|
+
}
|
|
1126
|
+
else if (typeof fieldSchema.defaultValue === 'number') {
|
|
1127
|
+
return `${fieldSchema.defaultValue}`;
|
|
1128
|
+
}
|
|
1129
|
+
else if (typeof fieldSchema.defaultValue === 'boolean') {
|
|
1130
|
+
return `${fieldSchema.defaultValue}`;
|
|
1131
|
+
}
|
|
1132
|
+
return null;
|
|
1133
|
+
}
|
|
1134
|
+
/**
|
|
1135
|
+
* Normalize a default expression for comparison.
|
|
1136
|
+
* PostgreSQL stores defaults with type casts (e.g. 'hello'::text, now(), gen_random_uuid())
|
|
1137
|
+
* so we strip casts and lowercase for a fair comparison.
|
|
1138
|
+
*/
|
|
1139
|
+
normalizeDefaultForComparison(expr) {
|
|
1140
|
+
let normalized = expr.toLowerCase().trim();
|
|
1141
|
+
// Remove trailing ::type casts (e.g., 'hello'::character varying, 'hello'::text)
|
|
1142
|
+
normalized = normalized.replace(/::[a-z\d [\]()]+$/g, '');
|
|
1143
|
+
// Normalize whitespace
|
|
1144
|
+
normalized = normalized.replace(/\s+/g, ' ').trim();
|
|
1145
|
+
// Normalize now() variants
|
|
1146
|
+
normalized = normalized.replace(/^now\(\)$/, 'now()');
|
|
1147
|
+
normalized = normalized.replace(/^current_timestamp$/, 'now()');
|
|
1148
|
+
return normalized;
|
|
1149
|
+
}
|
|
1012
1150
|
/**
|
|
1013
1151
|
* Check if database is empty and seed if needed
|
|
1014
1152
|
*/
|