@cedarjs/structure 6.0.0-canary.2879 → 6.0.0-canary.2881

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/errors.d.ts CHANGED
@@ -6,6 +6,7 @@ export declare enum RWError {
6
6
  SERVICE_NOT_IMPLEMENTED = "SERVICE_NOT_IMPLEMENTED",
7
7
  NOTFOUND_PAGE_NOT_DEFINED = "NOTFOUND_PAGE_NOT_DEFINED",
8
8
  INVALID_ROUTE_PATH_SYNTAX = "INVALID_ROUTE_PATH_SYNTAX",
9
- SCHEMA_NOT_DEFINED = "SCHEMA_NOT_DEFINED"
9
+ SCHEMA_NOT_DEFINED = "SCHEMA_NOT_DEFINED",
10
+ UNPROTECTED_ROUTE_USES_AUTH_GATED_MUTATION = "UNPROTECTED_ROUTE_USES_AUTH_GATED_MUTATION"
10
11
  }
11
12
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,OAAO;IACjB,uBAAuB,4BAA4B;IACnD,yBAAyB,8BAA8B;IAEvD,yBAAyB,8BAA8B;IACvD,kBAAkB,uBAAuB;CAC1C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,OAAO;IACjB,uBAAuB,4BAA4B;IACnD,yBAAyB,8BAA8B;IAEvD,yBAAyB,8BAA8B;IACvD,kBAAkB,uBAAuB;IACzC,0CAA0C,+CAA+C;CAC1F"}
package/dist/errors.js CHANGED
@@ -9,5 +9,6 @@ export var RWError;
9
9
  // this error should be broken down into more specialized errors: syntax error, duplicate parameters
10
10
  RWError["INVALID_ROUTE_PATH_SYNTAX"] = "INVALID_ROUTE_PATH_SYNTAX";
11
11
  RWError["SCHEMA_NOT_DEFINED"] = "SCHEMA_NOT_DEFINED";
12
+ RWError["UNPROTECTED_ROUTE_USES_AUTH_GATED_MUTATION"] = "UNPROTECTED_ROUTE_USES_AUTH_GATED_MUTATION";
12
13
  })(RWError || (RWError = {}));
13
14
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,OAMX;AAND,WAAY,OAAO;IACjB,8DAAmD,CAAA;IACnD,kEAAuD,CAAA;IACvD,oGAAoG;IACpG,kEAAuD,CAAA;IACvD,oDAAyC,CAAA;AAC3C,CAAC,EANW,OAAO,KAAP,OAAO,QAMlB"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,8DAAmD,CAAA;IACnD,kEAAuD,CAAA;IACvD,oGAAoG;IACpG,kEAAuD,CAAA;IACvD,oDAAyC,CAAA;IACzC,oGAAyF,CAAA;AAC3F,CAAC,EAPW,OAAO,KAAP,OAAO,QAOlB"}
@@ -48,5 +48,15 @@ export declare class RWProject extends BaseNode {
48
48
  **/
49
49
  get cells(): RWCell[];
50
50
  get envHelper(): RWEnvHelper;
51
+ /**
52
+ * Maps GraphQL `Mutation` root field name -> the (project-root-relative)
53
+ * path of the SDL file that declares it with a literal `@requireAuth`
54
+ * directive.
55
+ *
56
+ * Used by `RWRoute` to warn when an unprotected route's page uses one of
57
+ * these mutations. Only literal `@requireAuth` is considered - custom
58
+ * directives (and `@skipAuth`) are intentionally ignored.
59
+ */
60
+ get requireAuthMutationFields(): Map<string, string>;
51
61
  }
52
62
  //# sourceMappingURL=RWProject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RWProject.d.ts","sourceRoot":"","sources":["../../src/model/RWProject.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAUpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAUtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAUpC;;;GAGG;AACH,qBAAa,SAAU,SAAQ,QAAQ;IACrC,MAAM,YAAY;IAElB,IAAY,EAAE,WAEb;IAED,QAAQ;IAaR;;OAEG;IACH,IAAY,UAAU,4CAErB;IAED;;OAEG;IACH,IAAY,mBAAmB,IAAI,OAAO,CAKzC;IAGa,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAWhD,oBAAoB;IAQlC,IAAY,SAAS,IAAI,MAAM,CAE9B;IAEO,OAAO,KAAK,eAAe,GAMlC;IAED,IAAY,KAAK,IAAI,MAAM,EAAE,CAI5B;IAED,IAAY,MAAM,aAEjB;IACD,SAAS,iBAER;IAGD,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAO7B,IAAY,2BAA2B,WAOtC;IAED,IAAY,QAAQ,gBAMnB;IAED,IAAY,IAAI,YAIf;IAED,IAAY,OAAO,IAAI,QAAQ,EAAE,CAMhC;IAED,IAAY,SAAS,IAAI,UAAU,EAAE,CAKpC;IAED,IAAY,UAAU,IAAI,WAAW,EAAE,CAYtC;IAED,IAAY,KAAK,aAEhB;IAGD,IAAY,KAAK,aAEhB;IAED;;;QAGI;IACJ,IAAY,KAAK,IAAI,MAAM,EAAE,CAI5B;IAED,IAAY,SAAS,IAAI,WAAW,CAEnC;CACF"}
1
+ {"version":3,"file":"RWProject.d.ts","sourceRoot":"","sources":["../../src/model/RWProject.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAUpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAUtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAUpC;;;GAGG;AACH,qBAAa,SAAU,SAAQ,QAAQ;IACrC,MAAM,YAAY;IAElB,IAAY,EAAE,WAEb;IAED,QAAQ;IAaR;;OAEG;IACH,IAAY,UAAU,4CAErB;IAED;;OAEG;IACH,IAAY,mBAAmB,IAAI,OAAO,CAKzC;IAGa,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAWhD,oBAAoB;IAQlC,IAAY,SAAS,IAAI,MAAM,CAE9B;IAEO,OAAO,KAAK,eAAe,GAMlC;IAED,IAAY,KAAK,IAAI,MAAM,EAAE,CAI5B;IAED,IAAY,MAAM,aAEjB;IACD,SAAS,iBAER;IAGD,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAO7B,IAAY,2BAA2B,WAOtC;IAED,IAAY,QAAQ,gBAMnB;IAED,IAAY,IAAI,YAIf;IAED,IAAY,OAAO,IAAI,QAAQ,EAAE,CAMhC;IAED,IAAY,SAAS,IAAI,UAAU,EAAE,CAKpC;IAED,IAAY,UAAU,IAAI,WAAW,EAAE,CAYtC;IAED,IAAY,KAAK,aAEhB;IAGD,IAAY,KAAK,aAEhB;IAED;;;QAGI;IACJ,IAAY,KAAK,IAAI,MAAM,EAAE,CAI5B;IAED,IAAY,SAAS,IAAI,WAAW,CAEnC;IAED;;;;;;;;OAQG;IACH,IAAY,yBAAyB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmC3D;CACF"}
@@ -163,6 +163,42 @@ export class RWProject extends BaseNode {
163
163
  get envHelper() {
164
164
  return new RWEnvHelper(this);
165
165
  }
166
+ /**
167
+ * Maps GraphQL `Mutation` root field name -> the (project-root-relative)
168
+ * path of the SDL file that declares it with a literal `@requireAuth`
169
+ * directive.
170
+ *
171
+ * Used by `RWRoute` to warn when an unprotected route's page uses one of
172
+ * these mutations. Only literal `@requireAuth` is considered - custom
173
+ * directives (and `@skipAuth`) are intentionally ignored.
174
+ */
175
+ get requireAuthMutationFields() {
176
+ const result = new Map();
177
+ for (const sdl of this.sdls) {
178
+ // `implementableFields` parses the SDL's GraphQL schema string, which
179
+ // can throw for a malformed/in-progress schema. Isolate that per SDL
180
+ // file so one bad file doesn't hide `@requireAuth` fields declared in
181
+ // otherwise-valid SDL files.
182
+ let fields;
183
+ try {
184
+ fields = sdl.implementableFields;
185
+ }
186
+ catch {
187
+ continue;
188
+ }
189
+ for (const field of fields) {
190
+ if (field.objectTypeDef.name.value !== 'Mutation') {
191
+ continue;
192
+ }
193
+ const hasRequireAuth = (field.field.directives ?? []).some((directive) => directive.name.value === 'requireAuth');
194
+ if (!hasRequireAuth) {
195
+ continue;
196
+ }
197
+ result.set(field.name, path.relative(this.pathHelper.base, sdl.filePath));
198
+ }
199
+ }
200
+ return result;
201
+ }
166
202
  }
167
203
  __decorate([
168
204
  lazy()
@@ -221,4 +257,7 @@ __decorate([
221
257
  __decorate([
222
258
  lazy()
223
259
  ], RWProject.prototype, "envHelper", null);
260
+ __decorate([
261
+ lazy()
262
+ ], RWProject.prototype, "requireAuthMutationFields", null);
224
263
  //# sourceMappingURL=RWProject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RWProject.js","sourceRoot":"","sources":["../../src/model/RWProject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RWProject.js","sourceRoot":"","sources":["../../src/model/RWProject.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import * as tsm from 'ts-morph';
2
2
  import { BaseNode } from '../nodes.js';
3
+ import type { ExtendedDiagnostic } from '../x/diagnostics.js';
3
4
  import type { Location } from '../x/Location.js';
4
5
  import type { RWRouter } from './RWRouter.js';
5
6
  export declare class RWRoute extends BaseNode {
@@ -52,7 +53,17 @@ export declare class RWRoute extends BaseNode {
52
53
  get path_literal_node(): tsm.StringLiteral | undefined;
53
54
  get isNotFound(): boolean;
54
55
  get redirect(): string | undefined;
55
- diagnostics(): Generator<import("../x/diagnostics.js").ExtendedDiagnostic, void, unknown>;
56
+ diagnostics(): Generator<ExtendedDiagnostic, void, unknown>;
57
+ /**
58
+ * For an unprotected route (not wrapped in `<Private>`/`<PrivateSet>`),
59
+ * transitively walks the page's imports to find any GraphQL mutations
60
+ * that are marked `@requireAuth` in the api-side SDL.
61
+ *
62
+ * This is a best-effort static analysis (see `pageMutationUsage.ts`), so
63
+ * any internal failure degrades to "no warning" rather than surfacing a
64
+ * crash diagnostic - this check must never break the other diagnostics.
65
+ */
66
+ private get unprotectedAuthMutationUsages();
56
67
  private get hasPathCollision();
57
68
  private getBoolAttr;
58
69
  private getStringAttr;
@@ -1 +1 @@
1
- {"version":3,"file":"RWRoute.d.ts","sourceRoot":"","sources":["../../src/model/RWRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAItC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,qBAAa,OAAQ,SAAQ,QAAQ;IAEjC;;OAEG;IACI,OAAO,EAAE,GAAG,CAAC,qBAAqB;IAClC,MAAM,EAAE,QAAQ;;IAJvB;;OAEG;IACI,OAAO,EAAE,GAAG,CAAC,qBAAqB,EAClC,MAAM,EAAE,QAAQ;IAKzB,IAAY,EAAE,WAIb;IAED,IAAY,QAAQ,IAAI,QAAQ,CAE/B;IAED;;;;;;;OAOG;IACK,OAAO,KAAK,gBAAgB,GAyBnC;IAED,IAAY,SAAS,YAEpB;IAED,IAAY,eAAe,uBAiB1B;IAED,IACI,KAAK,kCA0BR;IAED;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAuDpB,IAAY,aAAa,IAAI,OAAO,CAMnC;IAED,IAAY,YAAY,YAEvB;IAED;;OAEG;IAEH,IAAY,IAAI,6CAOf;IACD;;OAEG;IACK,OAAO,KAAK,eAAe,GAelC;IACD,IAAY,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAEpD;IACD,IAAY,IAAI,IAAI,MAAM,GAAG,SAAS,CAErC;IACD,IAAY,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAWlD;IACD,IAAY,IAAI,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAY,SAAS,IAAI,OAAO,CAE/B;IAGD,IAAY,UAAU,IAAI,MAAM,GAAG,SAAS,CAE3C;IAED,IAAY,iBAAiB,kCAY5B;IAED,IAAY,UAAU,IAAI,OAAO,CAEhC;IAED,IAAY,QAAQ,uBAEnB;IAEA,WAAW;IA8BJ,OAAO,KAAK,gBAAgB,GAsBnC;IAED,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,aAAa;CAatB"}
1
+ {"version":3,"file":"RWRoute.d.ts","sourceRoot":"","sources":["../../src/model/RWRoute.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAe7C,qBAAa,OAAQ,SAAQ,QAAQ;IAEjC;;OAEG;IACI,OAAO,EAAE,GAAG,CAAC,qBAAqB;IAClC,MAAM,EAAE,QAAQ;;IAJvB;;OAEG;IACI,OAAO,EAAE,GAAG,CAAC,qBAAqB,EAClC,MAAM,EAAE,QAAQ;IAKzB,IAAY,EAAE,WAIb;IAED,IAAY,QAAQ,IAAI,QAAQ,CAE/B;IAED;;;;;;;OAOG;IACK,OAAO,KAAK,gBAAgB,GAyBnC;IAED,IAAY,SAAS,YAEpB;IAED,IAAY,eAAe,uBAiB1B;IAED,IACI,KAAK,kCA0BR;IAED;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAuDpB,IAAY,aAAa,IAAI,OAAO,CAMnC;IAED,IAAY,YAAY,YAEvB;IAED;;OAEG;IAEH,IAAY,IAAI,6CAOf;IACD;;OAEG;IACK,OAAO,KAAK,eAAe,GAelC;IACD,IAAY,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAEpD;IACD,IAAY,IAAI,IAAI,MAAM,GAAG,SAAS,CAErC;IACD,IAAY,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAWlD;IACD,IAAY,IAAI,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAY,SAAS,IAAI,OAAO,CAE/B;IAGD,IAAY,UAAU,IAAI,MAAM,GAAG,SAAS,CAE3C;IAED,IAAY,iBAAiB,kCAY5B;IAED,IAAY,UAAU,IAAI,OAAO,CAEhC;IAED,IAAY,QAAQ,uBAEnB;IAEA,WAAW;IAgDZ;;;;;;;;OAQG;IAEH,OAAO,KAAK,6BAA6B,GA2CxC;IAEO,OAAO,KAAK,gBAAgB,GAsBnC;IAED,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,aAAa;CAatB"}
@@ -4,12 +4,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ import path from 'node:path';
7
8
  import * as tsm from 'ts-morph';
8
9
  import { RWError } from '../errors.js';
9
10
  import { BaseNode } from '../nodes.js';
10
11
  import { validateRoutePath } from '../util.js';
11
12
  import { lazy } from '../x/decorators.js';
12
- import { err, LocationLike_toLocation } from '../x/diagnostics.js';
13
+ import { err, DiagnosticSeverity, LocationLike_toLocation, } from '../x/diagnostics.js';
14
+ import { getMutationFieldsUsedTransitively } from './util/pageMutationUsage.js';
13
15
  export class RWRoute extends BaseNode {
14
16
  jsxNode;
15
17
  parent;
@@ -261,6 +263,65 @@ export class RWRoute extends BaseNode {
261
263
  if (this.isNotFound && this.path) {
262
264
  yield err(this.path_literal_node, "The 'Not Found' page cannot have a path");
263
265
  }
266
+ for (const warning of this.unprotectedAuthMutationUsages) {
267
+ const { uri, range } = this.location;
268
+ const routeLabel = this.name ?? this.path ?? '(unnamed route)';
269
+ const diagnostic = {
270
+ uri,
271
+ diagnostic: {
272
+ range,
273
+ message: `Route '${routeLabel}' is not wrapped in <PrivateSet>, but its ` +
274
+ `page uses the mutation '${warning.fieldName}', which is ` +
275
+ `marked @requireAuth in ${warning.sdlFilePath} (found in ` +
276
+ `${warning.componentFilePath})`,
277
+ severity: DiagnosticSeverity.Warning,
278
+ code: RWError.UNPROTECTED_ROUTE_USES_AUTH_GATED_MUTATION,
279
+ },
280
+ };
281
+ yield diagnostic;
282
+ }
283
+ }
284
+ /**
285
+ * For an unprotected route (not wrapped in `<Private>`/`<PrivateSet>`),
286
+ * transitively walks the page's imports to find any GraphQL mutations
287
+ * that are marked `@requireAuth` in the api-side SDL.
288
+ *
289
+ * This is a best-effort static analysis (see `pageMutationUsage.ts`), so
290
+ * any internal failure degrades to "no warning" rather than surfacing a
291
+ * crash diagnostic - this check must never break the other diagnostics.
292
+ */
293
+ get unprotectedAuthMutationUsages() {
294
+ if (this.isPrivate) {
295
+ return [];
296
+ }
297
+ const page = this.page;
298
+ if (!page) {
299
+ return [];
300
+ }
301
+ try {
302
+ const project = this.parent.parent;
303
+ const requireAuthFields = project.requireAuthMutationFields;
304
+ if (requireAuthFields.size === 0) {
305
+ return [];
306
+ }
307
+ const usedMutations = getMutationFieldsUsedTransitively(project, page.filePath);
308
+ const warnings = [];
309
+ for (const [fieldName, componentFilePath] of usedMutations) {
310
+ const sdlFilePath = requireAuthFields.get(fieldName);
311
+ if (!sdlFilePath) {
312
+ continue;
313
+ }
314
+ warnings.push({
315
+ fieldName,
316
+ sdlFilePath,
317
+ componentFilePath: path.relative(project.pathHelper.base, componentFilePath),
318
+ });
319
+ }
320
+ return warnings;
321
+ }
322
+ catch {
323
+ return [];
324
+ }
264
325
  }
265
326
  get hasPathCollision() {
266
327
  if (!this.path) {
@@ -384,6 +445,9 @@ __decorate([
384
445
  __decorate([
385
446
  lazy()
386
447
  ], RWRoute.prototype, "redirect", null);
448
+ __decorate([
449
+ lazy()
450
+ ], RWRoute.prototype, "unprotectedAuthMutationUsages", null);
387
451
  __decorate([
388
452
  lazy()
389
453
  ], RWRoute.prototype, "hasPathCollision", null);
@@ -1 +1 @@
1
- {"version":3,"file":"RWRoute.js","sourceRoot":"","sources":["../../src/model/RWRoute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RWRoute.js","sourceRoot":"","sources":["../../src/model/RWRoute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { RWProject } from '../RWProject.js';
2
+ /**
3
+ * Transitively walks the static imports reachable from `entryFilePath`
4
+ * (typically a page's file path) and collects the names of GraphQL mutation
5
+ * root fields used anywhere in that import graph, via `gql`/`graphql`
6
+ * tagged template literals.
7
+ *
8
+ * This is a best-effort, syntactic analysis: it does not resolve TypeScript
9
+ * path aliases beyond the `src/` -> `web/src/` convention, does not follow
10
+ * re-exports (`export * from './x'`), and skips any GraphQL document it
11
+ * can't parse (e.g. ones mangled by interpolation).
12
+ *
13
+ * @returns a map of mutation root field name -> the first file path (inside
14
+ * `web/src`) in which a `gql`/`graphql` document using that mutation was
15
+ * found.
16
+ */
17
+ export declare function getMutationFieldsUsedTransitively(project: RWProject, entryFilePath: string): Map<string, string>;
18
+ //# sourceMappingURL=pageMutationUsage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageMutationUsage.d.ts","sourceRoot":"","sources":["../../../src/model/util/pageMutationUsage.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAoBhD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,SAAS,EAClB,aAAa,EAAE,MAAM,GACpB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCrB"}
@@ -0,0 +1,256 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { Kind, OperationTypeNode, parse as parseGraphQL } from 'graphql';
4
+ import * as tsm from 'ts-morph';
5
+ import { createTSMSourceFile_cached } from '../../x/ts-morph.js';
6
+ /**
7
+ * File extensions (in resolution order) tried when an import specifier
8
+ * doesn't include one, mirroring typical Metro/webpack/vite resolution.
9
+ */
10
+ const RESOLVE_EXTENSIONS = ['.tsx', '.ts', '.jsx', '.js'];
11
+ /**
12
+ * Per-project cache of "mutation root field names found directly in this
13
+ * file" (i.e. not counting fields found in imported files). Many pages
14
+ * share the same components (e.g. a shared `<Form>` or layout), so caching
15
+ * per file - rather than per page - avoids re-parsing the same file many
16
+ * times when checking many routes.
17
+ */
18
+ const fileMutationFieldsCache = new WeakMap();
19
+ /**
20
+ * Transitively walks the static imports reachable from `entryFilePath`
21
+ * (typically a page's file path) and collects the names of GraphQL mutation
22
+ * root fields used anywhere in that import graph, via `gql`/`graphql`
23
+ * tagged template literals.
24
+ *
25
+ * This is a best-effort, syntactic analysis: it does not resolve TypeScript
26
+ * path aliases beyond the `src/` -> `web/src/` convention, does not follow
27
+ * re-exports (`export * from './x'`), and skips any GraphQL document it
28
+ * can't parse (e.g. ones mangled by interpolation).
29
+ *
30
+ * @returns a map of mutation root field name -> the first file path (inside
31
+ * `web/src`) in which a `gql`/`graphql` document using that mutation was
32
+ * found.
33
+ */
34
+ export function getMutationFieldsUsedTransitively(project, entryFilePath) {
35
+ const usedIn = new Map();
36
+ const visited = new Set();
37
+ const queue = [path.normalize(entryFilePath)];
38
+ while (queue.length > 0) {
39
+ const filePath = queue.shift();
40
+ if (!filePath) {
41
+ break;
42
+ }
43
+ if (visited.has(filePath)) {
44
+ continue;
45
+ }
46
+ visited.add(filePath);
47
+ for (const fieldName of getMutationFieldNamesForFile(project, filePath)) {
48
+ if (!usedIn.has(fieldName)) {
49
+ usedIn.set(fieldName, filePath);
50
+ }
51
+ }
52
+ for (const importedFilePath of resolveImportedFilePaths(project, filePath)) {
53
+ if (!visited.has(importedFilePath)) {
54
+ queue.push(importedFilePath);
55
+ }
56
+ }
57
+ }
58
+ return usedIn;
59
+ }
60
+ /**
61
+ * Returns (and caches at the project level) the mutation root field names
62
+ * used directly within `filePath`, i.e. not counting any imported files.
63
+ */
64
+ function getMutationFieldNamesForFile(project, filePath) {
65
+ let cache = fileMutationFieldsCache.get(project);
66
+ if (!cache) {
67
+ cache = new Map();
68
+ fileMutationFieldsCache.set(project, cache);
69
+ }
70
+ const cached = cache.get(filePath);
71
+ if (cached) {
72
+ return cached;
73
+ }
74
+ const fieldNames = extractMutationFieldNames(filePath);
75
+ cache.set(filePath, fieldNames);
76
+ return fieldNames;
77
+ }
78
+ /**
79
+ * Parses `filePath` and extracts the top-level selection-set field names of
80
+ * every `mutation` operation defined in a `gql`/`graphql` tagged template
81
+ * literal within it.
82
+ */
83
+ function extractMutationFieldNames(filePath) {
84
+ const fieldNames = new Set();
85
+ const sf = readSourceFile(filePath);
86
+ if (!sf) {
87
+ return fieldNames;
88
+ }
89
+ for (const tagged of sf.getDescendantsOfKind(tsm.SyntaxKind.TaggedTemplateExpression)) {
90
+ const tag = tagged.getTag();
91
+ if (!tsm.Node.isIdentifier(tag)) {
92
+ continue;
93
+ }
94
+ if (tag.getText() !== 'gql' && tag.getText() !== 'graphql') {
95
+ continue;
96
+ }
97
+ const documentText = TemplateLiteral_toStaticText(tagged.getTemplate());
98
+ if (!documentText) {
99
+ continue;
100
+ }
101
+ try {
102
+ const document = parseGraphQL(documentText);
103
+ for (const definition of document.definitions) {
104
+ if (definition.kind !== Kind.OPERATION_DEFINITION ||
105
+ definition.operation !== OperationTypeNode.MUTATION) {
106
+ continue;
107
+ }
108
+ for (const selection of definition.selectionSet.selections) {
109
+ if (selection.kind === Kind.FIELD) {
110
+ fieldNames.add(selection.name.value);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ catch {
116
+ // Best-effort: skip documents we can't parse (e.g. ones mangled by
117
+ // interpolation) rather than failing the whole analysis.
118
+ continue;
119
+ }
120
+ }
121
+ return fieldNames;
122
+ }
123
+ /**
124
+ * Extracts the static text of a template literal. For templates with
125
+ * substitutions (e.g. an interpolated fragment), the quasi (non-interpolated)
126
+ * parts are concatenated, which is good enough to preserve the operation's
127
+ * field structure even though the interpolated content itself is dropped.
128
+ */
129
+ function TemplateLiteral_toStaticText(template) {
130
+ if (tsm.Node.isNoSubstitutionTemplateLiteral(template)) {
131
+ return template.getLiteralText();
132
+ }
133
+ if (tsm.Node.isTemplateExpression(template)) {
134
+ let text = template.getHead().getLiteralText();
135
+ for (const span of template.getTemplateSpans()) {
136
+ text += span.getLiteral().getLiteralText();
137
+ }
138
+ return text;
139
+ }
140
+ return undefined;
141
+ }
142
+ /**
143
+ * Resolves the file paths of every `ImportDeclaration` module specifier in
144
+ * `filePath` that points inside `web/src`. Import specifiers pointing to npm
145
+ * packages, the api side, or anything else outside `web/src` are skipped.
146
+ */
147
+ function resolveImportedFilePaths(project, filePath) {
148
+ const sf = readSourceFile(filePath);
149
+ if (!sf) {
150
+ return [];
151
+ }
152
+ const resolved = [];
153
+ for (const importDecl of sf.getDescendantsOfKind(tsm.SyntaxKind.ImportDeclaration)) {
154
+ const specifier = importDecl.getModuleSpecifierValue();
155
+ const resolvedPath = resolveModuleSpecifier(project, filePath, specifier);
156
+ if (resolvedPath) {
157
+ resolved.push(resolvedPath);
158
+ }
159
+ }
160
+ return resolved;
161
+ }
162
+ /**
163
+ * Resolves a single import specifier to an absolute file path inside
164
+ * `web/src`, or `undefined` if it's not a relative import / `src/`-aliased
165
+ * import, or if it doesn't resolve to a file inside `web/src` (e.g. an npm
166
+ * package, or an api-side import).
167
+ */
168
+ function resolveModuleSpecifier(project, fromFilePath, specifier) {
169
+ const webSrc = project.pathHelper.web.src;
170
+ let basePath;
171
+ if (specifier.startsWith('.')) {
172
+ basePath = path.resolve(path.dirname(fromFilePath), specifier);
173
+ }
174
+ else if (specifier === 'src' || specifier.startsWith('src/')) {
175
+ basePath = path.join(webSrc, specifier.slice('src'.length));
176
+ }
177
+ else {
178
+ // Not a relative or `src/`-aliased import (e.g. an npm package, or an
179
+ // absolute import into the api side) - nothing to resolve.
180
+ return undefined;
181
+ }
182
+ const resolvedPath = resolveWithExtensions(basePath);
183
+ if (!resolvedPath) {
184
+ return undefined;
185
+ }
186
+ const relativeToWebSrc = path.relative(webSrc, resolvedPath);
187
+ if (relativeToWebSrc.startsWith('..') || path.isAbsolute(relativeToWebSrc)) {
188
+ // Resolves outside web/src (e.g. reaching into the api side)
189
+ return undefined;
190
+ }
191
+ return resolvedPath;
192
+ }
193
+ /**
194
+ * Tries `basePath` as-is, then with each of `RESOLVE_EXTENSIONS`, then as a
195
+ * directory index file with each of `RESOLVE_EXTENSIONS`.
196
+ */
197
+ function resolveWithExtensions(basePath) {
198
+ if (isFile(basePath)) {
199
+ return basePath;
200
+ }
201
+ // An ESM-style specifier (e.g. `./Foo.js`) refers to the TS source
202
+ // (`./Foo.tsx`), not a literal `.js` file.
203
+ const jsExtMatch = /\.(js|jsx)$/.exec(basePath);
204
+ if (jsExtMatch) {
205
+ const withoutExt = basePath.slice(0, -jsExtMatch[0].length);
206
+ for (const ext of RESOLVE_EXTENSIONS) {
207
+ const candidate = withoutExt + ext;
208
+ if (isFile(candidate)) {
209
+ return candidate;
210
+ }
211
+ }
212
+ }
213
+ for (const ext of RESOLVE_EXTENSIONS) {
214
+ const candidate = basePath + ext;
215
+ if (isFile(candidate)) {
216
+ return candidate;
217
+ }
218
+ }
219
+ for (const ext of RESOLVE_EXTENSIONS) {
220
+ const candidate = path.join(basePath, 'index' + ext);
221
+ if (isFile(candidate)) {
222
+ return candidate;
223
+ }
224
+ }
225
+ return undefined;
226
+ }
227
+ function isFile(filePath) {
228
+ try {
229
+ return fs.statSync(filePath).isFile();
230
+ }
231
+ catch {
232
+ return false;
233
+ }
234
+ }
235
+ /**
236
+ * Reads and parses `filePath` with ts-morph, going through the same cached
237
+ * in-memory source-file infrastructure the rest of the model uses (see
238
+ * `FileNode.sf`). Returns `undefined` (rather than throwing) for files that
239
+ * don't exist or fail to parse, since this analysis must degrade gracefully.
240
+ */
241
+ function readSourceFile(filePath) {
242
+ let text;
243
+ try {
244
+ text = fs.readFileSync(filePath, 'utf8');
245
+ }
246
+ catch {
247
+ return undefined;
248
+ }
249
+ try {
250
+ return createTSMSourceFile_cached(filePath, text);
251
+ }
252
+ catch {
253
+ return undefined;
254
+ }
255
+ }
256
+ //# sourceMappingURL=pageMutationUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageMutationUsage.js","sourceRoot":"","sources":["../../../src/model/util/pageMutationUsage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/structure",
3
- "version": "6.0.0-canary.2879",
3
+ "version": "6.0.0-canary.2881",
4
4
  "description": "noun: the arrangement of and relations between the parts or elements of something complex",
5
5
  "repository": {
6
6
  "type": "git",
@@ -54,7 +54,7 @@
54
54
  "test:watch": "vitest watch"
55
55
  },
56
56
  "dependencies": {
57
- "@cedarjs/project-config": "6.0.0-canary.2879",
57
+ "@cedarjs/project-config": "6.0.0-canary.2881",
58
58
  "@prisma/internals": "7.8.0",
59
59
  "@types/line-column": "1.0.2",
60
60
  "camelcase": "6.3.0",