pycharter 0.0.20__py3-none-any.whl → 0.0.22__py3-none-any.whl
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.
- api/dependencies/__init__.py +2 -1
- api/dependencies/database.py +71 -5
- api/main.py +47 -8
- api/models/contracts.py +6 -4
- api/models/metadata.py +11 -7
- api/models/schemas.py +16 -10
- api/routes/v1/contracts.py +498 -226
- api/routes/v1/metadata.py +52 -211
- api/routes/v1/schemas.py +1 -1
- api/routes/v1/settings.py +88 -1
- api/utils.py +224 -0
- pycharter/__init__.py +149 -93
- pycharter/data/templates/template_transform_advanced.yaml +50 -0
- pycharter/data/templates/template_transform_simple.yaml +59 -0
- pycharter/db/models/base.py +1 -2
- pycharter/etl_generator/orchestrator.py +463 -487
- pycharter/metadata_store/postgres.py +16 -191
- pycharter/metadata_store/sqlite.py +12 -41
- {pycharter-0.0.20.dist-info → pycharter-0.0.22.dist-info}/METADATA +284 -62
- pycharter-0.0.22.dist-info/RECORD +358 -0
- ui/static/404/index.html +1 -1
- ui/static/404.html +1 -1
- ui/static/__next.__PAGE__.txt +1 -1
- ui/static/__next._full.txt +2 -2
- ui/static/__next._head.txt +1 -1
- ui/static/__next._index.txt +2 -2
- ui/static/__next._tree.txt +2 -2
- ui/static/_next/static/chunks/13d4a0fbd74c1ee4.js +1 -0
- ui/static/_next/static/chunks/2edb43b48432ac04.js +441 -0
- ui/static/_next/static/chunks/c4fa4f4114b7c352.js +1 -0
- ui/static/_next/static/chunks/d2363397e1b2bcab.css +1 -0
- ui/static/_next/static/chunks/f7d1a90dd75d2572.js +1 -0
- ui/static/_not-found/__next._full.txt +2 -2
- ui/static/_not-found/__next._head.txt +1 -1
- ui/static/_not-found/__next._index.txt +2 -2
- ui/static/_not-found/__next._not-found.__PAGE__.txt +1 -1
- ui/static/_not-found/__next._not-found.txt +1 -1
- ui/static/_not-found/__next._tree.txt +2 -2
- ui/static/_not-found/index.html +1 -1
- ui/static/_not-found/index.txt +2 -2
- ui/static/contracts/__next._full.txt +3 -3
- ui/static/contracts/__next._head.txt +1 -1
- ui/static/contracts/__next._index.txt +2 -2
- ui/static/contracts/__next._tree.txt +2 -2
- ui/static/contracts/__next.contracts.__PAGE__.txt +2 -2
- ui/static/contracts/__next.contracts.txt +1 -1
- ui/static/contracts/index.html +1 -1
- ui/static/contracts/index.txt +3 -3
- ui/static/documentation/__next._full.txt +3 -3
- ui/static/documentation/__next._head.txt +1 -1
- ui/static/documentation/__next._index.txt +2 -2
- ui/static/documentation/__next._tree.txt +2 -2
- ui/static/documentation/__next.documentation.__PAGE__.txt +2 -2
- ui/static/documentation/__next.documentation.txt +1 -1
- ui/static/documentation/index.html +2 -2
- ui/static/documentation/index.txt +3 -3
- ui/static/index.html +1 -1
- ui/static/index.txt +2 -2
- ui/static/metadata/__next._full.txt +2 -2
- ui/static/metadata/__next._head.txt +1 -1
- ui/static/metadata/__next._index.txt +2 -2
- ui/static/metadata/__next._tree.txt +2 -2
- ui/static/metadata/__next.metadata.__PAGE__.txt +1 -1
- ui/static/metadata/__next.metadata.txt +1 -1
- ui/static/metadata/index.html +1 -1
- ui/static/metadata/index.txt +2 -2
- ui/static/quality/__next._full.txt +2 -2
- ui/static/quality/__next._head.txt +1 -1
- ui/static/quality/__next._index.txt +2 -2
- ui/static/quality/__next._tree.txt +2 -2
- ui/static/quality/__next.quality.__PAGE__.txt +1 -1
- ui/static/quality/__next.quality.txt +1 -1
- ui/static/quality/index.html +2 -2
- ui/static/quality/index.txt +2 -2
- ui/static/rules/__next._full.txt +2 -2
- ui/static/rules/__next._head.txt +1 -1
- ui/static/rules/__next._index.txt +2 -2
- ui/static/rules/__next._tree.txt +2 -2
- ui/static/rules/__next.rules.__PAGE__.txt +1 -1
- ui/static/rules/__next.rules.txt +1 -1
- ui/static/rules/index.html +1 -1
- ui/static/rules/index.txt +2 -2
- ui/static/schemas/__next._full.txt +2 -2
- ui/static/schemas/__next._head.txt +1 -1
- ui/static/schemas/__next._index.txt +2 -2
- ui/static/schemas/__next._tree.txt +2 -2
- ui/static/schemas/__next.schemas.__PAGE__.txt +1 -1
- ui/static/schemas/__next.schemas.txt +1 -1
- ui/static/schemas/index.html +1 -1
- ui/static/schemas/index.txt +2 -2
- ui/static/settings/__next._full.txt +2 -2
- ui/static/settings/__next._head.txt +1 -1
- ui/static/settings/__next._index.txt +2 -2
- ui/static/settings/__next._tree.txt +2 -2
- ui/static/settings/__next.settings.__PAGE__.txt +1 -1
- ui/static/settings/__next.settings.txt +1 -1
- ui/static/settings/index.html +1 -1
- ui/static/settings/index.txt +2 -2
- ui/static/static/.gitkeep +0 -0
- ui/static/static/404/index.html +1 -0
- ui/static/static/404.html +1 -0
- ui/static/static/__next.__PAGE__.txt +10 -0
- ui/static/static/__next._full.txt +30 -0
- ui/static/static/__next._head.txt +7 -0
- ui/static/static/__next._index.txt +9 -0
- ui/static/static/__next._tree.txt +2 -0
- ui/static/static/_next/static/chunks/222442f6da32302a.js +1 -0
- ui/static/static/_next/static/chunks/247eb132b7f7b574.js +1 -0
- ui/static/static/_next/static/chunks/297d55555b71baba.js +1 -0
- ui/static/static/_next/static/chunks/2ab439ce003cd691.js +1 -0
- ui/static/static/_next/static/chunks/414e77373f8ff61c.js +1 -0
- ui/static/static/_next/static/chunks/49ca65abd26ae49e.js +1 -0
- ui/static/static/_next/static/chunks/5e04d10c4a7b58a3.js +1 -0
- ui/static/static/_next/static/chunks/652ad0aa26265c47.js +2 -0
- ui/static/static/_next/static/chunks/75d88a058d8ffaa6.js +1 -0
- ui/static/static/_next/static/chunks/8c89634cf6bad76f.js +1 -0
- ui/static/static/_next/static/chunks/9667e7a3d359eb39.js +1 -0
- ui/static/static/_next/static/chunks/9c23f44fff36548a.js +1 -0
- ui/static/static/_next/static/chunks/a6dad97d9634a72d.js +1 -0
- ui/static/static/_next/static/chunks/b32a0963684b9933.js +4 -0
- ui/static/static/_next/static/chunks/c69f6cba366bd988.js +1 -0
- ui/static/static/_next/static/chunks/db913959c675cea6.js +1 -0
- ui/static/static/_next/static/chunks/f061a4be97bfc3b3.js +1 -0
- ui/static/static/_next/static/chunks/f2e7afeab1178138.js +1 -0
- ui/static/static/_next/static/chunks/ff1a16fafef87110.js +1 -0
- ui/static/static/_next/static/chunks/turbopack-ffcb7ab6794027ef.js +3 -0
- ui/static/static/_next/static/tNTkVW6puVXC4bAm4WrHl/_buildManifest.js +11 -0
- ui/static/static/_next/static/tNTkVW6puVXC4bAm4WrHl/_ssgManifest.js +1 -0
- ui/static/static/_not-found/__next._full.txt +17 -0
- ui/static/static/_not-found/__next._head.txt +7 -0
- ui/static/static/_not-found/__next._index.txt +9 -0
- ui/static/static/_not-found/__next._not-found.__PAGE__.txt +5 -0
- ui/static/static/_not-found/__next._not-found.txt +4 -0
- ui/static/static/_not-found/__next._tree.txt +2 -0
- ui/static/static/_not-found/index.html +1 -0
- ui/static/static/_not-found/index.txt +17 -0
- ui/static/static/contracts/__next._full.txt +21 -0
- ui/static/static/contracts/__next._head.txt +7 -0
- ui/static/static/contracts/__next._index.txt +9 -0
- ui/static/static/contracts/__next._tree.txt +2 -0
- ui/static/static/contracts/__next.contracts.__PAGE__.txt +9 -0
- ui/static/static/contracts/__next.contracts.txt +4 -0
- ui/static/static/contracts/index.html +1 -0
- ui/static/static/contracts/index.txt +21 -0
- ui/static/static/documentation/__next._full.txt +21 -0
- ui/static/static/documentation/__next._head.txt +7 -0
- ui/static/static/documentation/__next._index.txt +9 -0
- ui/static/static/documentation/__next._tree.txt +2 -0
- ui/static/static/documentation/__next.documentation.__PAGE__.txt +9 -0
- ui/static/static/documentation/__next.documentation.txt +4 -0
- ui/static/static/documentation/index.html +93 -0
- ui/static/static/documentation/index.txt +21 -0
- ui/static/static/index.html +1 -0
- ui/static/static/index.txt +30 -0
- ui/static/static/metadata/__next._full.txt +21 -0
- ui/static/static/metadata/__next._head.txt +7 -0
- ui/static/static/metadata/__next._index.txt +9 -0
- ui/static/static/metadata/__next._tree.txt +2 -0
- ui/static/static/metadata/__next.metadata.__PAGE__.txt +9 -0
- ui/static/static/metadata/__next.metadata.txt +4 -0
- ui/static/static/metadata/index.html +1 -0
- ui/static/static/metadata/index.txt +21 -0
- ui/static/static/quality/__next._full.txt +21 -0
- ui/static/static/quality/__next._head.txt +7 -0
- ui/static/static/quality/__next._index.txt +9 -0
- ui/static/static/quality/__next._tree.txt +2 -0
- ui/static/static/quality/__next.quality.__PAGE__.txt +9 -0
- ui/static/static/quality/__next.quality.txt +4 -0
- ui/static/static/quality/index.html +2 -0
- ui/static/static/quality/index.txt +21 -0
- ui/static/static/rules/__next._full.txt +21 -0
- ui/static/static/rules/__next._head.txt +7 -0
- ui/static/static/rules/__next._index.txt +9 -0
- ui/static/static/rules/__next._tree.txt +2 -0
- ui/static/static/rules/__next.rules.__PAGE__.txt +9 -0
- ui/static/static/rules/__next.rules.txt +4 -0
- ui/static/static/rules/index.html +1 -0
- ui/static/static/rules/index.txt +21 -0
- ui/static/static/schemas/__next._full.txt +21 -0
- ui/static/static/schemas/__next._head.txt +7 -0
- ui/static/static/schemas/__next._index.txt +9 -0
- ui/static/static/schemas/__next._tree.txt +2 -0
- ui/static/static/schemas/__next.schemas.__PAGE__.txt +9 -0
- ui/static/static/schemas/__next.schemas.txt +4 -0
- ui/static/static/schemas/index.html +1 -0
- ui/static/static/schemas/index.txt +21 -0
- ui/static/static/settings/__next._full.txt +21 -0
- ui/static/static/settings/__next._head.txt +7 -0
- ui/static/static/settings/__next._index.txt +9 -0
- ui/static/static/settings/__next._tree.txt +2 -0
- ui/static/static/settings/__next.settings.__PAGE__.txt +9 -0
- ui/static/static/settings/__next.settings.txt +4 -0
- ui/static/static/settings/index.html +1 -0
- ui/static/static/settings/index.txt +21 -0
- ui/static/static/validation/__next._full.txt +21 -0
- ui/static/static/validation/__next._head.txt +7 -0
- ui/static/static/validation/__next._index.txt +9 -0
- ui/static/static/validation/__next._tree.txt +2 -0
- ui/static/static/validation/__next.validation.__PAGE__.txt +9 -0
- ui/static/static/validation/__next.validation.txt +4 -0
- ui/static/static/validation/index.html +1 -0
- ui/static/static/validation/index.txt +21 -0
- ui/static/validation/__next._full.txt +2 -2
- ui/static/validation/__next._head.txt +1 -1
- ui/static/validation/__next._index.txt +2 -2
- ui/static/validation/__next._tree.txt +2 -2
- ui/static/validation/__next.validation.__PAGE__.txt +1 -1
- ui/static/validation/__next.validation.txt +1 -1
- ui/static/validation/index.html +1 -1
- ui/static/validation/index.txt +2 -2
- pycharter/db/schemas/.ipynb_checkpoints/data_contract-checkpoint.py +0 -160
- pycharter-0.0.20.dist-info/RECORD +0 -247
- {pycharter-0.0.20.dist-info → pycharter-0.0.22.dist-info}/WHEEL +0 -0
- {pycharter-0.0.20.dist-info → pycharter-0.0.22.dist-info}/entry_points.txt +0 -0
- {pycharter-0.0.20.dist-info → pycharter-0.0.22.dist-info}/licenses/LICENSE +0 -0
- {pycharter-0.0.20.dist-info → pycharter-0.0.22.dist-info}/top_level.txt +0 -0
- /ui/static/_next/static/{tNTkVW6puVXC4bAm4WrHl → 0rYA78L88aUyD2Uh38hhX}/_buildManifest.js +0 -0
- /ui/static/_next/static/{tNTkVW6puVXC4bAm4WrHl → 0rYA78L88aUyD2Uh38hhX}/_ssgManifest.js +0 -0
- /ui/static/{_next → static/_next}/static/chunks/4e310fe5005770a3.css +0 -0
- /ui/static/{_next → static/_next}/static/chunks/5fc14c00a2779dc5.js +0 -0
- /ui/static/{_next → static/_next}/static/chunks/b584574fdc8ab13e.js +0 -0
- /ui/static/{_next → static/_next}/static/chunks/d5989c94d3614b3a.js +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[46417,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
3
|
+
3:I[88589,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
4
|
+
4:I[39756,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
5
|
+
5:I[58298,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/c69f6cba366bd988.js"],"default"]
|
|
6
|
+
6:I[37457,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
7
|
+
7:I[47257,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ClientPageRoot"]
|
|
8
|
+
8:I[33558,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/d5989c94d3614b3a.js"],"default"]
|
|
9
|
+
b:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"OutletBoundary"]
|
|
10
|
+
c:"$Sreact.suspense"
|
|
11
|
+
e:I[61246,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/297d55555b71baba.js"],"PageLoading"]
|
|
12
|
+
f:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ViewportBoundary"]
|
|
13
|
+
11:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"MetadataBoundary"]
|
|
14
|
+
13:I[68027,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
15
|
+
:HL["/_next/static/chunks/4e310fe5005770a3.css","style"]
|
|
16
|
+
0:{"P":null,"b":"tNTkVW6puVXC4bAm4WrHl","c":["","documentation",""],"q":"","i":false,"f":[[["",{"children":["documentation",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/4e310fe5005770a3.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/f061a4be97bfc3b3.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/f2e7afeab1178138.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"min-h-screen flex flex-col","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1","style":{"minHeight":0,"overflow":"hidden","position":"relative"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$5","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/c69f6cba366bd988.js","async":true}]],"template":["$","$L6",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."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/d5989c94d3614b3a.js","async":true,"nonce":"$undefined"}]],["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,false]},null,false,false]},[["$","$Le","l",{}],[],[["$","script","script-0",{"src":"/_next/static/chunks/297d55555b71baba.js","async":true}]]],false,false],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$@10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$@12"}]}]}],null]}],false]],"m":"$undefined","G":["$13",[]],"S":true}
|
|
17
|
+
9:{}
|
|
18
|
+
a:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
19
|
+
10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
20
|
+
12:[["$","title","0",{"children":"PyCharter - Data Contract Management"}],["$","meta","1",{"name":"description","content":"Data Contract Management and Validation"}]]
|
|
21
|
+
d:null
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ViewportBoundary"]
|
|
3
|
+
4:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"MetadataBoundary"]
|
|
4
|
+
5:"$Sreact.suspense"
|
|
5
|
+
0:{"buildId":"tNTkVW6puVXC4bAm4WrHl","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false}
|
|
6
|
+
3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
7
|
+
6:[["$","title","0",{"children":"PyCharter - Data Contract Management"}],["$","meta","1",{"name":"description","content":"Data Contract Management and Validation"}]]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[46417,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
3
|
+
3:I[88589,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
4
|
+
4:I[39756,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
5
|
+
5:I[58298,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/c69f6cba366bd988.js"],"default"]
|
|
6
|
+
6:I[37457,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
7
|
+
7:I[61246,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/297d55555b71baba.js"],"PageLoading"]
|
|
8
|
+
:HL["/_next/static/chunks/4e310fe5005770a3.css","style"]
|
|
9
|
+
0:{"buildId":"tNTkVW6puVXC4bAm4WrHl","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/4e310fe5005770a3.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/f061a4be97bfc3b3.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/f2e7afeab1178138.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"min-h-screen flex flex-col","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1","style":{"minHeight":0,"overflow":"hidden","position":"relative"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$5","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/c69f6cba366bd988.js","async":true}]],"template":["$","$L6",null,{}],"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."}]}]]}]}]],[]]}]}]]}]}]}]}]]}],"loading":[["$","$L7","l",{}],[],[["$","script","script-0",{"src":"/_next/static/chunks/297d55555b71baba.js","async":true}]]],"isPartial":false}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:HL["/_next/static/chunks/4e310fe5005770a3.css","style"]
|
|
2
|
+
0:{"buildId":"tNTkVW6puVXC4bAm4WrHl","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"documentation","paramType":null,"paramKey":"documentation","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[47257,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ClientPageRoot"]
|
|
3
|
+
3:I[33558,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/d5989c94d3614b3a.js"],"default"]
|
|
4
|
+
6:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"OutletBoundary"]
|
|
5
|
+
7:"$Sreact.suspense"
|
|
6
|
+
0:{"buildId":"tNTkVW6puVXC4bAm4WrHl","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/d5989c94d3614b3a.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false}
|
|
7
|
+
4:{}
|
|
8
|
+
5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
9
|
+
8:null
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[39756,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
3
|
+
3:I[37457,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
4
|
+
0:{"buildId":"tNTkVW6puVXC4bAm4WrHl","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
<!DOCTYPE html><!--tNTkVW6puVXC4bAm4WrHl--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/4e310fe5005770a3.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/414e77373f8ff61c.js"/><script src="/_next/static/chunks/b32a0963684b9933.js" async=""></script><script src="/_next/static/chunks/652ad0aa26265c47.js" async=""></script><script src="/_next/static/chunks/9c23f44fff36548a.js" async=""></script><script src="/_next/static/chunks/turbopack-ffcb7ab6794027ef.js" async=""></script><script src="/_next/static/chunks/f061a4be97bfc3b3.js" async=""></script><script src="/_next/static/chunks/f2e7afeab1178138.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/247eb132b7f7b574.js" async=""></script><script src="/_next/static/chunks/c69f6cba366bd988.js" async=""></script><script src="/_next/static/chunks/d5989c94d3614b3a.js" async=""></script><script src="/_next/static/chunks/297d55555b71baba.js" async=""></script><title>PyCharter - Data Contract Management</title><meta name="description" content="Data Contract Management and Validation"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen flex flex-col"><nav class="border-b bg-background sticky top-0 z-50"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="flex justify-between h-16"><div class="flex"><a class="flex items-center" href="/"><span class="text-xl font-bold text-primary">PyCharter</span></a><div class="hidden sm:ml-6 sm:flex sm:space-x-8"><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/contracts/">Contracts</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/schemas/">Schemas</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/metadata/">Metadata</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/rules/">Rules</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/validation/">Validation</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/quality/">Quality</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/documentation/">Documentation</a></div></div><div class="flex items-center gap-2"><div class="hidden sm:block relative"><button type="button" class="inline-flex items-center gap-2 px-3 py-2 rounded-md text-sm font-medium text-muted-foreground hover:text-foreground hover:bg-muted focus:outline-none focus:ring-2 focus:ring-inset focus:ring-primary transition-colors" aria-expanded="false" aria-haspopup="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user h-5 w-5"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 transition-transform"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="flex items-center sm:hidden"><button type="button" class="inline-flex items-center justify-center p-2 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted focus:outline-none focus:ring-2 focus:ring-inset focus:ring-primary" aria-controls="mobile-menu" aria-expanded="false"><span class="sr-only">Open main menu</span><svg class="block h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div></div></div></div></nav><main class="flex-1" style="min-height:0;overflow:hidden;position:relative"><!--$?--><template id="B:0"></template><div class="min-h-screen flex items-center justify-center bg-background"><div class="text-center"><div class="flex items-center justify-center mb-4"><div class="animate-spin rounded-full border-2 border-muted border-t-primary h-12 w-12"></div></div><p class="text-muted-foreground">Loading...</p></div></div><!--/$--></main></div><script>requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/_next/static/chunks/414e77373f8ff61c.js" id="_R_" async=""></script><div hidden id="S:0"><div class="flex h-full bg-background" style="height:calc(100vh - 4rem);overflow:hidden"><div class="flex-shrink-0" style="height:100%;overflow:hidden"><div class="flex flex-col bg-background border-r border-border/50 shadow-sm transition-all duration-300 w-64" style="height:100%;overflow:hidden"><div class="flex items-center justify-between px-4 py-3 border-b border-border/50 bg-muted/30"><h2 class="text-sm font-semibold text-foreground tracking-wide">Documentation</h2><button class="p-1.5 rounded-md hover:bg-muted transition-all duration-200 hover:scale-105 active:scale-95" aria-label="Collapse sidebar"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left h-4 w-4 text-muted-foreground"><path d="m15 18-6-6 6-6"></path></svg></button></div><div class="flex-1 overflow-y-auto overflow-x-hidden px-2 py-3" style="max-height:100%"><div class="space-y-1"><div class="mb-1"><button class="w-full flex items-center justify-between px-3 py-2.5 rounded-lg transition-all duration-200 bg-primary/10 text-primary hover:bg-primary/15"><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text h-4 w-4 transition-colors text-primary"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span class="text-sm font-medium text-primary">Contract Management</span></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up h-3.5 w-3.5 text-muted-foreground transition-transform duration-200"><path d="m18 15-6-6-6 6"></path></svg></button><div class="ml-1 mt-1 space-y-0.5 pl-2 border-l-2 border-muted"><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Parse Contract</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Build Contract</button></div></div><div class="mb-1"><button class="w-full flex items-center justify-between px-3 py-2.5 rounded-lg transition-all duration-200 hover:bg-muted/50 hover:shadow-sm"><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database h-4 w-4 transition-colors text-muted-foreground"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="text-sm font-medium text-foreground">Metadata Store Client</span></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up h-3.5 w-3.5 text-muted-foreground transition-transform duration-200"><path d="m18 15-6-6-6 6"></path></svg></button><div class="ml-1 mt-1 space-y-0.5 pl-2 border-l-2 border-muted"><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Store Schema</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Get Schema</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">List Schemas</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Store Metadata</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Get Metadata</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Store Coercion Rules</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Get Coercion Rules</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Store Validation Rules</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Get Validation Rules</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Get Complete Schema</button></div></div><div class="mb-1"><button class="w-full flex items-center justify-between px-3 py-2.5 rounded-lg transition-all duration-200 hover:bg-muted/50 hover:shadow-sm"><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code h-4 w-4 transition-colors text-muted-foreground"><polyline points="16 18 22 12 16 6"></polyline><polyline points="8 6 2 12 8 18"></polyline></svg><span class="text-sm font-medium text-foreground">Model Generator</span></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up h-3.5 w-3.5 text-muted-foreground transition-transform duration-200"><path d="m18 15-6-6-6 6"></path></svg></button><div class="ml-1 mt-1 space-y-0.5 pl-2 border-l-2 border-muted"><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Generate Model</button><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Convert Schema</button></div></div><div class="mb-1"><button class="w-full flex items-center justify-between px-3 py-2.5 rounded-lg transition-all duration-200 hover:bg-muted/50 hover:shadow-sm"><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check h-4 w-4 transition-colors text-muted-foreground"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><span class="text-sm font-medium text-foreground">Validation</span></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up h-3.5 w-3.5 text-muted-foreground transition-transform duration-200"><path d="m18 15-6-6-6 6"></path></svg></button><div class="ml-1 mt-1 space-y-0.5 pl-2 border-l-2 border-muted"><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Validate Data</button></div></div><div class="mb-1"><button class="w-full flex items-center justify-between px-3 py-2.5 rounded-lg transition-all duration-200 hover:bg-muted/50 hover:shadow-sm"><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-award h-4 w-4 transition-colors text-muted-foreground"><path d="m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526"></path><circle cx="12" cy="8" r="6"></circle></svg><span class="text-sm font-medium text-foreground">Quality Assurance</span></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up h-3.5 w-3.5 text-muted-foreground transition-transform duration-200"><path d="m18 15-6-6-6 6"></path></svg></button><div class="ml-1 mt-1 space-y-0.5 pl-2 border-l-2 border-muted"><button class="w-full text-left px-3 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md transition-all duration-200 hover:translate-x-0.5">Quality Check</button></div></div></div></div></div></div><div class="flex-1 min-w-0" style="height:100%;overflow-y:auto;overflow-x:hidden" data-content-area="true"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"><div class="space-y-8"><div id="section-contract-management" class="scroll-mt-4 mb-4"><h2 class="text-2xl font-bold text-foreground mb-1">Contract Management</h2><p class="text-sm text-muted-foreground">Manage and work with data contracts</p></div><div class="space-y-6"><div id="method-parse_contract" class="border rounded-lg overflow-hidden scroll-mt-4"><div class="grid grid-cols-1 lg:grid-cols-2 gap-4 p-4"><div><h4 class="font-semibold mb-2">Contract Parser</h4><p class="text-sm text-muted-foreground mb-3">Read and decompose data contract files</p><div class="mb-4"><h5 class="text-sm font-semibold mb-2">Arguments</h5><div class="space-y-2"><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">contract_data</div><div class="text-muted-foreground mt-0.5"><span class="font-mono">Dict[str, Any]</span></div><div class="text-muted-foreground mt-1">Contract data as dictionary containing schema, metadata, ownership, governance_rules, coercion_rules, and validation_rules</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">validate<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">bool</span><span class="ml-1">default: <!-- -->True</span></div><div class="text-muted-foreground mt-1">If True (default), validate contract against schema before parsing</div></div></div></div><div class="mb-4"><h5 class="text-sm font-semibold mb-2">Returns</h5><div class="text-xs border-l-2 border-green-500/20 pl-2"><div class="font-mono font-semibold text-foreground mb-0.5">ContractMetadata</div><div class="text-muted-foreground">ContractMetadata object with decomposed components (schema, metadata, ownership, governance_rules, coercion_rules, validation_rules) and version tracking</div></div></div><div class="bg-muted p-3 rounded font-mono text-xs overflow-x-auto mb-3"><pre class="whitespace-pre-wrap">from pycharter import parse_contract, parse_contract_file
|
|
2
|
+
|
|
3
|
+
parse_contract(contract_dict)
|
|
4
|
+
parse_contract_file(file_path)</pre></div><div class="text-xs text-muted-foreground"><span class="font-semibold">Method:</span> <!-- -->parse_contract(contract_dict, validate=True)</div></div><div><div class="border rounded-lg p-4 bg-muted/30"><div class="flex items-center justify-between mb-3"><h5 class="text-sm font-semibold">Test API</h5><div class="flex gap-2"><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground rounded-md px-3 h-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy h-3 w-3"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 rounded-md px-3 h-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play h-3 w-3 mr-1"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg>Test</button></div></div><div class="mb-3"><div><label class="block text-xs font-medium mb-1">Request Body (JSON)</label><textarea rows="6" class="w-full px-2 py-1 border rounded text-xs font-mono bg-background" placeholder="Enter JSON request body...">{
|
|
5
|
+
"contract": {
|
|
6
|
+
"schema": {
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"name": {
|
|
10
|
+
"type": "string"
|
|
11
|
+
},
|
|
12
|
+
"age": {
|
|
13
|
+
"type": "integer"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"metadata": {
|
|
18
|
+
"title": "User Contract",
|
|
19
|
+
"version": "1.0.0"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}</textarea></div></div><div class="text-xs text-muted-foreground mb-2"><span class="font-mono font-semibold">POST</span> <!-- -->/api/v1/contracts/parse</div></div></div></div></div><div id="method-parse_contract_file" class="border rounded-lg overflow-hidden scroll-mt-4"><div class="grid grid-cols-1 lg:grid-cols-2 gap-4 p-4"><div><h4 class="font-semibold mb-2">Contract Parser - From File</h4><p class="text-sm text-muted-foreground mb-3">Parse a data contract from an uploaded file (YAML or JSON)</p><div class="mb-4"><h5 class="text-sm font-semibold mb-2">Arguments</h5><div class="space-y-2"><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">file_path</div><div class="text-muted-foreground mt-0.5"><span class="font-mono">str</span></div><div class="text-muted-foreground mt-1">Path to contract file (YAML or JSON)</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">validate<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">bool</span><span class="ml-1">default: <!-- -->True</span></div><div class="text-muted-foreground mt-1">If True (default), validate contract against schema before parsing</div></div></div></div><div class="mb-4"><h5 class="text-sm font-semibold mb-2">Returns</h5><div class="text-xs border-l-2 border-green-500/20 pl-2"><div class="font-mono font-semibold text-foreground mb-0.5">ContractMetadata</div><div class="text-muted-foreground">ContractMetadata object with decomposed components (schema, metadata, ownership, governance_rules, coercion_rules, validation_rules)</div></div></div><div class="bg-muted p-3 rounded font-mono text-xs overflow-x-auto mb-3"><pre class="whitespace-pre-wrap">from pycharter import parse_contract_file
|
|
23
|
+
|
|
24
|
+
# Parse contract from file
|
|
25
|
+
contract_metadata = parse_contract_file("contract.yaml")
|
|
26
|
+
# or
|
|
27
|
+
contract_metadata = parse_contract_file("contract.json", validate=True)</pre></div><div class="text-xs text-muted-foreground"><span class="font-semibold">Method:</span> <!-- -->parse_contract_file(file_path, validate=True)</div></div><div><div class="border rounded-lg p-4 bg-muted/30"><div class="flex items-center justify-between mb-3"><h5 class="text-sm font-semibold">Test API</h5><div class="flex gap-2"><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground rounded-md px-3 h-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy h-3 w-3"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 rounded-md px-3 h-7" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play h-3 w-3 mr-1"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg>Test</button></div></div><div class="mb-3"><div><label class="block text-xs font-medium mb-1">Upload File</label><input type="file" accept=".yaml,.yml,.json" class="w-full px-2 py-1 border rounded text-xs bg-background"/></div></div><div class="text-xs text-muted-foreground mb-2"><span class="font-mono font-semibold">POST</span> <!-- -->/api/v1/contracts/parse/upload</div></div></div></div></div><div id="method-build_contract" class="border rounded-lg overflow-hidden scroll-mt-4"><div class="grid grid-cols-1 lg:grid-cols-2 gap-4 p-4"><div><h4 class="font-semibold mb-2">Contract Builder</h4><p class="text-sm text-muted-foreground mb-3">Construct consolidated contracts from separate artifacts</p><div class="mb-4"><h5 class="text-sm font-semibold mb-2">Arguments</h5><div class="space-y-2"><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">artifacts</div><div class="text-muted-foreground mt-0.5"><span class="font-mono">ContractArtifacts</span></div><div class="text-muted-foreground mt-1">ContractArtifacts dataclass containing schema (required), coercion_rules (optional), validation_rules (optional), and metadata (optional)</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">include_metadata<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">bool</span><span class="ml-1">default: <!-- -->True</span></div><div class="text-muted-foreground mt-1">Whether to include metadata in the contract</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">include_ownership<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">bool</span><span class="ml-1">default: <!-- -->True</span></div><div class="text-muted-foreground mt-1">Whether to include ownership information</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">include_governance<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">bool</span><span class="ml-1">default: <!-- -->True</span></div><div class="text-muted-foreground mt-1">Whether to include governance rules</div></div></div></div><div class="mb-4"><h5 class="text-sm font-semibold mb-2">Returns</h5><div class="text-xs border-l-2 border-green-500/20 pl-2"><div class="font-mono font-semibold text-foreground mb-0.5">Dict[str, Any]</div><div class="text-muted-foreground">Consolidated contract dictionary ready for runtime validation, containing schema (with merged coercion/validation rules), coercion_rules, validation_rules, metadata (if included), and versions tracking dictionary</div></div></div><div class="bg-muted p-3 rounded font-mono text-xs overflow-x-auto mb-3"><pre class="whitespace-pre-wrap">from pycharter import build_contract, ContractArtifacts
|
|
28
|
+
|
|
29
|
+
artifacts = ContractArtifacts(
|
|
30
|
+
schema={"type": "object", "version": "1.0.0", "properties": {...}},
|
|
31
|
+
coercion_rules={"version": "1.0.0", "age": "coerce_to_integer"},
|
|
32
|
+
validation_rules={"version": "1.0.0", "age": {...}},
|
|
33
|
+
metadata={"version": "1.0.0", "description": "User contract"}
|
|
34
|
+
)
|
|
35
|
+
contract = build_contract(artifacts)</pre></div><div class="text-xs text-muted-foreground"><span class="font-semibold">Method:</span> <!-- -->build_contract(artifacts: ContractArtifacts, include_metadata=True, include_ownership=True, include_governance=True)</div></div><div><div class="border rounded-lg p-4 bg-muted/30"><div class="flex items-center justify-between mb-3"><h5 class="text-sm font-semibold">Test API</h5><div class="flex gap-2"><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground rounded-md px-3 h-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy h-3 w-3"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 rounded-md px-3 h-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play h-3 w-3 mr-1"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg>Test</button></div></div><div class="mb-3"><div><label class="block text-xs font-medium mb-1">Request Body (JSON)</label><textarea rows="6" class="w-full px-2 py-1 border rounded text-xs font-mono bg-background" placeholder="Enter JSON request body...">{
|
|
36
|
+
"artifacts": {
|
|
37
|
+
"schema": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"version": "1.0.0",
|
|
40
|
+
"properties": {
|
|
41
|
+
"name": {
|
|
42
|
+
"type": "string"
|
|
43
|
+
},
|
|
44
|
+
"age": {
|
|
45
|
+
"type": "integer"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"coercion_rules": {
|
|
50
|
+
"version": "1.0.0",
|
|
51
|
+
"age": "coerce_to_integer"
|
|
52
|
+
},
|
|
53
|
+
"validation_rules": {
|
|
54
|
+
"version": "1.0.0",
|
|
55
|
+
"age": {
|
|
56
|
+
"greater_than_or_equal_to": {
|
|
57
|
+
"threshold": 0
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"metadata": {
|
|
62
|
+
"version": "1.0.0",
|
|
63
|
+
"description": "User contract"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"include_metadata": true,
|
|
67
|
+
"include_ownership": true,
|
|
68
|
+
"include_governance": true
|
|
69
|
+
}</textarea></div></div><div class="text-xs text-muted-foreground mb-2"><span class="font-mono font-semibold">POST</span> <!-- -->/api/v1/contracts/build</div></div></div></div></div><div id="method-build_contract_from_store" class="border rounded-lg overflow-hidden scroll-mt-4"><div class="grid grid-cols-1 lg:grid-cols-2 gap-4 p-4"><div><h4 class="font-semibold mb-2">Contract Builder - From Store</h4><p class="text-sm text-muted-foreground mb-3">Build a consolidated contract from artifacts stored in metadata store with individual version control for each component</p><div class="mb-4"><h5 class="text-sm font-semibold mb-2">Arguments</h5><div class="space-y-2"><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">store</div><div class="text-muted-foreground mt-0.5"><span class="font-mono">MetadataStoreClient</span></div><div class="text-muted-foreground mt-1">MetadataStoreClient instance connected to the metadata store</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">schema_title</div><div class="text-muted-foreground mt-0.5"><span class="font-mono">str</span></div><div class="text-muted-foreground mt-1">Schema title/identifier</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">schema_version<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">Optional[str]</span><span class="ml-1">default: <!-- -->None</span></div><div class="text-muted-foreground mt-1">Optional schema version (if None, uses latest version)</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">coercion_rules_title<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">Optional[str]</span><span class="ml-1">default: <!-- -->None</span></div><div class="text-muted-foreground mt-1">Optional coercion rules title/identifier (if None, uses schema_title)</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">coercion_rules_version<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">Optional[str]</span><span class="ml-1">default: <!-- -->None</span></div><div class="text-muted-foreground mt-1">Optional coercion rules version (if None, uses latest version or schema_version)</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">validation_rules_title<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">Optional[str]</span><span class="ml-1">default: <!-- -->None</span></div><div class="text-muted-foreground mt-1">Optional validation rules title/identifier (if None, uses schema_title)</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">validation_rules_version<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">Optional[str]</span><span class="ml-1">default: <!-- -->None</span></div><div class="text-muted-foreground mt-1">Optional validation rules version (if None, uses latest version or schema_version)</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">metadata_title<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">Optional[str]</span><span class="ml-1">default: <!-- -->None</span></div><div class="text-muted-foreground mt-1">Optional metadata title/identifier (if None, uses schema_title)</div></div><div class="text-xs border-l-2 border-primary/20 pl-2"><div class="font-mono font-semibold text-foreground">metadata_version<span class="text-muted-foreground ml-1">(optional)</span></div><div class="text-muted-foreground mt-0.5"><span class="font-mono">Optional[str]</span><span class="ml-1">default: <!-- -->None</span></div><div class="text-muted-foreground mt-1">Optional metadata version (if None, uses latest version or schema_version)</div></div></div></div><div class="mb-4"><h5 class="text-sm font-semibold mb-2">Returns</h5><div class="text-xs border-l-2 border-green-500/20 pl-2"><div class="font-mono font-semibold text-foreground mb-0.5">Dict[str, Any]</div><div class="text-muted-foreground">Consolidated contract dictionary ready for runtime validation, containing schema (with merged coercion/validation rules), coercion_rules, validation_rules, metadata (if included), and versions tracking dictionary</div></div></div><div class="bg-muted p-3 rounded font-mono text-xs overflow-x-auto mb-3"><pre class="whitespace-pre-wrap">from pycharter import build_contract_from_store
|
|
70
|
+
|
|
71
|
+
store = PostgresMetadataStore(connection_string)
|
|
72
|
+
store.connect()
|
|
73
|
+
contract = build_contract_from_store(
|
|
74
|
+
store=store,
|
|
75
|
+
schema_title="user_schema",
|
|
76
|
+
schema_version="1.0.0",
|
|
77
|
+
coercion_rules_title="user_schema",
|
|
78
|
+
coercion_rules_version="1.0.0",
|
|
79
|
+
validation_rules_title="user_schema",
|
|
80
|
+
validation_rules_version="1.0.0",
|
|
81
|
+
metadata_title="user_schema",
|
|
82
|
+
metadata_version="1.0.0"
|
|
83
|
+
)</pre></div><div class="text-xs text-muted-foreground"><span class="font-semibold">Method:</span> <!-- -->build_contract_from_store(store, schema_title, schema_version=None, coercion_rules_title=None, coercion_rules_version=None, validation_rules_title=None, validation_rules_version=None, metadata_title=None, metadata_version=None)</div></div><div><div class="border rounded-lg p-4 bg-muted/30"><div class="flex items-center justify-between mb-3"><h5 class="text-sm font-semibold">Test API</h5><div class="flex gap-2"><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground rounded-md px-3 h-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy h-3 w-3"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 rounded-md px-3 h-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play h-3 w-3 mr-1"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg>Test</button></div></div><div class="mb-3"><div><label class="block text-xs font-medium mb-1">Request Body (JSON)</label><textarea rows="6" class="w-full px-2 py-1 border rounded text-xs font-mono bg-background" placeholder="Enter JSON request body...">{
|
|
84
|
+
"schema_title": "user_schema",
|
|
85
|
+
"schema_version": "1.0.0",
|
|
86
|
+
"coercion_rules_title": "user_schema",
|
|
87
|
+
"coercion_rules_version": "1.0.0",
|
|
88
|
+
"validation_rules_title": "user_schema",
|
|
89
|
+
"validation_rules_version": "1.0.0",
|
|
90
|
+
"metadata_title": "user_schema",
|
|
91
|
+
"metadata_version": "1.0.0"
|
|
92
|
+
}</textarea></div></div><div class="text-xs text-muted-foreground mb-2"><span class="font-mono font-semibold">POST</span> <!-- -->/api/v1/contracts/build</div></div></div></div></div></div><div class="border rounded-lg p-4 bg-primary/5"><h4 class="font-semibold mb-2">Additional Resources</h4><ul class="text-sm space-y-1 text-muted-foreground"><li>• Full documentation: See README.md and REFERENCE.md</li><li>• Examples: Check the examples/ directory</li><li>• API Documentation: Available at /docs when running the API server</li></ul></div></div></div></div></div><!--$--><!--/$--></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
|
|
93
|
+
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[46417,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\"],\"default\"]\n3:I[88589,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\"],\"default\"]\n4:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"default\"]\n5:I[58298,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\",\"/_next/static/chunks/c69f6cba366bd988.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"default\"]\n7:I[47257,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"ClientPageRoot\"]\n8:I[33558,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\",\"/_next/static/chunks/d5989c94d3614b3a.js\"],\"default\"]\nb:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"OutletBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[61246,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\",\"/_next/static/chunks/297d55555b71baba.js\"],\"PageLoading\"]\nf:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"ViewportBoundary\"]\n11:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"MetadataBoundary\"]\n13:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"default\"]\n:HL[\"/_next/static/chunks/4e310fe5005770a3.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"tNTkVW6puVXC4bAm4WrHl\",\"c\":[\"\",\"documentation\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"documentation\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/4e310fe5005770a3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/f2e7afeab1178138.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"min-h-screen flex flex-col\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1\",\"style\":{\"minHeight\":0,\"overflow\":\"hidden\",\"position\":\"relative\"},\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$5\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/c69f6cba366bd988.js\",\"async\":true}]],\"template\":[\"$\",\"$L6\",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.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d5989c94d3614b3a.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$c\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@d\"}]}]]}],{},null,false,false]},null,false,false]},[[\"$\",\"$Le\",\"l\",{}],[],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/297d55555b71baba.js\",\"async\":true}]]],false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"children\":\"$@10\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L11\",null,{\"children\":[\"$\",\"$c\",null,{\"name\":\"Next.Metadata\",\"children\":\"$@12\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$13\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"12:[[\"$\",\"title\",\"0\",{\"children\":\"PyCharter - Data Contract Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Data Contract Management and Validation\"}]]\nd:null\n"])</script></body></html>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[46417,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
3
|
+
3:I[88589,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
4
|
+
4:I[39756,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
5
|
+
5:I[58298,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/c69f6cba366bd988.js"],"default"]
|
|
6
|
+
6:I[37457,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
7
|
+
7:I[47257,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ClientPageRoot"]
|
|
8
|
+
8:I[33558,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/d5989c94d3614b3a.js"],"default"]
|
|
9
|
+
b:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"OutletBoundary"]
|
|
10
|
+
c:"$Sreact.suspense"
|
|
11
|
+
e:I[61246,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/297d55555b71baba.js"],"PageLoading"]
|
|
12
|
+
f:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ViewportBoundary"]
|
|
13
|
+
11:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"MetadataBoundary"]
|
|
14
|
+
13:I[68027,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
15
|
+
:HL["/_next/static/chunks/4e310fe5005770a3.css","style"]
|
|
16
|
+
0:{"P":null,"b":"tNTkVW6puVXC4bAm4WrHl","c":["","documentation",""],"q":"","i":false,"f":[[["",{"children":["documentation",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/4e310fe5005770a3.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/f061a4be97bfc3b3.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/f2e7afeab1178138.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"min-h-screen flex flex-col","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1","style":{"minHeight":0,"overflow":"hidden","position":"relative"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$5","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/c69f6cba366bd988.js","async":true}]],"template":["$","$L6",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."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/d5989c94d3614b3a.js","async":true,"nonce":"$undefined"}]],["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,false]},null,false,false]},[["$","$Le","l",{}],[],[["$","script","script-0",{"src":"/_next/static/chunks/297d55555b71baba.js","async":true}]]],false,false],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$@10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$@12"}]}]}],null]}],false]],"m":"$undefined","G":["$13",[]],"S":true}
|
|
17
|
+
9:{}
|
|
18
|
+
a:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
19
|
+
10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
20
|
+
12:[["$","title","0",{"children":"PyCharter - Data Contract Management"}],["$","meta","1",{"name":"description","content":"Data Contract Management and Validation"}]]
|
|
21
|
+
d:null
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><!--tNTkVW6puVXC4bAm4WrHl--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/4e310fe5005770a3.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/414e77373f8ff61c.js"/><script src="/_next/static/chunks/b32a0963684b9933.js" async=""></script><script src="/_next/static/chunks/652ad0aa26265c47.js" async=""></script><script src="/_next/static/chunks/9c23f44fff36548a.js" async=""></script><script src="/_next/static/chunks/turbopack-ffcb7ab6794027ef.js" async=""></script><script src="/_next/static/chunks/f061a4be97bfc3b3.js" async=""></script><script src="/_next/static/chunks/f2e7afeab1178138.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/247eb132b7f7b574.js" async=""></script><script src="/_next/static/chunks/c69f6cba366bd988.js" async=""></script><script src="/_next/static/chunks/297d55555b71baba.js" async=""></script><title>PyCharter - Data Contract Management</title><meta name="description" content="Data Contract Management and Validation"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen flex flex-col"><nav class="border-b bg-background sticky top-0 z-50"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="flex justify-between h-16"><div class="flex"><a class="flex items-center" href="/"><span class="text-xl font-bold text-primary">PyCharter</span></a><div class="hidden sm:ml-6 sm:flex sm:space-x-8"><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/contracts/">Contracts</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/schemas/">Schemas</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/metadata/">Metadata</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/rules/">Rules</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/validation/">Validation</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/quality/">Quality</a><a class="inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium transition-colors border-transparent text-muted-foreground hover:border-gray-300 hover:text-foreground" href="/documentation/">Documentation</a></div></div><div class="flex items-center gap-2"><div class="hidden sm:block relative"><button type="button" class="inline-flex items-center gap-2 px-3 py-2 rounded-md text-sm font-medium text-muted-foreground hover:text-foreground hover:bg-muted focus:outline-none focus:ring-2 focus:ring-inset focus:ring-primary transition-colors" aria-expanded="false" aria-haspopup="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user h-5 w-5"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 transition-transform"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="flex items-center sm:hidden"><button type="button" class="inline-flex items-center justify-center p-2 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted focus:outline-none focus:ring-2 focus:ring-inset focus:ring-primary" aria-controls="mobile-menu" aria-expanded="false"><span class="sr-only">Open main menu</span><svg class="block h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div></div></div></div></nav><main class="flex-1" style="min-height:0;overflow:hidden;position:relative"><!--$--><div class="min-h-screen bg-background"><div class="border-b"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16"><div class="text-center"><h1 class="text-4xl font-bold tracking-tight text-foreground sm:text-5xl md:text-6xl">PyCharter</h1><p class="mt-6 text-lg leading-8 text-muted-foreground max-w-2xl mx-auto">Data Contract Management and Validation Platform</p><div class="mt-10 flex items-center justify-center gap-x-6"><a href="/schemas/"><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md px-8">Get Started</button></a><a href="/contracts/"><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-11 rounded-md px-8">View Contracts</button></a></div></div></div></div><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16"><div class="grid grid-cols-1 md:grid-cols-3 gap-6"><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database h-8 w-8 text-primary mb-2"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><h3 class="text-2xl font-semibold leading-none tracking-tight">Schemas</h3><p class="text-sm text-muted-foreground">Manage and version your data schemas. Store, retrieve, and track schema evolution.</p></div><div class="p-6 pt-0"><a href="/schemas/"><button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full">View Schemas</button></a></div></div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text h-8 w-8 text-primary mb-2"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><h3 class="text-2xl font-semibold leading-none tracking-tight">Contracts</h3><p class="text-sm text-muted-foreground">Parse and build data contracts. Decompose contracts into components and reconstruct them.</p></div><div class="p-6 pt-0"><a href="/contracts/"><button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full">Manage Contracts</button></a></div></div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><h3 class="text-2xl font-semibold leading-none tracking-tight">Validation</h3><p class="text-sm text-muted-foreground">Validate data against schemas. Check compliance and get detailed error reports.</p></div><div class="p-6 pt-0"><a href="/validation/"><button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full">Validate Data</button></a></div></div></div></div></div><!--$--><!--/$--><!--/$--></main></div><script src="/_next/static/chunks/414e77373f8ff61c.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[46417,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\"],\"default\"]\n3:I[88589,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\"],\"default\"]\n4:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"default\"]\n5:I[58298,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\",\"/_next/static/chunks/c69f6cba366bd988.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"default\"]\n7:I[22016,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\"],\"\"]\n14:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"default\"]\n:HL[\"/_next/static/chunks/4e310fe5005770a3.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"tNTkVW6puVXC4bAm4WrHl\",\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/4e310fe5005770a3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/f2e7afeab1178138.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"min-h-screen flex flex-col\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1\",\"style\":{\"minHeight\":0,\"overflow\":\"hidden\",\"position\":\"relative\"},\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$5\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/c69f6cba366bd988.js\",\"async\":true}]],\"template\":[\"$\",\"$L6\",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.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-background\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-b\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"text-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-4xl font-bold tracking-tight text-foreground sm:text-5xl md:text-6xl\",\"children\":\"PyCharter\"}],[\"$\",\"p\",null,{\"className\":\"mt-6 text-lg leading-8 text-muted-foreground max-w-2xl mx-auto\",\"children\":\"Data Contract Management and Validation Platform\"}],[\"$\",\"div\",null,{\"className\":\"mt-10 flex items-center justify-center gap-x-6\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/schemas\",\"children\":[\"$\",\"button\",null,{\"className\":\"inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md px-8\",\"ref\":\"$undefined\",\"children\":\"Get Started\"}]}],[\"$\",\"$L7\",null,{\"href\":\"/contracts\",\"children\":[\"$\",\"button\",null,{\"className\":\"inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-11 rounded-md px-8\",\"ref\":\"$undefined\",\"children\":\"View Contracts\"}]}]]}]]}]}]}],[\"$\",\"div\",null,{\"className\":\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 md:grid-cols-3 gap-6\",\"children\":[[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"rounded-lg border bg-card text-card-foreground shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"flex flex-col space-y-1.5 p-6\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-database h-8 w-8 text-primary mb-2\",\"children\":[\"$L8\",\"$L9\",\"$La\",\"$undefined\"]}],\"$Lb\",\"$Lc\"]}],\"$Ld\"]}],\"$Le\",\"$Lf\"]}]}]]}],null,\"$L10\"]}],{},null,false,false]},[\"$L11\",[],[\"$L12\"]],false,false],\"$L13\",false]],\"m\":\"$undefined\",\"G\":[\"$14\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"15:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"OutletBoundary\"]\n16:\"$Sreact.suspense\"\n18:I[61246,[\"/_next/static/chunks/f061a4be97bfc3b3.js\",\"/_next/static/chunks/f2e7afeab1178138.js\",\"/_next/static/chunks/297d55555b71baba.js\"],\"PageLoading\"]\n19:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"ViewportBoundary\"]\n1b:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/247eb132b7f7b574.js\"],\"MetadataBoundary\"]\n8:[\"$\",\"ellipse\",\"msslwz\",{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"}]\n9:[\"$\",\"path\",\"1wlel7\",{\"d\":\"M3 5V19A9 3 0 0 0 21 19V5\"}]\na:[\"$\",\"path\",\"mv7ke4\",{\"d\":\"M3 12A9 3 0 0 0 21 12\"}]\nb:[\"$\",\"h3\",null,{\"ref\":\"$undefined\",\"className\":\"text-2xl font-semibold leading-none tracking-tight\",\"children\":\"Schemas\"}]\nc:[\"$\",\"p\",null,{\"ref\":\"$undefined\",\"className\":\"text-sm text-muted-foreground\",\"children\":\"Manage and version your data schemas. Store, retrieve, and track schema evolution.\"}]\nd:[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"p-6 pt-0\",\"children\":[\"$\",\"$L7\",null,{\"href\":\"/schemas\",\"children\":[\"$\",\"button\",null,{\"className\":\"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full\",\"ref\":\"$undefined\",\"children\":\"View Schemas\"}]}]}]\n"])</script><script>self.__next_f.push([1,"e:[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"rounded-lg border bg-card text-card-foreground shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"flex flex-col space-y-1.5 p-6\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-file-text h-8 w-8 text-primary mb-2\",\"children\":[[\"$\",\"path\",\"1rqfz7\",{\"d\":\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\"}],[\"$\",\"path\",\"tnqrlb\",{\"d\":\"M14 2v4a2 2 0 0 0 2 2h4\"}],[\"$\",\"path\",\"b1mrlr\",{\"d\":\"M10 9H8\"}],[\"$\",\"path\",\"t4e002\",{\"d\":\"M16 13H8\"}],[\"$\",\"path\",\"z1uh3a\",{\"d\":\"M16 17H8\"}],\"$undefined\"]}],[\"$\",\"h3\",null,{\"ref\":\"$undefined\",\"className\":\"text-2xl font-semibold leading-none tracking-tight\",\"children\":\"Contracts\"}],[\"$\",\"p\",null,{\"ref\":\"$undefined\",\"className\":\"text-sm text-muted-foreground\",\"children\":\"Parse and build data contracts. Decompose contracts into components and reconstruct them.\"}]]}],[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"p-6 pt-0\",\"children\":[\"$\",\"$L7\",null,{\"href\":\"/contracts\",\"children\":[\"$\",\"button\",null,{\"className\":\"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full\",\"ref\":\"$undefined\",\"children\":\"Manage Contracts\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"rounded-lg border bg-card text-card-foreground shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"flex flex-col space-y-1.5 p-6\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-circle-check h-8 w-8 text-primary mb-2\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"dzmm74\",{\"d\":\"m9 12 2 2 4-4\"}],\"$undefined\"]}],[\"$\",\"h3\",null,{\"ref\":\"$undefined\",\"className\":\"text-2xl font-semibold leading-none tracking-tight\",\"children\":\"Validation\"}],[\"$\",\"p\",null,{\"ref\":\"$undefined\",\"className\":\"text-sm text-muted-foreground\",\"children\":\"Validate data against schemas. Check compliance and get detailed error reports.\"}]]}],[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"p-6 pt-0\",\"children\":[\"$\",\"$L7\",null,{\"href\":\"/validation\",\"children\":[\"$\",\"button\",null,{\"className\":\"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full\",\"ref\":\"$undefined\",\"children\":\"Validate Data\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"$L15\",null,{\"children\":[\"$\",\"$16\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@17\"}]}]\n11:[\"$\",\"$L18\",\"l\",{}]\n12:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/297d55555b71baba.js\",\"async\":true}]\n13:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L19\",null,{\"children\":\"$@1a\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1b\",null,{\"children\":[\"$\",\"$16\",null,{\"name\":\"Next.Metadata\",\"children\":\"$@1c\"}]}]}],null]}]\n"])</script><script>self.__next_f.push([1,"1a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"1c:[[\"$\",\"title\",\"0\",{\"children\":\"PyCharter - Data Contract Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Data Contract Management and Validation\"}]]\n17:null\n"])</script></body></html>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[46417,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
3
|
+
3:I[88589,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
4
|
+
4:I[39756,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
5
|
+
5:I[58298,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/c69f6cba366bd988.js"],"default"]
|
|
6
|
+
6:I[37457,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
7
|
+
7:I[22016,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],""]
|
|
8
|
+
14:I[68027,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
9
|
+
:HL["/_next/static/chunks/4e310fe5005770a3.css","style"]
|
|
10
|
+
0:{"P":null,"b":"tNTkVW6puVXC4bAm4WrHl","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/4e310fe5005770a3.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/f061a4be97bfc3b3.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/f2e7afeab1178138.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"min-h-screen flex flex-col","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1","style":{"minHeight":0,"overflow":"hidden","position":"relative"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$5","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/c69f6cba366bd988.js","async":true}]],"template":["$","$L6",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."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-background","children":[["$","div",null,{"className":"border-b","children":["$","div",null,{"className":"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16","children":["$","div",null,{"className":"text-center","children":[["$","h1",null,{"className":"text-4xl font-bold tracking-tight text-foreground sm:text-5xl md:text-6xl","children":"PyCharter"}],["$","p",null,{"className":"mt-6 text-lg leading-8 text-muted-foreground max-w-2xl mx-auto","children":"Data Contract Management and Validation Platform"}],["$","div",null,{"className":"mt-10 flex items-center justify-center gap-x-6","children":[["$","$L7",null,{"href":"/schemas","children":["$","button",null,{"className":"inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md px-8","ref":"$undefined","children":"Get Started"}]}],["$","$L7",null,{"href":"/contracts","children":["$","button",null,{"className":"inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-11 rounded-md px-8","ref":"$undefined","children":"View Contracts"}]}]]}]]}]}]}],["$","div",null,{"className":"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16","children":["$","div",null,{"className":"grid grid-cols-1 md:grid-cols-3 gap-6","children":[["$","div",null,{"ref":"$undefined","className":"rounded-lg border bg-card text-card-foreground shadow-sm","children":[["$","div",null,{"ref":"$undefined","className":"flex flex-col space-y-1.5 p-6","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-database h-8 w-8 text-primary mb-2","children":["$L8","$L9","$La","$undefined"]}],"$Lb","$Lc"]}],"$Ld"]}],"$Le","$Lf"]}]}]]}],null,"$L10"]}],{},null,false,false]},["$L11",[],["$L12"]],false,false],"$L13",false]],"m":"$undefined","G":["$14",[]],"S":true}
|
|
11
|
+
15:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"OutletBoundary"]
|
|
12
|
+
16:"$Sreact.suspense"
|
|
13
|
+
18:I[61246,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/297d55555b71baba.js"],"PageLoading"]
|
|
14
|
+
19:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ViewportBoundary"]
|
|
15
|
+
1b:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"MetadataBoundary"]
|
|
16
|
+
8:["$","ellipse","msslwz",{"cx":"12","cy":"5","rx":"9","ry":"3"}]
|
|
17
|
+
9:["$","path","1wlel7",{"d":"M3 5V19A9 3 0 0 0 21 19V5"}]
|
|
18
|
+
a:["$","path","mv7ke4",{"d":"M3 12A9 3 0 0 0 21 12"}]
|
|
19
|
+
b:["$","h3",null,{"ref":"$undefined","className":"text-2xl font-semibold leading-none tracking-tight","children":"Schemas"}]
|
|
20
|
+
c:["$","p",null,{"ref":"$undefined","className":"text-sm text-muted-foreground","children":"Manage and version your data schemas. Store, retrieve, and track schema evolution."}]
|
|
21
|
+
d:["$","div",null,{"ref":"$undefined","className":"p-6 pt-0","children":["$","$L7",null,{"href":"/schemas","children":["$","button",null,{"className":"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full","ref":"$undefined","children":"View Schemas"}]}]}]
|
|
22
|
+
e:["$","div",null,{"ref":"$undefined","className":"rounded-lg border bg-card text-card-foreground shadow-sm","children":[["$","div",null,{"ref":"$undefined","className":"flex flex-col space-y-1.5 p-6","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-file-text h-8 w-8 text-primary mb-2","children":[["$","path","1rqfz7",{"d":"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}],["$","path","tnqrlb",{"d":"M14 2v4a2 2 0 0 0 2 2h4"}],["$","path","b1mrlr",{"d":"M10 9H8"}],["$","path","t4e002",{"d":"M16 13H8"}],["$","path","z1uh3a",{"d":"M16 17H8"}],"$undefined"]}],["$","h3",null,{"ref":"$undefined","className":"text-2xl font-semibold leading-none tracking-tight","children":"Contracts"}],["$","p",null,{"ref":"$undefined","className":"text-sm text-muted-foreground","children":"Parse and build data contracts. Decompose contracts into components and reconstruct them."}]]}],["$","div",null,{"ref":"$undefined","className":"p-6 pt-0","children":["$","$L7",null,{"href":"/contracts","children":["$","button",null,{"className":"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full","ref":"$undefined","children":"Manage Contracts"}]}]}]]}]
|
|
23
|
+
f:["$","div",null,{"ref":"$undefined","className":"rounded-lg border bg-card text-card-foreground shadow-sm","children":[["$","div",null,{"ref":"$undefined","className":"flex flex-col space-y-1.5 p-6","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-circle-check h-8 w-8 text-primary mb-2","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","dzmm74",{"d":"m9 12 2 2 4-4"}],"$undefined"]}],["$","h3",null,{"ref":"$undefined","className":"text-2xl font-semibold leading-none tracking-tight","children":"Validation"}],["$","p",null,{"ref":"$undefined","className":"text-sm text-muted-foreground","children":"Validate data against schemas. Check compliance and get detailed error reports."}]]}],["$","div",null,{"ref":"$undefined","className":"p-6 pt-0","children":["$","$L7",null,{"href":"/validation","children":["$","button",null,{"className":"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full","ref":"$undefined","children":"Validate Data"}]}]}]]}]
|
|
24
|
+
10:["$","$L15",null,{"children":["$","$16",null,{"name":"Next.MetadataOutlet","children":"$@17"}]}]
|
|
25
|
+
11:["$","$L18","l",{}]
|
|
26
|
+
12:["$","script","script-0",{"src":"/_next/static/chunks/297d55555b71baba.js","async":true}]
|
|
27
|
+
13:["$","$1","h",{"children":[null,["$","$L19",null,{"children":"$@1a"}],["$","div",null,{"hidden":true,"children":["$","$L1b",null,{"children":["$","$16",null,{"name":"Next.Metadata","children":"$@1c"}]}]}],null]}]
|
|
28
|
+
1a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
29
|
+
1c:[["$","title","0",{"children":"PyCharter - Data Contract Management"}],["$","meta","1",{"name":"description","content":"Data Contract Management and Validation"}]]
|
|
30
|
+
17:null
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[46417,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
3
|
+
3:I[88589,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
4
|
+
4:I[39756,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
5
|
+
5:I[58298,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/c69f6cba366bd988.js"],"default"]
|
|
6
|
+
6:I[37457,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
7
|
+
7:I[47257,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ClientPageRoot"]
|
|
8
|
+
8:I[66597,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/2ab439ce003cd691.js"],"default"]
|
|
9
|
+
b:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"OutletBoundary"]
|
|
10
|
+
c:"$Sreact.suspense"
|
|
11
|
+
e:I[61246,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/297d55555b71baba.js"],"PageLoading"]
|
|
12
|
+
f:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ViewportBoundary"]
|
|
13
|
+
11:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"MetadataBoundary"]
|
|
14
|
+
13:I[68027,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
15
|
+
:HL["/_next/static/chunks/4e310fe5005770a3.css","style"]
|
|
16
|
+
0:{"P":null,"b":"tNTkVW6puVXC4bAm4WrHl","c":["","metadata",""],"q":"","i":false,"f":[[["",{"children":["metadata",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/4e310fe5005770a3.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/f061a4be97bfc3b3.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/f2e7afeab1178138.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"min-h-screen flex flex-col","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1","style":{"minHeight":0,"overflow":"hidden","position":"relative"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$5","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/c69f6cba366bd988.js","async":true}]],"template":["$","$L6",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."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/2ab439ce003cd691.js","async":true,"nonce":"$undefined"}]],["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,false]},null,false,false]},[["$","$Le","l",{}],[],[["$","script","script-0",{"src":"/_next/static/chunks/297d55555b71baba.js","async":true}]]],false,false],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$@10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$@12"}]}]}],null]}],false]],"m":"$undefined","G":["$13",[]],"S":true}
|
|
17
|
+
9:{}
|
|
18
|
+
a:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
19
|
+
10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
20
|
+
12:[["$","title","0",{"children":"PyCharter - Data Contract Management"}],["$","meta","1",{"name":"description","content":"Data Contract Management and Validation"}]]
|
|
21
|
+
d:null
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"ViewportBoundary"]
|
|
3
|
+
4:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"MetadataBoundary"]
|
|
4
|
+
5:"$Sreact.suspense"
|
|
5
|
+
0:{"buildId":"tNTkVW6puVXC4bAm4WrHl","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false}
|
|
6
|
+
3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
7
|
+
6:[["$","title","0",{"children":"PyCharter - Data Contract Management"}],["$","meta","1",{"name":"description","content":"Data Contract Management and Validation"}]]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[46417,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
3
|
+
3:I[88589,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js"],"default"]
|
|
4
|
+
4:I[39756,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
5
|
+
5:I[58298,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/c69f6cba366bd988.js"],"default"]
|
|
6
|
+
6:I[37457,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/247eb132b7f7b574.js"],"default"]
|
|
7
|
+
7:I[61246,["/_next/static/chunks/f061a4be97bfc3b3.js","/_next/static/chunks/f2e7afeab1178138.js","/_next/static/chunks/297d55555b71baba.js"],"PageLoading"]
|
|
8
|
+
:HL["/_next/static/chunks/4e310fe5005770a3.css","style"]
|
|
9
|
+
0:{"buildId":"tNTkVW6puVXC4bAm4WrHl","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/4e310fe5005770a3.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/f061a4be97bfc3b3.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/f2e7afeab1178138.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"min-h-screen flex flex-col","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1","style":{"minHeight":0,"overflow":"hidden","position":"relative"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$5","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/c69f6cba366bd988.js","async":true}]],"template":["$","$L6",null,{}],"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."}]}]]}]}]],[]]}]}]]}]}]}]}]]}],"loading":[["$","$L7","l",{}],[],[["$","script","script-0",{"src":"/_next/static/chunks/297d55555b71baba.js","async":true}]]],"isPartial":false}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:HL["/_next/static/chunks/4e310fe5005770a3.css","style"]
|
|
2
|
+
0:{"buildId":"tNTkVW6puVXC4bAm4WrHl","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"metadata","paramType":null,"paramKey":"metadata","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
|