@supacloud/compiler 0.37.0 → 0.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -2246,6 +2246,7 @@ function renderClient(graph, options) {
2246
2246
  "ProcedureExecutionValidator"
2247
2247
  ]));
2248
2248
  const controllerEntries = [];
2249
+ const procedureEntries = [];
2249
2250
  const routeTypes = [];
2250
2251
  const schemaEntries = [];
2251
2252
  const schemaLocals = new Map;
@@ -2282,6 +2283,7 @@ function renderClient(graph, options) {
2282
2283
  for (const controller of module.controllers) {
2283
2284
  const controllerKey = camelName(controller.className.replace(/Controller$/, ""));
2284
2285
  const routeMethods = [];
2286
+ const procedureMethods = [];
2285
2287
  for (const route of controller.routes) {
2286
2288
  const fullPath = joinRoutePaths(controller.path, route.path);
2287
2289
  const responseEntries = normalizedResponseEntries(route.responses);
@@ -2407,10 +2409,16 @@ function renderClient(graph, options) {
2407
2409
  });
2408
2410
  routeMethods.push(`
2409
2411
  ${route.handler}: makeRoute<${requestTypeName}, ${responseType === "never" ? "never" : responseTypeName}, ${JSON.stringify(procedureKind)}, ${JSON.stringify(idempotencyMode)}>(${JSON.stringify(route.method)}, ${JSON.stringify(fullPath)}, ${responseSchemaArgument}, ${responseKindArgument}, ${route.parse === "none"}, ${JSON.stringify(procedureKind)}, ${JSON.stringify(idempotencyMode)}, ${JSON.stringify(procedureMetadata)}),`);
2412
+ const member = procedureKind === "query" ? "query" : "mutate";
2413
+ procedureMethods.push(` ${route.handler}: { ${member}: controllers.${controllerKey}.${route.handler}.${member} },`);
2410
2414
  }
2411
2415
  controllerEntries.push(`
2412
2416
  ${controllerKey}: {${routeMethods.join("")}
2413
2417
  },`);
2418
+ procedureEntries.push(` ${controllerKey}: {
2419
+ ${procedureMethods.join(`
2420
+ `)}
2421
+ },`);
2414
2422
  }
2415
2423
  }
2416
2424
  const generatedImports = imports.render(rootDir, outDir);
@@ -2995,17 +3003,27 @@ function renderClient(graph, options) {
2995
3003
  " return route as RouteMethod<Options, Result> & ProcedureMember<Options, Result, Kind, Idempotency>;",
2996
3004
  " }",
2997
3005
  "",
3006
+ " const controllers = {",
3007
+ ...controllerEntries,
3008
+ " };",
2998
3009
  " return {",
2999
3010
  " __supacloudClient: Object.freeze({ hooksVersion: 1 as const }),",
3000
3011
  " request,",
3001
3012
  " buildRouteUrl,",
3002
3013
  " routes: API_ROUTES,",
3003
3014
  " procedures: API_PROCEDURES,",
3004
- ...controllerEntries,
3015
+ " procedureClient: {",
3016
+ ...procedureEntries,
3017
+ " },",
3018
+ " ...controllers,",
3005
3019
  " };",
3006
3020
  "}",
3007
3021
  "",
3008
3022
  "export type ApiClient = ReturnType<typeof createApiClient>;",
3023
+ "",
3024
+ 'export function createProcedureClient(client: ApiClient): ApiClient["procedureClient"] {',
3025
+ " return client.procedureClient;",
3026
+ "}",
3009
3027
  ""
3010
3028
  ].join(`
3011
3029
  `);
@@ -32726,7 +32744,7 @@ function migrationDependencies() {
32726
32744
  return {
32727
32745
  "@supacloud/app": "0.23.0",
32728
32746
  "@supacloud/compiler": compilerVersion(),
32729
- "@supacloud/elysia": "0.24.0",
32747
+ "@supacloud/elysia": "0.24.1",
32730
32748
  elysia: "2.0.0-beta.21",
32731
32749
  typescript: "7.0.2"
32732
32750
  };
package/dist/index.js CHANGED
@@ -2245,6 +2245,7 @@ function renderClient(graph, options) {
2245
2245
  "ProcedureExecutionValidator"
2246
2246
  ]));
2247
2247
  const controllerEntries = [];
2248
+ const procedureEntries = [];
2248
2249
  const routeTypes = [];
2249
2250
  const schemaEntries = [];
2250
2251
  const schemaLocals = new Map;
@@ -2281,6 +2282,7 @@ function renderClient(graph, options) {
2281
2282
  for (const controller of module.controllers) {
2282
2283
  const controllerKey = camelName(controller.className.replace(/Controller$/, ""));
2283
2284
  const routeMethods = [];
2285
+ const procedureMethods = [];
2284
2286
  for (const route of controller.routes) {
2285
2287
  const fullPath = joinRoutePaths(controller.path, route.path);
2286
2288
  const responseEntries = normalizedResponseEntries(route.responses);
@@ -2406,10 +2408,16 @@ function renderClient(graph, options) {
2406
2408
  });
2407
2409
  routeMethods.push(`
2408
2410
  ${route.handler}: makeRoute<${requestTypeName}, ${responseType === "never" ? "never" : responseTypeName}, ${JSON.stringify(procedureKind)}, ${JSON.stringify(idempotencyMode)}>(${JSON.stringify(route.method)}, ${JSON.stringify(fullPath)}, ${responseSchemaArgument}, ${responseKindArgument}, ${route.parse === "none"}, ${JSON.stringify(procedureKind)}, ${JSON.stringify(idempotencyMode)}, ${JSON.stringify(procedureMetadata)}),`);
2411
+ const member = procedureKind === "query" ? "query" : "mutate";
2412
+ procedureMethods.push(` ${route.handler}: { ${member}: controllers.${controllerKey}.${route.handler}.${member} },`);
2409
2413
  }
2410
2414
  controllerEntries.push(`
2411
2415
  ${controllerKey}: {${routeMethods.join("")}
2412
2416
  },`);
2417
+ procedureEntries.push(` ${controllerKey}: {
2418
+ ${procedureMethods.join(`
2419
+ `)}
2420
+ },`);
2413
2421
  }
2414
2422
  }
2415
2423
  const generatedImports = imports.render(rootDir, outDir);
@@ -2994,17 +3002,27 @@ function renderClient(graph, options) {
2994
3002
  " return route as RouteMethod<Options, Result> & ProcedureMember<Options, Result, Kind, Idempotency>;",
2995
3003
  " }",
2996
3004
  "",
3005
+ " const controllers = {",
3006
+ ...controllerEntries,
3007
+ " };",
2997
3008
  " return {",
2998
3009
  " __supacloudClient: Object.freeze({ hooksVersion: 1 as const }),",
2999
3010
  " request,",
3000
3011
  " buildRouteUrl,",
3001
3012
  " routes: API_ROUTES,",
3002
3013
  " procedures: API_PROCEDURES,",
3003
- ...controllerEntries,
3014
+ " procedureClient: {",
3015
+ ...procedureEntries,
3016
+ " },",
3017
+ " ...controllers,",
3004
3018
  " };",
3005
3019
  "}",
3006
3020
  "",
3007
3021
  "export type ApiClient = ReturnType<typeof createApiClient>;",
3022
+ "",
3023
+ 'export function createProcedureClient(client: ApiClient): ApiClient["procedureClient"] {',
3024
+ " return client.procedureClient;",
3025
+ "}",
3008
3026
  ""
3009
3027
  ].join(`
3010
3028
  `);
@@ -32459,7 +32477,7 @@ function migrationDependencies() {
32459
32477
  return {
32460
32478
  "@supacloud/app": "0.23.0",
32461
32479
  "@supacloud/compiler": compilerVersion(),
32462
- "@supacloud/elysia": "0.24.0",
32480
+ "@supacloud/elysia": "0.24.1",
32463
32481
  elysia: "2.0.0-beta.21",
32464
32482
  typescript: "7.0.2"
32465
32483
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supacloud/compiler",
3
- "version": "0.37.0",
3
+ "version": "0.38.1",
4
4
  "description": "Static compiler for @supacloud/app metadata: builds the application graph from AST, validates it, and generates reflection-free factory code",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -63,6 +63,9 @@
63
63
  "@typescript/typescript6": "^6.0.2",
64
64
  "graphql": "^16"
65
65
  },
66
+ "overrides": {
67
+ "@graphql-tools/utils": "^12.0.3"
68
+ },
66
69
  "devDependencies": {
67
70
  "@supabase/supabase-js": "2.115.0",
68
71
  "drizzle-orm": "1.0.0-rc.4",