@supatype/cli 0.1.0-alpha.7 → 0.1.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +66 -61
- package/.turbo/turbo-typecheck.log +1 -1
- package/dist/app/proxy-dev-app.d.ts +13 -0
- package/dist/app/proxy-dev-app.d.ts.map +1 -0
- package/dist/app/proxy-dev-app.js +53 -0
- package/dist/app/proxy-dev-app.js.map +1 -0
- package/dist/binary-cache.d.ts +5 -0
- package/dist/binary-cache.d.ts.map +1 -1
- package/dist/binary-cache.js +13 -0
- package/dist/binary-cache.js.map +1 -1
- package/dist/commands/cloud.d.ts +11 -3
- package/dist/commands/cloud.d.ts.map +1 -1
- package/dist/commands/cloud.js +33 -25
- package/dist/commands/cloud.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +3 -17
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts +3 -3
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +66 -59
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +11 -1
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/init.js +16 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +42 -12
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +16 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/dev-compose.d.ts +17 -0
- package/dist/dev-compose.d.ts.map +1 -0
- package/dist/dev-compose.js +374 -0
- package/dist/dev-compose.js.map +1 -0
- package/dist/diff-output.d.ts +4 -0
- package/dist/diff-output.d.ts.map +1 -0
- package/dist/diff-output.js +12 -0
- package/dist/diff-output.js.map +1 -0
- package/dist/docker-postgres.d.ts +21 -3
- package/dist/docker-postgres.d.ts.map +1 -1
- package/dist/docker-postgres.js +130 -18
- package/dist/docker-postgres.js.map +1 -1
- package/dist/engine-client.d.ts +5 -3
- package/dist/engine-client.d.ts.map +1 -1
- package/dist/engine-client.js +2 -1
- package/dist/engine-client.js.map +1 -1
- package/dist/kong-config.d.ts +4 -0
- package/dist/kong-config.d.ts.map +1 -1
- package/dist/kong-config.js +12 -1
- package/dist/kong-config.js.map +1 -1
- package/dist/process-manager.d.ts +2 -0
- package/dist/process-manager.d.ts.map +1 -1
- package/dist/process-manager.js +16 -1
- package/dist/process-manager.js.map +1 -1
- package/dist/project-config.d.ts +21 -1
- package/dist/project-config.d.ts.map +1 -1
- package/dist/project-config.js +15 -0
- package/dist/project-config.js.map +1 -1
- package/dist/runtime-routes.d.ts +9 -0
- package/dist/runtime-routes.d.ts.map +1 -1
- package/dist/runtime-routes.js +75 -12
- package/dist/runtime-routes.js.map +1 -1
- package/dist/schema-ast-v2.d.ts +127 -0
- package/dist/schema-ast-v2.d.ts.map +1 -0
- package/dist/schema-ast-v2.js +226 -0
- package/dist/schema-ast-v2.js.map +1 -0
- package/dist/seed.d.ts +8 -0
- package/dist/seed.d.ts.map +1 -0
- package/dist/seed.js +32 -0
- package/dist/seed.js.map +1 -0
- package/dist/self-host-compose.d.ts +12 -4
- package/dist/self-host-compose.d.ts.map +1 -1
- package/dist/self-host-compose.js +146 -35
- package/dist/self-host-compose.js.map +1 -1
- package/dist/studio-admin-roles.d.ts +7 -0
- package/dist/studio-admin-roles.d.ts.map +1 -0
- package/dist/studio-admin-roles.js +14 -0
- package/dist/studio-admin-roles.js.map +1 -0
- package/dist/studio-dev-server.d.ts +22 -0
- package/dist/studio-dev-server.d.ts.map +1 -0
- package/dist/studio-dev-server.js +28 -0
- package/dist/studio-dev-server.js.map +1 -0
- package/dist/type-extractor.d.ts +3 -30
- package/dist/type-extractor.d.ts.map +1 -1
- package/dist/type-extractor.js +485 -148
- package/dist/type-extractor.js.map +1 -1
- package/dist/type-resolver.d.ts +33 -0
- package/dist/type-resolver.d.ts.map +1 -0
- package/dist/type-resolver.js +338 -0
- package/dist/type-resolver.js.map +1 -0
- package/package.json +7 -3
- package/src/TYPE-RESOLUTION.md +294 -0
- package/src/app/proxy-dev-app.ts +67 -0
- package/src/binary-cache.ts +20 -0
- package/src/commands/cloud.ts +40 -30
- package/src/commands/deploy.ts +3 -18
- package/src/commands/dev.ts +72 -69
- package/src/commands/diff.ts +11 -1
- package/src/commands/init.ts +16 -3
- package/src/commands/push.ts +49 -13
- package/src/commands/update.ts +17 -0
- package/src/dev-compose.ts +455 -0
- package/src/diff-output.ts +12 -0
- package/src/docker-postgres.ts +184 -27
- package/src/engine-client.ts +9 -4
- package/src/kong-config.ts +16 -1
- package/src/process-manager.ts +18 -1
- package/src/project-config.ts +34 -1
- package/src/runtime-routes.ts +87 -12
- package/src/schema-ast-v2.ts +324 -0
- package/src/seed.ts +43 -0
- package/src/self-host-compose.ts +168 -36
- package/src/studio-admin-roles.ts +16 -0
- package/src/studio-dev-server.ts +53 -0
- package/src/type-extractor.ts +649 -186
- package/src/type-resolver.ts +457 -0
- package/tests/config.test.ts +34 -3
- package/tests/docker-postgres.test.ts +39 -0
- package/tests/normalize-admin-config.test.ts +48 -0
- package/tests/proxy-dev-app.test.ts +33 -0
- package/tests/runtime-contract.test.ts +119 -4
- package/tests/studio-admin-roles.test.ts +27 -0
- package/tests/type-extractor.test.ts +607 -23
- package/tests/type-resolver.test.ts +59 -0
- package/tsconfig.tsbuildinfo +1 -1
package/dist/project-config.js
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime-routes.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/runtime-routes.js
CHANGED
|
@@ -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"
|
|
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: "
|
|
53
|
-
serviceUrl:
|
|
54
|
-
paths: ["/graphql/v1
|
|
55
|
-
stripPath:
|
|
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:
|
|
106
|
+
serviceUrl: studioUrl,
|
|
75
107
|
paths: ["/studio/"],
|
|
76
|
-
stripPath:
|
|
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"
|
|
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:
|
|
202
|
+
serviceUrl: studioUrl,
|
|
140
203
|
paths: ["/studio/"],
|
|
141
|
-
stripPath:
|
|
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":"
|
|
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":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAU,CAAA;AA2GrC,MAAM,kBAAkB,GAAgD;IACtE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC7B,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9B,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;IAChC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5B,KAAK,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;IACrC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9B,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;IACnC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,SAAS,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE;IACjD,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACzB,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACvB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACzB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAC3B,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1B,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5B,SAAS,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;IAClC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACzB,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACtB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAC3B,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACvB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAC3B,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAC5B,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACzB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1B,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1B,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACzB,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;IAC5B,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5B,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;CAC5B,CAAA;AAED,MAAM,wBAAwB,GAAsD;IAClF,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;CAC7B,CAAA;AAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAA;AAE5E,SAAS,OAAO,CAAC,GAA4B;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,cAAc,CAAoC,GAAM;IAC/D,MAAM,GAAG,GAA4B,EAAE,CAAA;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,GAAiB,CAAA;AAC1B,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,MAAM,CAAA;AACnD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,oBAAoB,CAAC,KAAiB;IACpD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAqB,CAAA;IACjE,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,CAAA;IAC/B,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAA;IAE3C,MAAM,IAAI,GAAe;QACvB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7D,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;QACjC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,KAAK;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;KACpC,CAAA;IAED,IAAI,QAAQ,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IAC3C,IAAI,KAAK,CAAC,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IAC5C,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACpD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC1D,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;IACtE,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACpD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;IACtE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IACvD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IACnE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IACvD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7D,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAChE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC1D,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IACnE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAE1D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,KAIC;IAED,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE;QACpC,EAAE,EAAE,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACvE,QAAQ,EAAE,EAAE,GAAG,wBAAwB,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE;KAC1F,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IAC9B,CAAC;IAED,MAAM,EAAE,GAAG,cAAc,CAAC;QACxB,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC,GAAG,MAAM,CAAC,EAAE;KACb,CAAuB,CAAA;IAExB,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC;QACxC,GAAG,MAAM,CAAC,QAAQ;KACnB,CAA6B,CAAA;IAE9B,MAAM,IAAI,GAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IAE9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAClE,IAAI,MAAM,CAAC,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IAC7C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IAC/D,IAAI,MAAM,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IAC3C,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;IAC3E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACtD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IAC5F,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5D,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IACxE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IAC/D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACtD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IACxE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7C,GAAG,QAAQ;YACX,MAAM,EAAE,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI;gBACJ,oBAAoB,CAAC,MAAM,CAAC;aAC7B,CAAC,CACH;SACF,CAAC,CAAC,CAAA;IACL,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IACzD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IACrE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IACzD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IACxE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IAC/D,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAClE,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAClE,IAAI,MAAM,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACzC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5D,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IACrE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAErF,MAAM,WAAW,GAAqB,EAAE,CAAA;IACxC,IAAI,OAAO,CAAC,EAA6B,CAAC;QAAE,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;IAC/D,IAAI,OAAO,CAAC,QAAmC,CAAC;QAAE,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACjF,IAAI,OAAO,CAAC,WAAsC,CAAC;QAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAEnF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,MAAkC,EAClC,OAAgC,EAChC,SAAiB,EACjB,MAA+B;IAE/B,OAAO;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,WAAW,EAAE;YACX,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;YAC9B,QAAQ,EAAE,EAAE,MAAM,EAAE;SACrB;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,MAAoB,EACpB,MAIC;IAED,OAAO;QACL,UAAU,EAAE,WAAW;QACvB,MAAM;QACN,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,SAAS;YACtC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;QAChF,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9F,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;KACpF,CAAA;AACH,CAAC"}
|
package/dist/seed.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import pg from "pg";
|
|
2
|
+
export interface SeedSql {
|
|
3
|
+
(strings: TemplateStringsArray, ...values: unknown[]): Promise<pg.QueryResult>;
|
|
4
|
+
end(): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
/** Lightweight tagged-template SQL helper for project `seed.ts` scripts. */
|
|
7
|
+
export declare function sql(connectionString: string): SeedSql;
|
|
8
|
+
//# sourceMappingURL=seed.d.ts.map
|