@supatype/cli 0.1.0-alpha.7 → 0.1.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +67 -62
  3. package/.turbo/turbo-typecheck.log +1 -1
  4. package/dist/app/proxy-dev-app.d.ts +13 -0
  5. package/dist/app/proxy-dev-app.d.ts.map +1 -0
  6. package/dist/app/proxy-dev-app.js +53 -0
  7. package/dist/app/proxy-dev-app.js.map +1 -0
  8. package/dist/binary-cache.d.ts +5 -0
  9. package/dist/binary-cache.d.ts.map +1 -1
  10. package/dist/binary-cache.js +13 -0
  11. package/dist/binary-cache.js.map +1 -1
  12. package/dist/commands/cloud.d.ts +11 -3
  13. package/dist/commands/cloud.d.ts.map +1 -1
  14. package/dist/commands/cloud.js +33 -25
  15. package/dist/commands/cloud.js.map +1 -1
  16. package/dist/commands/deploy.d.ts.map +1 -1
  17. package/dist/commands/deploy.js +3 -17
  18. package/dist/commands/deploy.js.map +1 -1
  19. package/dist/commands/dev.d.ts +3 -3
  20. package/dist/commands/dev.d.ts.map +1 -1
  21. package/dist/commands/dev.js +66 -59
  22. package/dist/commands/dev.js.map +1 -1
  23. package/dist/commands/diff.d.ts.map +1 -1
  24. package/dist/commands/diff.js +11 -1
  25. package/dist/commands/diff.js.map +1 -1
  26. package/dist/commands/init.js +16 -3
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/push.d.ts.map +1 -1
  29. package/dist/commands/push.js +42 -12
  30. package/dist/commands/push.js.map +1 -1
  31. package/dist/commands/update.d.ts.map +1 -1
  32. package/dist/commands/update.js +16 -0
  33. package/dist/commands/update.js.map +1 -1
  34. package/dist/dev-compose.d.ts +17 -0
  35. package/dist/dev-compose.d.ts.map +1 -0
  36. package/dist/dev-compose.js +374 -0
  37. package/dist/dev-compose.js.map +1 -0
  38. package/dist/diff-output.d.ts +4 -0
  39. package/dist/diff-output.d.ts.map +1 -0
  40. package/dist/diff-output.js +12 -0
  41. package/dist/diff-output.js.map +1 -0
  42. package/dist/docker-postgres.d.ts +21 -3
  43. package/dist/docker-postgres.d.ts.map +1 -1
  44. package/dist/docker-postgres.js +130 -18
  45. package/dist/docker-postgres.js.map +1 -1
  46. package/dist/engine-client.d.ts +5 -3
  47. package/dist/engine-client.d.ts.map +1 -1
  48. package/dist/engine-client.js +2 -1
  49. package/dist/engine-client.js.map +1 -1
  50. package/dist/kong-config.d.ts +4 -0
  51. package/dist/kong-config.d.ts.map +1 -1
  52. package/dist/kong-config.js +12 -1
  53. package/dist/kong-config.js.map +1 -1
  54. package/dist/process-manager.d.ts +2 -0
  55. package/dist/process-manager.d.ts.map +1 -1
  56. package/dist/process-manager.js +16 -1
  57. package/dist/process-manager.js.map +1 -1
  58. package/dist/project-config.d.ts +21 -1
  59. package/dist/project-config.d.ts.map +1 -1
  60. package/dist/project-config.js +15 -0
  61. package/dist/project-config.js.map +1 -1
  62. package/dist/runtime-routes.d.ts +9 -0
  63. package/dist/runtime-routes.d.ts.map +1 -1
  64. package/dist/runtime-routes.js +75 -12
  65. package/dist/runtime-routes.js.map +1 -1
  66. package/dist/schema-ast-v2.d.ts +127 -0
  67. package/dist/schema-ast-v2.d.ts.map +1 -0
  68. package/dist/schema-ast-v2.js +226 -0
  69. package/dist/schema-ast-v2.js.map +1 -0
  70. package/dist/self-host-compose.d.ts +12 -4
  71. package/dist/self-host-compose.d.ts.map +1 -1
  72. package/dist/self-host-compose.js +146 -35
  73. package/dist/self-host-compose.js.map +1 -1
  74. package/dist/studio-admin-roles.d.ts +7 -0
  75. package/dist/studio-admin-roles.d.ts.map +1 -0
  76. package/dist/studio-admin-roles.js +14 -0
  77. package/dist/studio-admin-roles.js.map +1 -0
  78. package/dist/studio-dev-server.d.ts +22 -0
  79. package/dist/studio-dev-server.d.ts.map +1 -0
  80. package/dist/studio-dev-server.js +28 -0
  81. package/dist/studio-dev-server.js.map +1 -0
  82. package/dist/type-extractor.d.ts +3 -30
  83. package/dist/type-extractor.d.ts.map +1 -1
  84. package/dist/type-extractor.js +485 -148
  85. package/dist/type-extractor.js.map +1 -1
  86. package/dist/type-resolver.d.ts +33 -0
  87. package/dist/type-resolver.d.ts.map +1 -0
  88. package/dist/type-resolver.js +338 -0
  89. package/dist/type-resolver.js.map +1 -0
  90. package/package.json +1 -1
  91. package/src/TYPE-RESOLUTION.md +294 -0
  92. package/src/app/proxy-dev-app.ts +67 -0
  93. package/src/binary-cache.ts +20 -0
  94. package/src/commands/cloud.ts +40 -30
  95. package/src/commands/deploy.ts +3 -18
  96. package/src/commands/dev.ts +72 -69
  97. package/src/commands/diff.ts +11 -1
  98. package/src/commands/init.ts +16 -3
  99. package/src/commands/push.ts +49 -13
  100. package/src/commands/update.ts +17 -0
  101. package/src/dev-compose.ts +455 -0
  102. package/src/diff-output.ts +12 -0
  103. package/src/docker-postgres.ts +184 -27
  104. package/src/engine-client.ts +9 -4
  105. package/src/kong-config.ts +16 -1
  106. package/src/process-manager.ts +18 -1
  107. package/src/project-config.ts +34 -1
  108. package/src/runtime-routes.ts +87 -12
  109. package/src/schema-ast-v2.ts +324 -0
  110. package/src/self-host-compose.ts +168 -36
  111. package/src/studio-admin-roles.ts +16 -0
  112. package/src/studio-dev-server.ts +53 -0
  113. package/src/type-extractor.ts +649 -186
  114. package/src/type-resolver.ts +457 -0
  115. package/tests/config.test.ts +34 -3
  116. package/tests/docker-postgres.test.ts +39 -0
  117. package/tests/normalize-admin-config.test.ts +48 -0
  118. package/tests/proxy-dev-app.test.ts +33 -0
  119. package/tests/runtime-contract.test.ts +119 -4
  120. package/tests/studio-admin-roles.test.ts +27 -0
  121. package/tests/type-extractor.test.ts +607 -23
  122. package/tests/type-resolver.test.ts +59 -0
  123. package/tsconfig.tsbuildinfo +1 -1
@@ -9,6 +9,9 @@ import { resolve } from "node:path";
9
9
  */
10
10
  export function mergeProjectConfig(base, override) {
11
11
  return {
12
+ ...(base.provider !== undefined || override.provider !== undefined
13
+ ? { provider: override.provider ?? base.provider }
14
+ : {}),
12
15
  ...(base.supatype !== undefined || override.supatype !== undefined
13
16
  ? { supatype: { ...base.supatype, ...override.supatype } }
14
17
  : {}),
@@ -64,6 +67,9 @@ export function mergeProjectConfig(base, override) {
64
67
  ...(base.connection !== undefined || override.connection !== undefined
65
68
  ? { connection: override.connection ?? base.connection }
66
69
  : {}),
70
+ ...(base.admin !== undefined || override.admin !== undefined
71
+ ? { admin: { ...base.admin, ...override.admin } }
72
+ : {}),
67
73
  };
68
74
  }
69
75
  export function validateProjectConfig(raw, filename) {
@@ -123,6 +129,9 @@ export function serverBaseUrl(cfg) {
123
129
  switch (cfg.server.mode) {
124
130
  case "dev":
125
131
  case "standalone":
132
+ if (cfg.server.mode === "dev" && resolveRuntimeProvider(cfg) === "docker") {
133
+ return `http://localhost:${COMPOSE_DEV_KONG_PORT}`;
134
+ }
126
135
  return cfg.server.domain
127
136
  ? `https://${cfg.server.domain}`
128
137
  : `http://localhost:${port}`;
@@ -130,6 +139,12 @@ export function serverBaseUrl(cfg) {
130
139
  return undefined;
131
140
  }
132
141
  }
142
+ /** Resolved runtime provider (`config.provider` ?? `database.provider` ?? native). */
143
+ export function resolveRuntimeProvider(cfg) {
144
+ return cfg.provider ?? cfg.database.provider ?? "native";
145
+ }
146
+ /** Kong gateway port when `provider: docker` (self-host compose dev). */
147
+ export const COMPOSE_DEV_KONG_PORT = 18473;
133
148
  /** The local Postgres DSN derived from project name (dev default). */
134
149
  export function localDSN(cfg) {
135
150
  const port = 5432; // standard; per-project state dir isolates data dirs
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmNnC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAA2B,EAC3B,QAAwC;IAExC,OAAO;QACL,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;YAChE,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;YAChE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAoD,EAAE;YAC5G,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE;QACjD,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE;QACpD,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC9C,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE;QACrC,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE;QACpD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;YAClE,CAAC,CAAC;gBACE,SAAS,EAAE;oBACT,GAAG,IAAI,CAAC,SAAS;oBACjB,GAAG,QAAQ,CAAC,SAAS;iBAC6B;aACrD;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAC1D,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;gBACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAA;gBACxB,MAAM,UAAU,GACd,CAAC,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,EAAE,IAAI,KAAK,SAAS;oBAC5C,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE;oBAC5C,CAAC,CAAC,SAAS,CAAA;gBACf,OAAO;oBACL,KAAK,EAAE;wBACL,GAAG,CAAC;wBACJ,GAAG,CAAC;wBACJ,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACX;iBACjD,CAAA;YACH,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;YAC9D,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,OAAO;oBACf,GAAG,QAAQ,CAAC,OAAO;iBAC6B;aACnD;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAC5D,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAkD,EAAE;YACpG,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;YAClE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAqD,EAAE;YAChH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAC5D,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAkD,EAAE;YACpG,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAC1D,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAiD,EAAE;YAChG,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;YACpE,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;YACxD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAC1D,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAiD,EAAE;YAChG,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAY,EAAE,QAAgB;IAClE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,wCAAwC,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,GAAG,GAAG,GAA8B,CAAA;IAE1C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAQ,GAAG,CAAC,SAAS,CAA6B,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,4BAA4B,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,gCAAgC,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,8BAA8B,CAAC,CAAA;IAC5D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,2BAA2B,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,gCAAgC,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,GAA4B,CAAA;AACrC,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,qBAAqB,CAAC,GAA0B,EAAE,GAAW;IAC3E,OAAO,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,iBAAiB,CAAC,CAAA;AACxF,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,qBAAqB,CAAC,GAA0B,EAAE,GAAW;IAC3E,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,GAAG,CAAC,CAAA;AAChD,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,kCAAkC,CAAC,GAA0B,EAAE,GAAW;IACxF,MAAM,IAAI,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC5C,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5C,CAAC;IACD,qEAAqE;IACrE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,iCAAiC,CAAC,GAA0B,EAAE,GAAW;IACvF,MAAM,UAAU,GAAG,kCAAkC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAA;IACjC,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,CAAA;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAA0B;IACtD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAA;IACrC,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,KAAK,CAAC;QACX,KAAK,YAAY;YACf,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1E,OAAO,oBAAoB,qBAAqB,EAAE,CAAA;YACpD,CAAC;YACD,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM;gBACtB,CAAC,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;gBAChC,CAAC,CAAC,oBAAoB,IAAI,EAAE,CAAA;QAChC,KAAK,SAAS;YACZ,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,sBAAsB,CAAC,GAA0B;IAC/D,OAAO,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAA;AAC1D,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AAE1C,sEAAsE;AACtE,MAAM,UAAU,QAAQ,CAAC,GAA0B;IACjD,MAAM,IAAI,GAAG,IAAI,CAAA,CAAC,qDAAqD;IACvE,OAAO,0CAA0C,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAA;AAC7F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAA0B;IACzD,OAAO,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;AACvE,CAAC"}
@@ -6,6 +6,8 @@ export interface RuntimeRoute {
6
6
  stripPath?: boolean;
7
7
  protocols?: string[];
8
8
  engineProtected?: boolean;
9
+ /** Route /graphql/v1 to PostgREST /rpc/graphql with graphql_public Content-Profile. */
10
+ graphqlPostgrest?: boolean;
9
11
  }
10
12
  export interface RuntimeRouteOptions {
11
13
  appUpstream?: string;
@@ -17,6 +19,13 @@ export interface RuntimeRouteOptions {
17
19
  * which proxies to internal services — same model as `supatype dev`.
18
20
  */
19
21
  unifiedGateway?: boolean;
22
+ /** Studio UI upstream (default: in-compose `studio:3002`). */
23
+ studioServiceUrl?: string;
24
+ /**
25
+ * Strip `/studio/` before proxying to the Studio upstream.
26
+ * False for host Vite dev (`host.docker.internal`) where `base` is `/studio/`.
27
+ */
28
+ studioStripPath?: boolean;
20
29
  }
21
30
  /**
22
31
  * Shared route contract used by local/self-host renderers.
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-routes.d.ts","sourceRoot":"","sources":["../src/runtime-routes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AA2LD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,mBAAwB,GAAG,YAAY,EAAE,CAK/E"}
1
+ {"version":3,"file":"runtime-routes.d.ts","sourceRoot":"","sources":["../src/runtime-routes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AA6PD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,mBAAwB,GAAG,YAAY,EAAE,CAK/E"}
@@ -1,8 +1,18 @@
1
+ const DEFAULT_STUDIO_SERVICE_URL = "http://studio:3002";
2
+ function studioServiceUrl(opts) {
3
+ const url = opts.studioServiceUrl?.trim();
4
+ return url && url.length > 0 ? url : DEFAULT_STUDIO_SERVICE_URL;
5
+ }
6
+ function studioStripPath(opts) {
7
+ return opts.studioStripPath !== false;
8
+ }
1
9
  const SERVER_GATEWAY = "http://server:9999";
2
10
  /**
3
11
  * Kong routes when self-host uses supatype-server as the single API gateway.
4
12
  */
5
- function runtimeRouteSpecUnified() {
13
+ function runtimeRouteSpecUnified(opts) {
14
+ const studioUrl = studioServiceUrl(opts);
15
+ const stripStudio = studioStripPath(opts);
6
16
  return [
7
17
  {
8
18
  name: "rest-v1",
@@ -38,7 +48,7 @@ function runtimeRouteSpecUnified() {
38
48
  serviceUrl: SERVER_GATEWAY,
39
49
  paths: ["/realtime/v1/"],
40
50
  stripPath: false,
41
- protocols: ["http", "https", "ws", "wss"],
51
+ protocols: ["http", "https"],
42
52
  },
43
53
  {
44
54
  name: "functions-v1",
@@ -49,10 +59,11 @@ function runtimeRouteSpecUnified() {
49
59
  },
50
60
  {
51
61
  name: "graphql-v1",
52
- serviceName: "supatype-server-graphql",
53
- serviceUrl: SERVER_GATEWAY,
54
- paths: ["/graphql/v1/"],
55
- stripPath: false,
62
+ serviceName: "postgrest-graphql",
63
+ serviceUrl: "http://postgrest:3000/rpc/graphql",
64
+ paths: ["/graphql/v1"],
65
+ stripPath: true,
66
+ graphqlPostgrest: true,
56
67
  },
57
68
  {
58
69
  name: "studio-config-route",
@@ -68,12 +79,33 @@ function runtimeRouteSpecUnified() {
68
79
  paths: ["/sql"],
69
80
  stripPath: false,
70
81
  },
82
+ {
83
+ name: "studio-auth",
84
+ serviceName: "supatype-server-studio-auth",
85
+ serviceUrl: SERVER_GATEWAY,
86
+ paths: ["/studio/auth/"],
87
+ stripPath: false,
88
+ },
89
+ {
90
+ name: "studio-proxy",
91
+ serviceName: "supatype-server-studio-proxy",
92
+ serviceUrl: SERVER_GATEWAY,
93
+ paths: ["/studio/proxy/"],
94
+ stripPath: false,
95
+ },
96
+ {
97
+ name: "studio-exact",
98
+ serviceName: "studio-exact",
99
+ serviceUrl: studioUrl,
100
+ paths: ["~/studio$"],
101
+ stripPath: stripStudio,
102
+ },
71
103
  {
72
104
  name: "studio",
73
105
  serviceName: "studio",
74
- serviceUrl: "http://studio:3002",
106
+ serviceUrl: studioUrl,
75
107
  paths: ["/studio/"],
76
- stripPath: true,
108
+ stripPath: stripStudio,
77
109
  },
78
110
  {
79
111
  name: "app-root",
@@ -89,6 +121,8 @@ function runtimeRouteSpecUnified() {
89
121
  * Kept for tests or explicit opt-out only — self-host uses unifiedGateway.
90
122
  */
91
123
  function runtimeRouteSpecSplit(opts) {
124
+ const studioUrl = studioServiceUrl(opts);
125
+ const stripStudio = studioStripPath(opts);
92
126
  const routes = [
93
127
  {
94
128
  name: "rest-v1",
@@ -124,7 +158,7 @@ function runtimeRouteSpecSplit(opts) {
124
158
  serviceUrl: "http://realtime:4000",
125
159
  paths: ["/realtime/v1/"],
126
160
  stripPath: true,
127
- protocols: ["http", "https", "ws", "wss"],
161
+ protocols: ["http", "https"],
128
162
  },
129
163
  {
130
164
  name: "functions-v1",
@@ -133,12 +167,41 @@ function runtimeRouteSpecSplit(opts) {
133
167
  paths: ["/functions/v1/"],
134
168
  stripPath: false,
135
169
  },
170
+ {
171
+ name: "graphql-v1",
172
+ serviceName: "postgrest-graphql",
173
+ serviceUrl: "http://postgrest:3000/rpc/graphql",
174
+ paths: ["/graphql/v1"],
175
+ stripPath: true,
176
+ graphqlPostgrest: true,
177
+ },
178
+ {
179
+ name: "studio-auth",
180
+ serviceName: "auth-v1",
181
+ serviceUrl: "http://server:9999",
182
+ paths: ["/studio/auth/"],
183
+ stripPath: false,
184
+ },
185
+ {
186
+ name: "studio-proxy",
187
+ serviceName: "auth-v1",
188
+ serviceUrl: "http://server:9999",
189
+ paths: ["/studio/proxy/"],
190
+ stripPath: false,
191
+ },
192
+ {
193
+ name: "studio-exact",
194
+ serviceName: "studio-exact",
195
+ serviceUrl: studioUrl,
196
+ paths: ["~/studio$"],
197
+ stripPath: stripStudio,
198
+ },
136
199
  {
137
200
  name: "studio",
138
201
  serviceName: "studio",
139
- serviceUrl: "http://studio:3002",
202
+ serviceUrl: studioUrl,
140
203
  paths: ["/studio/"],
141
- stripPath: true,
204
+ stripPath: stripStudio,
142
205
  },
143
206
  {
144
207
  name: "studio-config-route",
@@ -182,7 +245,7 @@ function runtimeRouteSpecSplit(opts) {
182
245
  */
183
246
  export function runtimeRouteSpec(opts = {}) {
184
247
  if (opts.unifiedGateway) {
185
- return runtimeRouteSpecUnified();
248
+ return runtimeRouteSpecUnified(opts);
186
249
  }
187
250
  return runtimeRouteSpecSplit(opts);
188
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-routes.js","sourceRoot":"","sources":["../src/runtime-routes.ts"],"names":[],"mappings":"AAsBA,MAAM,cAAc,GAAG,oBAAoB,CAAA;AAE3C;;GAEG;AACH,SAAS,uBAAuB;IAC9B,OAAO;QACL;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,sBAAsB;YACnC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,sBAAsB;YACnC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,uBAAuB;YACpC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,YAAY,CAAC;YACrB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,yBAAyB;YACtC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,cAAc,CAAC;YACvB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,eAAe,CAAC;YACxB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;SAC1C;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,2BAA2B;YACxC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,gBAAgB,CAAC;YACzB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,yBAAyB;YACtC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,cAAc,CAAC;YACvB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,+BAA+B;YAC5C,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,gBAAgB,CAAC;YACzB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qBAAqB;YAClC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,oBAAoB;YAChC,KAAK,EAAE,CAAC,UAAU,CAAC;YACnB,SAAS,EAAE,IAAI;SAChB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,qBAAqB;YAClC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,CAAC,GAAG,CAAC;YACZ,SAAS,EAAE,KAAK;SACjB;KACF,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,IAAyB;IACtD,MAAM,MAAM,GAAmB;QAC7B;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,uBAAuB;YACnC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,SAAS,EAAE,IAAI;SAChB;QACD;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,oBAAoB;YAChC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,SAAS,EAAE,IAAI;SAChB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,oBAAoB;YAChC,KAAK,EAAE,CAAC,YAAY,CAAC;YACrB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,qBAAqB;YACjC,KAAK,EAAE,CAAC,cAAc,CAAC;YACvB,SAAS,EAAE,IAAI;SAChB;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,aAAa;YAC1B,UAAU,EAAE,sBAAsB;YAClC,KAAK,EAAE,CAAC,eAAe,CAAC;YACxB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;SAC1C;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,cAAc;YAC3B,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,oBAAoB;YACpE,KAAK,EAAE,CAAC,gBAAgB,CAAC;YACzB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,oBAAoB;YAChC,KAAK,EAAE,CAAC,UAAU,CAAC;YACnB,SAAS,EAAE,IAAI;SAChB;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,sBAAsB;YACnC,UAAU,EAAE,oBAAoB;YAChC,KAAK,EAAE,CAAC,gBAAgB,CAAC;YACzB,eAAe,EAAE,IAAI;SACtB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,oBAAoB;YAChC,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,eAAe,EAAE,IAAI;SACtB;KACF,CAAA;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAA;IACzD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,gBAAgB;YAC5B,KAAK,EAAE,CAAC,GAAG,CAAC;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACnC,KAAK,EAAE,CAAC,GAAG,CAAC;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA4B,EAAE;IAC7D,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO,uBAAuB,EAAE,CAAA;IAClC,CAAC;IACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"runtime-routes.js","sourceRoot":"","sources":["../src/runtime-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * AST v2 wire format — canonical types and emitters.
3
+ * Parsers build {@link ParsedField}; only `emitField` / `emitModel` / `emitSchema` produce JSON.
4
+ */
5
+ export declare const AST_VERSION: 2;
6
+ export type DefaultAst = {
7
+ kind: "value";
8
+ value: string | number | boolean | null;
9
+ } | {
10
+ kind: "now";
11
+ } | {
12
+ kind: "genRandomUuid";
13
+ } | {
14
+ kind: "expression";
15
+ expr: string;
16
+ };
17
+ export interface DbFieldAnnotations {
18
+ pgType?: string;
19
+ unique?: boolean;
20
+ index?: boolean;
21
+ foreignKey?: string;
22
+ serverGenerated?: boolean;
23
+ elementType?: string;
24
+ }
25
+ export interface PlatformFieldAnnotations {
26
+ editor?: string;
27
+ readOnly?: boolean;
28
+ }
29
+ export interface FieldAnnotations {
30
+ db?: DbFieldAnnotations;
31
+ platform?: PlatformFieldAnnotations;
32
+ }
33
+ /** Kernel facts only — never db/platform keys at this layer. */
34
+ export interface KernelFieldFacts {
35
+ required?: boolean;
36
+ primaryKey?: boolean;
37
+ default?: DefaultAst;
38
+ localized?: boolean;
39
+ cardinality?: string;
40
+ target?: string;
41
+ values?: string[];
42
+ from?: string;
43
+ sources?: string[];
44
+ template?: string;
45
+ bucket?: string;
46
+ accessMode?: string;
47
+ geoType?: string;
48
+ srid?: number;
49
+ dimensions?: number;
50
+ blocks?: BlockDefinitionAst[];
51
+ check?: string;
52
+ precision?: number;
53
+ scale?: number;
54
+ references?: string;
55
+ through?: string;
56
+ onDelete?: string;
57
+ onUpdate?: string;
58
+ uniqueFk?: boolean;
59
+ plugin?: string;
60
+ fieldType?: string;
61
+ tsType?: string;
62
+ index?: boolean;
63
+ }
64
+ /** Internal parse result — not serialized. */
65
+ export interface ParsedField {
66
+ kind: string;
67
+ kernel: KernelFieldFacts;
68
+ db: DbFieldAnnotations;
69
+ platform: PlatformFieldAnnotations;
70
+ }
71
+ export type FieldAstV2 = {
72
+ kind: string;
73
+ annotations?: FieldAnnotations;
74
+ } & Record<string, unknown>;
75
+ export interface BlockDefinitionAst {
76
+ name: string;
77
+ label?: string;
78
+ icon?: string;
79
+ fields: Record<string, FieldAstV2>;
80
+ }
81
+ export interface ModelAstV2 {
82
+ name: string;
83
+ fields: Record<string, FieldAstV2>;
84
+ options: Record<string, unknown>;
85
+ annotations: {
86
+ db: {
87
+ tableName: string;
88
+ indexes: unknown[];
89
+ };
90
+ platform: {
91
+ access: Record<string, unknown>;
92
+ };
93
+ };
94
+ }
95
+ export interface ExtractedStorageBucketAst {
96
+ id: string;
97
+ public: boolean;
98
+ accessMode?: "public" | "private" | "custom";
99
+ allowedMimeTypes?: string[];
100
+ fileSizeLimit?: number;
101
+ access?: Record<string, unknown>;
102
+ s3BucketPolicy?: string;
103
+ }
104
+ export interface ExtractedSchemaAstV2 {
105
+ astVersion: typeof AST_VERSION;
106
+ models: ModelAstV2[];
107
+ storageBuckets?: ExtractedStorageBucketAst[];
108
+ locales?: string[];
109
+ defaultLocale?: string;
110
+ }
111
+ /** Start a parsed field with kind defaults for db/platform namespaces. */
112
+ export declare function defaultPgTypeForKind(kind: string): string;
113
+ /** Flat wire shape for fields nested inside `blocks` definitions (engine FieldAst serde). */
114
+ export declare function emitBlockNestedField(field: FieldAstV2): FieldAstV2;
115
+ export declare function scalar(kind: string, extra?: {
116
+ kernel?: Partial<KernelFieldFacts>;
117
+ db?: Partial<DbFieldAnnotations>;
118
+ platform?: Partial<PlatformFieldAnnotations>;
119
+ }): ParsedField;
120
+ export declare function emitField(parsed: ParsedField): FieldAstV2;
121
+ export declare function emitModel(name: string, fields: Record<string, FieldAstV2>, options: Record<string, unknown>, tableName: string, access: Record<string, unknown>): ModelAstV2;
122
+ export declare function emitSchema(models: ModelAstV2[], extras?: {
123
+ storageBuckets?: ExtractedSchemaAstV2["storageBuckets"];
124
+ locales?: string[];
125
+ defaultLocale?: string;
126
+ }): ExtractedSchemaAstV2;
127
+ //# sourceMappingURL=schema-ast-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-ast-v2.d.ts","sourceRoot":"","sources":["../src/schema-ast-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * AST v2 wire format — canonical types and emitters.
3
+ * Parsers build {@link ParsedField}; only `emitField` / `emitModel` / `emitSchema` produce JSON.
4
+ */
5
+ export const AST_VERSION = 2;
6
+ const DEFAULT_DB_BY_KIND = {
7
+ text: { pgType: "TEXT" },
8
+ richText: { pgType: "JSONB" },
9
+ integer: { pgType: "INTEGER" },
10
+ smallInt: { pgType: "SMALLINT" },
11
+ bigInt: { pgType: "BIGINT" },
12
+ float: { pgType: "DOUBLE PRECISION" },
13
+ boolean: { pgType: "BOOLEAN" },
14
+ datetime: { pgType: "TIMESTAMPTZ" },
15
+ date: { pgType: "DATE" },
16
+ timestamp: { pgType: "TIMESTAMP WITH TIME ZONE" },
17
+ uuid: { pgType: "UUID" },
18
+ email: { pgType: "TEXT" },
19
+ url: { pgType: "TEXT" },
20
+ slug: { pgType: "TEXT" },
21
+ enum: { pgType: "TEXT" },
22
+ json: { pgType: "JSONB" },
23
+ decimal: { pgType: "TEXT" },
24
+ bytes: { pgType: "BYTEA" },
25
+ serial: { pgType: "SERIAL" },
26
+ bigSerial: { pgType: "BIGSERIAL" },
27
+ money: { pgType: "TEXT" },
28
+ ip: { pgType: "TEXT" },
29
+ cidr: { pgType: "TEXT" },
30
+ macaddr: { pgType: "TEXT" },
31
+ xml: { pgType: "TEXT" },
32
+ tsQuery: { pgType: "TEXT" },
33
+ tsVector: { pgType: "TEXT" },
34
+ color: { pgType: "TEXT" },
35
+ array: { pgType: "ARRAY" },
36
+ image: { pgType: "JSONB" },
37
+ file: { pgType: "JSONB" },
38
+ geo: { pgType: "GEOGRAPHY" },
39
+ vector: { pgType: "VECTOR" },
40
+ blocks: { pgType: "JSONB" },
41
+ };
42
+ const DEFAULT_PLATFORM_BY_KIND = {
43
+ richText: { editor: "rich" },
44
+ };
45
+ const COMPOSITE_KINDS = new Set(["timestamps", "publishable", "softDelete"]);
46
+ function hasKeys(obj) {
47
+ return Object.keys(obj).length > 0;
48
+ }
49
+ function stripUndefined(obj) {
50
+ const out = {};
51
+ for (const [k, v] of Object.entries(obj)) {
52
+ if (v !== undefined)
53
+ out[k] = v;
54
+ }
55
+ return out;
56
+ }
57
+ /** Start a parsed field with kind defaults for db/platform namespaces. */
58
+ export function defaultPgTypeForKind(kind) {
59
+ return DEFAULT_DB_BY_KIND[kind]?.pgType ?? "TEXT";
60
+ }
61
+ /** Flat wire shape for fields nested inside `blocks` definitions (engine FieldAst serde). */
62
+ export function emitBlockNestedField(field) {
63
+ const annotations = (field.annotations ?? {});
64
+ const db = annotations.db ?? {};
65
+ const platform = annotations.platform ?? {};
66
+ const wire = {
67
+ kind: field.kind,
68
+ pgType: db.pgType ?? defaultPgTypeForKind(String(field.kind)),
69
+ required: field.required ?? false,
70
+ unique: db.unique ?? false,
71
+ localized: field.localized ?? false,
72
+ };
73
+ if (platform.readOnly)
74
+ wire.readOnly = true;
75
+ if (field.primaryKey)
76
+ wire.primaryKey = true;
77
+ if (field.default !== undefined)
78
+ wire.default = field.default;
79
+ if (field.from !== undefined)
80
+ wire.from = field.from;
81
+ if (field.values !== undefined)
82
+ wire.values = field.values;
83
+ if (field.bucket !== undefined)
84
+ wire.bucket = field.bucket;
85
+ if (field.accessMode !== undefined)
86
+ wire.accessMode = field.accessMode;
87
+ if (field.geoType !== undefined)
88
+ wire.geoType = field.geoType;
89
+ if (field.srid !== undefined)
90
+ wire.srid = field.srid;
91
+ if (field.dimensions !== undefined)
92
+ wire.dimensions = field.dimensions;
93
+ if (field.check !== undefined)
94
+ wire.check = field.check;
95
+ if (field.precision !== undefined)
96
+ wire.precision = field.precision;
97
+ if (field.scale !== undefined)
98
+ wire.scale = field.scale;
99
+ if (field.sources !== undefined)
100
+ wire.sources = field.sources;
101
+ if (field.template !== undefined)
102
+ wire.template = field.template;
103
+ if (field.plugin !== undefined)
104
+ wire.plugin = field.plugin;
105
+ if (field.fieldType !== undefined)
106
+ wire.fieldType = field.fieldType;
107
+ if (field.tsType !== undefined)
108
+ wire.tsType = field.tsType;
109
+ return wire;
110
+ }
111
+ export function scalar(kind, extra) {
112
+ return {
113
+ kind,
114
+ kernel: { ...(extra?.kernel ?? {}) },
115
+ db: { ...DEFAULT_DB_BY_KIND[kind], ...stripUndefined(extra?.db ?? {}) },
116
+ platform: { ...DEFAULT_PLATFORM_BY_KIND[kind], ...stripUndefined(extra?.platform ?? {}) },
117
+ };
118
+ }
119
+ export function emitField(parsed) {
120
+ if (COMPOSITE_KINDS.has(parsed.kind)) {
121
+ return { kind: parsed.kind };
122
+ }
123
+ const db = stripUndefined({
124
+ ...DEFAULT_DB_BY_KIND[parsed.kind],
125
+ ...parsed.db,
126
+ });
127
+ const platform = stripUndefined({
128
+ ...DEFAULT_PLATFORM_BY_KIND[parsed.kind],
129
+ ...parsed.platform,
130
+ });
131
+ const wire = { kind: parsed.kind };
132
+ const kernel = parsed.kernel;
133
+ if (kernel.required !== undefined)
134
+ wire.required = kernel.required;
135
+ if (kernel.primaryKey)
136
+ wire.primaryKey = true;
137
+ if (kernel.default !== undefined)
138
+ wire.default = kernel.default;
139
+ if (kernel.localized)
140
+ wire.localized = true;
141
+ if (kernel.cardinality !== undefined)
142
+ wire.cardinality = kernel.cardinality;
143
+ if (kernel.target !== undefined)
144
+ wire.target = kernel.target;
145
+ if (kernel.values !== undefined)
146
+ wire.values = kernel.values;
147
+ if (kernel.from !== undefined)
148
+ wire.from = kernel.from;
149
+ if (kernel.sources !== undefined && kernel.sources.length > 0)
150
+ wire.sources = kernel.sources;
151
+ if (kernel.template !== undefined)
152
+ wire.template = kernel.template;
153
+ if (kernel.bucket !== undefined)
154
+ wire.bucket = kernel.bucket;
155
+ if (kernel.accessMode !== undefined)
156
+ wire.accessMode = kernel.accessMode;
157
+ if (kernel.geoType !== undefined)
158
+ wire.geoType = kernel.geoType;
159
+ if (kernel.srid !== undefined)
160
+ wire.srid = kernel.srid;
161
+ if (kernel.dimensions !== undefined)
162
+ wire.dimensions = kernel.dimensions;
163
+ if (kernel.blocks !== undefined) {
164
+ wire.blocks = kernel.blocks.map((blockDef) => ({
165
+ ...blockDef,
166
+ fields: Object.fromEntries(Object.entries(blockDef.fields).map(([name, nested]) => [
167
+ name,
168
+ emitBlockNestedField(nested),
169
+ ])),
170
+ }));
171
+ }
172
+ if (kernel.check !== undefined)
173
+ wire.check = kernel.check;
174
+ if (kernel.precision !== undefined)
175
+ wire.precision = kernel.precision;
176
+ if (kernel.scale !== undefined)
177
+ wire.scale = kernel.scale;
178
+ if (kernel.references !== undefined)
179
+ wire.references = kernel.references;
180
+ if (kernel.through !== undefined)
181
+ wire.through = kernel.through;
182
+ if (kernel.onDelete !== undefined)
183
+ wire.onDelete = kernel.onDelete;
184
+ if (kernel.onUpdate !== undefined)
185
+ wire.onUpdate = kernel.onUpdate;
186
+ if (kernel.uniqueFk)
187
+ wire.uniqueFk = true;
188
+ if (kernel.plugin !== undefined)
189
+ wire.plugin = kernel.plugin;
190
+ if (kernel.fieldType !== undefined)
191
+ wire.fieldType = kernel.fieldType;
192
+ if (kernel.tsType !== undefined)
193
+ wire.tsType = kernel.tsType;
194
+ if (parsed.kind === "blocks" && kernel.index !== undefined)
195
+ wire.index = kernel.index;
196
+ const annotations = {};
197
+ if (hasKeys(db))
198
+ annotations.db = db;
199
+ if (hasKeys(platform))
200
+ annotations.platform = platform;
201
+ if (hasKeys(annotations))
202
+ wire.annotations = annotations;
203
+ return wire;
204
+ }
205
+ export function emitModel(name, fields, options, tableName, access) {
206
+ return {
207
+ name,
208
+ fields,
209
+ options,
210
+ annotations: {
211
+ db: { tableName, indexes: [] },
212
+ platform: { access },
213
+ },
214
+ };
215
+ }
216
+ export function emitSchema(models, extras) {
217
+ return {
218
+ astVersion: AST_VERSION,
219
+ models,
220
+ ...(extras?.storageBuckets !== undefined &&
221
+ extras.storageBuckets.length > 0 && { storageBuckets: extras.storageBuckets }),
222
+ ...(extras?.locales !== undefined && extras.locales.length > 0 && { locales: extras.locales }),
223
+ ...(extras?.defaultLocale !== undefined && { defaultLocale: extras.defaultLocale }),
224
+ };
225
+ }
226
+ //# sourceMappingURL=schema-ast-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-ast-v2.js","sourceRoot":"","sources":["../src/schema-ast-v2.ts"],"names":[],"mappings":"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"}