@cedarjs/internal 8.0.0-canary.3538 → 8.0.0-canary.3540
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/generate/gqlormSchema.d.ts +7 -0
- package/dist/generate/gqlormSchema.d.ts.map +1 -1
- package/dist/generate/gqlormSchema.js +7 -3
- package/dist/generate/templates/all-permissions.d.ts.template +9 -0
- package/dist/generate/templates/web-tenancy.d.ts.template +11 -0
- package/dist/generate/typeDefinitions.d.ts +14 -0
- package/dist/generate/typeDefinitions.d.ts.map +1 -1
- package/dist/generate/typeDefinitions.js +51 -0
- package/dist/validateSchema.d.ts.map +1 -1
- package/dist/validateSchema.js +2 -1
- package/package.json +10 -10
|
@@ -30,6 +30,13 @@ export interface GqlormBackendConfig {
|
|
|
30
30
|
membershipUserField: string;
|
|
31
31
|
membershipOrganizationField: string;
|
|
32
32
|
membershipModelExists: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Whether `cedar setup tenancy` replaced `@requireAuth` with
|
|
35
|
+
* `@requireOrgAuth` and `@requireUserAuth`. Fields then use
|
|
36
|
+
* `@requireUserAuth`, which checks what `@requireAuth` did: gqlorm does
|
|
37
|
+
* its own scoping to the user's organizations.
|
|
38
|
+
*/
|
|
39
|
+
tenancyAuthDirectives?: boolean;
|
|
33
40
|
}
|
|
34
41
|
/**
|
|
35
42
|
* Map a DMMF field type to its GraphQL SDL equivalent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gqlormSchema.d.ts","sourceRoot":"","sources":["../../src/generate/gqlormSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,IAAI,MAAM,cAAc,CAAA;AA8BzC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;AAE3C,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAMD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,OAAO,CAAA;IACb,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAA;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAA;IACvB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,2BAA2B,EAAE,MAAM,CAAA;IACnC,qBAAqB,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"gqlormSchema.d.ts","sourceRoot":"","sources":["../../src/generate/gqlormSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,IAAI,MAAM,cAAc,CAAA;AA8BzC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;AAE3C,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAMD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,OAAO,CAAA;IACb,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAA;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAA;IACvB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,2BAA2B,EAAE,MAAM,CAAA;IACnC,qBAAqB,EAAE,OAAO,CAAA;IAC9B;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AA6DD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvE;AAoGD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,CAAC,QAAQ,GAClB,iBAAiB,EAAE,CAiDrB;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,iBAAiB,EAAE,GAC1B,MAAM,CA2CR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,WAAW,CAkDjE;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,gBAAgB,EAAE,CA6D7E;AAkBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CA6BvE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,gBAAgB,EAAE,EAC1B,MAAM,GAAE,mBAAmD,GAC1D,MAAM,CAmsBR;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC;IACvD,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAC9C,CAAC,CAqID"}
|
|
@@ -477,6 +477,7 @@ function generateGqlormBackendContent(models, config = DEFAULT_GQLORM_BACKEND_CO
|
|
|
477
477
|
lines.push(" }");
|
|
478
478
|
lines.push("");
|
|
479
479
|
}
|
|
480
|
+
const requireAuthDirective = config.tenancyAuthDirectives ? "@requireUserAuth" : "@requireAuth";
|
|
480
481
|
lines.push(" type Query {");
|
|
481
482
|
for (const model of models) {
|
|
482
483
|
const hasUserField = model.fields.some(
|
|
@@ -487,7 +488,7 @@ function generateGqlormBackendContent(models, config = DEFAULT_GQLORM_BACKEND_CO
|
|
|
487
488
|
);
|
|
488
489
|
const isMembershipModel = model.camelName === config.membershipModelCamel;
|
|
489
490
|
const needsAuth = hasUserField || hasOrgField && config.membershipModelExists && !isMembershipModel;
|
|
490
|
-
const authDirective = needsAuth ?
|
|
491
|
+
const authDirective = needsAuth ? requireAuthDirective : "@skipAuth";
|
|
491
492
|
lines.push(
|
|
492
493
|
` ${model.pluralName}: [${model.modelName}!]! ${authDirective}`
|
|
493
494
|
);
|
|
@@ -511,7 +512,7 @@ function generateGqlormBackendContent(models, config = DEFAULT_GQLORM_BACKEND_CO
|
|
|
511
512
|
);
|
|
512
513
|
const isMembershipModel = model.camelName === config.membershipModelCamel;
|
|
513
514
|
const needsAuth = hasUserField || hasOrgField && config.membershipModelExists && !isMembershipModel;
|
|
514
|
-
const authDirective = needsAuth ?
|
|
515
|
+
const authDirective = needsAuth ? requireAuthDirective : "@skipAuth";
|
|
515
516
|
const idNullMark = model.idField.isRequired ? "!" : "";
|
|
516
517
|
lines.push(
|
|
517
518
|
` create${model.modelName}(input: Create${model.modelName}Input!): ${model.modelName}! ${authDirective}`
|
|
@@ -974,7 +975,10 @@ async function generateGqlormArtifacts() {
|
|
|
974
975
|
membershipModelCamel,
|
|
975
976
|
membershipUserField,
|
|
976
977
|
membershipOrganizationField,
|
|
977
|
-
membershipModelExists
|
|
978
|
+
membershipModelExists,
|
|
979
|
+
tenancyAuthDirectives: fs.existsSync(
|
|
980
|
+
path.join(getPaths().api.directives, "requireOrgAuth")
|
|
981
|
+
)
|
|
978
982
|
};
|
|
979
983
|
const gqlormModels = allModels.filter(
|
|
980
984
|
(m) => !existingTypes.has(m.modelName)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import '@cedarjs/auth'
|
|
2
|
+
|
|
3
|
+
import type { Permission } from '${packageName}'
|
|
4
|
+
|
|
5
|
+
// The permission names from ${packageName}, so useAuth().hasPermission()
|
|
6
|
+
// only takes those
|
|
7
|
+
declare module '@cedarjs/auth' {
|
|
8
|
+
interface AvailablePermissions extends Record<Permission, true> {}
|
|
9
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import '@cedarjs/auth'
|
|
2
|
+
|
|
3
|
+
// This app has tenancy, so every role check says which kind it is:
|
|
4
|
+
// useAuth().hasUserRole for currentUser.roles, and
|
|
5
|
+
// useCurrentOrg().hasOrgRole or OrgScope's roles for the role in the
|
|
6
|
+
// organization. No useAuth().hasRole or <PrivateSet roles>.
|
|
7
|
+
declare module '@cedarjs/auth' {
|
|
8
|
+
interface AuthTenancy {
|
|
9
|
+
enabled: true
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -19,12 +19,26 @@ export declare const generateTypeDefRouterRoutes: () => string[];
|
|
|
19
19
|
export declare const generateTypeDefRouterPages: () => string[];
|
|
20
20
|
export declare const generateTypeDefCurrentUser: () => string[];
|
|
21
21
|
export declare const generateTypeDefGqlorm: () => string[];
|
|
22
|
+
/**
|
|
23
|
+
* The permission names for `useAuth().hasPermission()`, from the app's
|
|
24
|
+
* permission definitions: `packages/permissions`, when it's the package
|
|
25
|
+
* `cedar setup tenancy` makes (it depends on `@cedarjs/tenancy`). None
|
|
26
|
+
* otherwise, and a stale file goes.
|
|
27
|
+
*/
|
|
28
|
+
export declare const generateTypeDefPermissions: () => string[];
|
|
22
29
|
/**
|
|
23
30
|
* The full type of the GraphQL handler's `realtime` option, when the api side
|
|
24
31
|
* depends on `@cedarjs/realtime` (`cedar setup realtime` adds it). None
|
|
25
32
|
* otherwise, and a stale file goes.
|
|
26
33
|
*/
|
|
27
34
|
export declare const generateTypeDefRealtime: () => string[];
|
|
35
|
+
/**
|
|
36
|
+
* Marks `@cedarjs/auth`'s `AuthTenancy` as enabled when the web side depends
|
|
37
|
+
* on `@cedarjs/tenancy` (`cedar setup tenancy` adds it), which takes
|
|
38
|
+
* `useAuth().hasRole` and `<PrivateSet roles>` away from the app's types.
|
|
39
|
+
* None otherwise, and a stale file goes.
|
|
40
|
+
*/
|
|
41
|
+
export declare const generateTypeDefTenancy: () => string[];
|
|
28
42
|
export declare const generateTypeDefScenarios: () => string[];
|
|
29
43
|
export declare const generateTypeDefTestMocks: () => string[];
|
|
30
44
|
export declare const generateTypeDefGlobImports: () => string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeDefinitions.d.ts","sourceRoot":"","sources":["../../src/generate/typeDefinitions.ts"],"names":[],"mappings":"AA8CA;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;
|
|
1
|
+
{"version":3,"file":"typeDefinitions.d.ts","sourceRoot":"","sources":["../../src/generate/typeDefinitions.ts"],"names":[],"mappings":"AA8CA;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;EA6B5B,CAAA;AAED,eAAO,MAAM,mCAAmC,gBAK/C,CAAA;AAED,eAAO,MAAM,kCAAkC,GAC7C,GAAG,MAAM,EACT,mDAAsB,aASvB,CAAA;AAED,eAAO,MAAM,kCAAkC,GAC7C,GAAG,MAAM,EACT,mDAAsB,WAoDvB,CAAA;AAED,eAAO,MAAM,mBAAmB,gBAG/B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,EAAE,mDAAsB,aAQlE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,GAAG,MAAM,EAAE,mDAAsB,WAmHnE,CAAA;AAiBD,eAAO,MAAM,2BAA2B,gBAmEvC,CAAA;AAED,eAAO,MAAM,0BAA0B,gBA8CtC,CAAA;AAED,eAAO,MAAM,0BAA0B,gBAEtC,CAAA;AAED,eAAO,MAAM,qBAAqB,gBAEjC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,gBAgCtC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gBA8BnC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,gBA8BlC,CAAA;AAED,eAAO,MAAM,wBAAwB,gBAEpC,CAAA;AAED,eAAO,MAAM,wBAAwB,gBAKpC,CAAA;AAED,eAAO,MAAM,0BAA0B,gBAEtC,CAAA;AAED,eAAO,MAAM,4BAA4B,gBAExC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,gBAW5C,CAAA"}
|
|
@@ -31,7 +31,9 @@ const generateTypeDefs = async () => {
|
|
|
31
31
|
...generateTypeDefRouterPages(),
|
|
32
32
|
...generateTypeDefCurrentUser(),
|
|
33
33
|
...generateTypeDefGqlorm(),
|
|
34
|
+
...generateTypeDefPermissions(),
|
|
34
35
|
...generateTypeDefRealtime(),
|
|
36
|
+
...generateTypeDefTenancy(),
|
|
35
37
|
...generateTypeDefRouterRoutes(),
|
|
36
38
|
...generateTypeDefGlobImports(),
|
|
37
39
|
...generateTypeDefGlobalContext(),
|
|
@@ -307,6 +309,32 @@ const generateTypeDefCurrentUser = () => {
|
|
|
307
309
|
const generateTypeDefGqlorm = () => {
|
|
308
310
|
return writeTypeDefIncludeFile("all-gqlorm.d.ts.template");
|
|
309
311
|
};
|
|
312
|
+
const generateTypeDefPermissions = () => {
|
|
313
|
+
const paths = getPaths();
|
|
314
|
+
const typeDefPath = path.join(
|
|
315
|
+
paths.generated.types.includes,
|
|
316
|
+
"all-permissions.d.ts"
|
|
317
|
+
);
|
|
318
|
+
const packageJsonPath = path.join(
|
|
319
|
+
paths.packages,
|
|
320
|
+
"permissions",
|
|
321
|
+
"package.json"
|
|
322
|
+
);
|
|
323
|
+
let packageJson;
|
|
324
|
+
try {
|
|
325
|
+
packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
|
|
326
|
+
} catch {
|
|
327
|
+
fs.rmSync(typeDefPath, { force: true });
|
|
328
|
+
return [];
|
|
329
|
+
}
|
|
330
|
+
if (typeof packageJson.name !== "string" || !packageJson.dependencies?.["@cedarjs/tenancy"]) {
|
|
331
|
+
fs.rmSync(typeDefPath, { force: true });
|
|
332
|
+
return [];
|
|
333
|
+
}
|
|
334
|
+
return writeTypeDefIncludeFile("all-permissions.d.ts.template", {
|
|
335
|
+
packageName: packageJson.name
|
|
336
|
+
});
|
|
337
|
+
};
|
|
310
338
|
const generateTypeDefRealtime = () => {
|
|
311
339
|
const paths = getPaths();
|
|
312
340
|
const typeDefPath = path.join(
|
|
@@ -328,6 +356,27 @@ const generateTypeDefRealtime = () => {
|
|
|
328
356
|
}
|
|
329
357
|
return writeTypeDefIncludeFile("api-realtime.d.ts.template");
|
|
330
358
|
};
|
|
359
|
+
const generateTypeDefTenancy = () => {
|
|
360
|
+
const paths = getPaths();
|
|
361
|
+
const typeDefPath = path.join(
|
|
362
|
+
paths.generated.types.includes,
|
|
363
|
+
"web-tenancy.d.ts"
|
|
364
|
+
);
|
|
365
|
+
let packageJson;
|
|
366
|
+
try {
|
|
367
|
+
packageJson = JSON.parse(
|
|
368
|
+
fs.readFileSync(path.join(paths.web.base, "package.json"), "utf-8")
|
|
369
|
+
);
|
|
370
|
+
} catch {
|
|
371
|
+
fs.rmSync(typeDefPath, { force: true });
|
|
372
|
+
return [];
|
|
373
|
+
}
|
|
374
|
+
if (!packageJson.dependencies?.["@cedarjs/tenancy"] && !packageJson.devDependencies?.["@cedarjs/tenancy"]) {
|
|
375
|
+
fs.rmSync(typeDefPath, { force: true });
|
|
376
|
+
return [];
|
|
377
|
+
}
|
|
378
|
+
return writeTypeDefIncludeFile("web-tenancy.d.ts.template");
|
|
379
|
+
};
|
|
331
380
|
const generateTypeDefScenarios = () => {
|
|
332
381
|
return writeTypeDefIncludeFile("api-scenarios.d.ts.template");
|
|
333
382
|
};
|
|
@@ -393,10 +442,12 @@ export {
|
|
|
393
442
|
generateTypeDefGlobImports,
|
|
394
443
|
generateTypeDefGlobalContext,
|
|
395
444
|
generateTypeDefGqlorm,
|
|
445
|
+
generateTypeDefPermissions,
|
|
396
446
|
generateTypeDefRealtime,
|
|
397
447
|
generateTypeDefRouterPages,
|
|
398
448
|
generateTypeDefRouterRoutes,
|
|
399
449
|
generateTypeDefScenarios,
|
|
450
|
+
generateTypeDefTenancy,
|
|
400
451
|
generateTypeDefTestMocks,
|
|
401
452
|
generateTypeDefs,
|
|
402
453
|
generateViteClientTypesDirective,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateSchema.d.ts","sourceRoot":"","sources":["../src/validateSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,SAAS,CAAA;AAQrE,eAAO,MAAM,gCAAgC,0EAC4B,CAAA;AAEzE,eAAO,MAAM,0CAA0C,gFACwB,CAAA;
|
|
1
|
+
{"version":3,"file":"validateSchema.d.ts","sourceRoot":"","sources":["../src/validateSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,SAAS,CAAA;AAQrE,eAAO,MAAM,gCAAgC,0EAC4B,CAAA;AAEzE,eAAO,MAAM,0CAA0C,gFACwB,CAAA;AAQ/E;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,UAS1B,CAAA;AAED,wBAAgB,cAAc,CAC5B,kBAAkB,EAAE,YAAY,EAChC,YAAY,GAAE,MAAM,EAA0B,QAwI/C;AAED,eAAO,MAAM,mBAAmB,qBAkC/B,CAAA"}
|
package/dist/validateSchema.js
CHANGED
|
@@ -7,6 +7,7 @@ import { getPaths } from "@cedarjs/project-config";
|
|
|
7
7
|
import { isServerFileSetup, isRealtimeSetup } from "./project.js";
|
|
8
8
|
const DIRECTIVE_REQUIRED_ERROR_MESSAGE = "You must specify one of @requireAuth, @skipAuth or a custom directive";
|
|
9
9
|
const DIRECTIVE_INVALID_ROLE_TYPES_ERROR_MESSAGE = "Please check that the requireAuth roles is a string or an array of strings.";
|
|
10
|
+
const ROLES_DIRECTIVES = ["requireAuth", "requireOrgAuth", "requireUserAuth"];
|
|
10
11
|
const RESERVED_TYPES = [
|
|
11
12
|
"Int",
|
|
12
13
|
"Float",
|
|
@@ -62,7 +63,7 @@ function validateSchema(schemaDocumentNode, typesToCheck = ["Query", "Mutation"]
|
|
|
62
63
|
validationOutput.push(`${fieldName} ${fieldTypeName}`);
|
|
63
64
|
}
|
|
64
65
|
field.directives?.forEach((directive) => {
|
|
65
|
-
if (directive.name.value
|
|
66
|
+
if (ROLES_DIRECTIVES.includes(directive.name.value)) {
|
|
66
67
|
directive.arguments?.forEach((arg) => {
|
|
67
68
|
if (arg.name.value === "roles") {
|
|
68
69
|
if (arg.value.kind !== Kind.STRING && arg.value.kind !== Kind.LIST) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cedarjs/internal",
|
|
3
|
-
"version": "8.0.0-canary.
|
|
3
|
+
"version": "8.0.0-canary.3540",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cedarjs/cedar.git",
|
|
@@ -120,14 +120,14 @@
|
|
|
120
120
|
"@babel/core": "^7.26.10",
|
|
121
121
|
"@babel/parser": "7.29.11",
|
|
122
122
|
"@babel/traverse": "7.29.10",
|
|
123
|
-
"@cedarjs/api": "8.0.0-canary.
|
|
124
|
-
"@cedarjs/babel-config": "8.0.0-canary.
|
|
125
|
-
"@cedarjs/cli-helpers": "8.0.0-canary.
|
|
126
|
-
"@cedarjs/graphql-server": "8.0.0-canary.
|
|
127
|
-
"@cedarjs/project-config": "8.0.0-canary.
|
|
128
|
-
"@cedarjs/router": "8.0.0-canary.
|
|
129
|
-
"@cedarjs/structure": "8.0.0-canary.
|
|
130
|
-
"@cedarjs/utils": "8.0.0-canary.
|
|
123
|
+
"@cedarjs/api": "8.0.0-canary.3540",
|
|
124
|
+
"@cedarjs/babel-config": "8.0.0-canary.3540",
|
|
125
|
+
"@cedarjs/cli-helpers": "8.0.0-canary.3540",
|
|
126
|
+
"@cedarjs/graphql-server": "8.0.0-canary.3540",
|
|
127
|
+
"@cedarjs/project-config": "8.0.0-canary.3540",
|
|
128
|
+
"@cedarjs/router": "8.0.0-canary.3540",
|
|
129
|
+
"@cedarjs/structure": "8.0.0-canary.3540",
|
|
130
|
+
"@cedarjs/utils": "8.0.0-canary.3540",
|
|
131
131
|
"@graphql-codegen/add": "6.0.1",
|
|
132
132
|
"@graphql-codegen/cli": "6.3.1",
|
|
133
133
|
"@graphql-codegen/client-preset": "5.3.0",
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
"vite-tsconfig-paths": "6.1.1"
|
|
166
166
|
},
|
|
167
167
|
"devDependencies": {
|
|
168
|
-
"@cedarjs/framework-tools": "8.0.0-canary.
|
|
168
|
+
"@cedarjs/framework-tools": "8.0.0-canary.3540",
|
|
169
169
|
"@jridgewell/trace-mapping": "0.3.31",
|
|
170
170
|
"@oxc-project/types": "^0.155.0",
|
|
171
171
|
"concurrently": "9.2.5",
|