@cedarjs/structure 9.0.0-canary.1784 → 9.0.0-canary.3124
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/README.md +1 -1
- package/dist/errors.d.ts +2 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +10 -15
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -67
- package/dist/index.js.map +1 -0
- package/dist/model/RWCell.d.ts +4 -4
- package/dist/model/RWCell.d.ts.map +1 -1
- package/dist/model/RWCell.js +111 -103
- package/dist/model/RWCell.js.map +1 -0
- package/dist/model/RWComponent.d.ts +2 -2
- package/dist/model/RWComponent.d.ts.map +1 -1
- package/dist/model/RWComponent.js +46 -41
- package/dist/model/RWComponent.js.map +1 -0
- package/dist/model/RWEnvHelper.d.ts +4 -4
- package/dist/model/RWEnvHelper.d.ts.map +1 -1
- package/dist/model/RWEnvHelper.js +233 -205
- package/dist/model/RWEnvHelper.js.map +1 -0
- package/dist/model/RWFunction.d.ts +2 -2
- package/dist/model/RWFunction.d.ts.map +1 -1
- package/dist/model/RWFunction.js +10 -15
- package/dist/model/RWFunction.js.map +1 -0
- package/dist/model/RWLayout.d.ts +2 -2
- package/dist/model/RWLayout.d.ts.map +1 -1
- package/dist/model/RWLayout.js +10 -15
- package/dist/model/RWLayout.js.map +1 -0
- package/dist/model/RWPage.d.ts +3 -3
- package/dist/model/RWPage.d.ts.map +1 -1
- package/dist/model/RWPage.js +61 -57
- package/dist/model/RWPage.js.map +1 -0
- package/dist/model/RWProject.d.ts +22 -18
- package/dist/model/RWProject.d.ts.map +1 -1
- package/dist/model/RWProject.js +257 -164
- package/dist/model/RWProject.js.map +1 -0
- package/dist/model/RWRoute.d.ts +32 -6
- package/dist/model/RWRoute.d.ts.map +1 -1
- package/dist/model/RWRoute.js +424 -260
- package/dist/model/RWRoute.js.map +1 -0
- package/dist/model/RWRouter.d.ts +4 -4
- package/dist/model/RWRouter.d.ts.map +1 -1
- package/dist/model/RWRouter.js +130 -126
- package/dist/model/RWRouter.js.map +1 -0
- package/dist/model/RWSDL.d.ts +5 -5
- package/dist/model/RWSDL.d.ts.map +1 -1
- package/dist/model/RWSDL.js +96 -84
- package/dist/model/RWSDL.js.map +1 -0
- package/dist/model/RWSDLField.d.ts +6 -6
- package/dist/model/RWSDLField.d.ts.map +1 -1
- package/dist/model/RWSDLField.js +79 -81
- package/dist/model/RWSDLField.js.map +1 -0
- package/dist/model/RWService.d.ts +4 -4
- package/dist/model/RWService.d.ts.map +1 -1
- package/dist/model/RWService.js +76 -76
- package/dist/model/RWService.js.map +1 -0
- package/dist/model/RWServiceFunction.d.ts +4 -4
- package/dist/model/RWServiceFunction.d.ts.map +1 -1
- package/dist/model/RWServiceFunction.js +95 -97
- package/dist/model/RWServiceFunction.js.map +1 -0
- package/dist/model/RWTOML.d.ts +3 -3
- package/dist/model/RWTOML.d.ts.map +1 -1
- package/dist/model/RWTOML.js +53 -55
- package/dist/model/RWTOML.js.map +1 -0
- package/dist/model/index.d.ts +2 -2
- package/dist/model/index.d.ts.map +1 -1
- package/dist/model/index.js +3 -20
- package/dist/model/index.js.map +1 -0
- package/dist/model/util/pageMutationUsage.d.ts +18 -0
- package/dist/model/util/pageMutationUsage.d.ts.map +1 -0
- package/dist/model/util/pageMutationUsage.js +256 -0
- package/dist/model/util/pageMutationUsage.js.map +1 -0
- package/dist/model/util/process_env.js +44 -62
- package/dist/model/util/process_env.js.map +1 -0
- package/dist/nodes.d.ts +2 -2
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +171 -164
- package/dist/nodes.js.map +1 -0
- package/dist/util.js +23 -33
- package/dist/util.js.map +1 -0
- package/dist/x/Array.d.ts.map +1 -1
- package/dist/x/Array.js +15 -25
- package/dist/x/Array.js.map +1 -0
- package/dist/x/Location.d.ts +1 -1
- package/dist/x/Location.d.ts.map +1 -1
- package/dist/x/Location.js +11 -17
- package/dist/x/Location.js.map +1 -0
- package/dist/x/Position.js +18 -29
- package/dist/x/Position.js.map +1 -0
- package/dist/x/Range.d.ts +1 -1
- package/dist/x/Range.d.ts.map +1 -1
- package/dist/x/Range.js +17 -22
- package/dist/x/Range.js.map +1 -0
- package/dist/x/URL.js +59 -75
- package/dist/x/URL.js.map +1 -0
- package/dist/x/child_process.d.ts +1 -1
- package/dist/x/child_process.d.ts.map +1 -1
- package/dist/x/child_process.js +35 -49
- package/dist/x/child_process.js.map +1 -0
- package/dist/x/decorators.d.ts +2 -2
- package/dist/x/decorators.d.ts.map +1 -1
- package/dist/x/decorators.js +46 -26
- package/dist/x/decorators.js.map +1 -0
- package/dist/x/diagnostics.d.ts +3 -3
- package/dist/x/diagnostics.d.ts.map +1 -1
- package/dist/x/diagnostics.js +163 -259
- package/dist/x/diagnostics.js.map +1 -0
- package/dist/x/path.js +36 -55
- package/dist/x/path.js.map +1 -0
- package/dist/x/prisma.d.ts +2 -2
- package/dist/x/prisma.d.ts.map +1 -1
- package/dist/x/prisma.js +32 -55
- package/dist/x/prisma.js.map +1 -0
- package/dist/x/ts-morph.js +34 -45
- package/dist/x/ts-morph.js.map +1 -0
- package/package.json +46 -22
- package/LICENSE +0 -21
package/dist/model/RWProject.js
CHANGED
|
@@ -1,170 +1,263 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var _RWTOML = require("./RWTOML");
|
|
31
|
-
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec0, _dec1, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _class;
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import fs from 'node:fs';
|
|
8
|
+
import { createRequire } from 'node:module';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { getPaths, processPagesDir, getConfigPath, getPrismaSchemas, } from '@cedarjs/project-config';
|
|
11
|
+
import { BaseNode } from '../nodes.js';
|
|
12
|
+
import { lazy, memo } from '../x/decorators.js';
|
|
13
|
+
import { followsDirNameConvention, isCellFileName, isLayoutFileName, globSync, } from '../x/path.js';
|
|
14
|
+
import { URL_file } from '../x/URL.js';
|
|
15
|
+
import { RWCell } from './RWCell.js';
|
|
16
|
+
import { RWComponent } from './RWComponent.js';
|
|
17
|
+
import { RWEnvHelper } from './RWEnvHelper.js';
|
|
18
|
+
import { RWFunction } from './RWFunction.js';
|
|
19
|
+
import { RWLayout } from './RWLayout.js';
|
|
20
|
+
import { RWPage } from './RWPage.js';
|
|
21
|
+
import { RWRouter } from './RWRouter.js';
|
|
22
|
+
import { RWSDL } from './RWSDL.js';
|
|
23
|
+
import { RWService } from './RWService.js';
|
|
24
|
+
import { RWTOML } from './RWTOML.js';
|
|
25
|
+
// @prisma/internals is a CJS-only bundle that uses Object.defineProperty with
|
|
26
|
+
// getter functions for its exports. Node's ESM named-export static analysis
|
|
27
|
+
// cannot detect these, so we use createRequire to access them reliably.
|
|
28
|
+
const _require = createRequire(import.meta.url);
|
|
29
|
+
const { getDMMF } = _require('@prisma/internals');
|
|
32
30
|
const allFilesGlob = '/**/*.{js,jsx,ts,tsx}';
|
|
33
|
-
|
|
34
31
|
/**
|
|
35
32
|
* Represents a Redwood project.
|
|
36
33
|
* This is the root node.
|
|
37
34
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
export class RWProject extends BaseNode {
|
|
36
|
+
parent = undefined;
|
|
37
|
+
get id() {
|
|
38
|
+
return URL_file(this.pathHelper.base);
|
|
39
|
+
}
|
|
40
|
+
children() {
|
|
41
|
+
return [
|
|
42
|
+
this.cedarTOML,
|
|
43
|
+
...this.pages,
|
|
44
|
+
this.router,
|
|
45
|
+
...this.services,
|
|
46
|
+
...this.sdls,
|
|
47
|
+
...this.layouts,
|
|
48
|
+
...this.components,
|
|
49
|
+
this.envHelper,
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Path constants that are relevant to a Redwood project.
|
|
54
|
+
*/
|
|
55
|
+
get pathHelper() {
|
|
56
|
+
return getPaths();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Checks for the presence of a tsconfig.json at the root.
|
|
60
|
+
*/
|
|
61
|
+
get isTypeScriptProject() {
|
|
62
|
+
return (fs.existsSync(path.join(this.pathHelper.web.base, 'tsconfig.json')) ||
|
|
63
|
+
fs.existsSync(path.join(this.pathHelper.api.base, 'tsconfig.json')));
|
|
64
|
+
}
|
|
65
|
+
// TODO: do we move this to a separate node? (ex: RWDatabase)
|
|
66
|
+
async prismaDMMF() {
|
|
67
|
+
try {
|
|
68
|
+
const result = await getPrismaSchemas();
|
|
69
|
+
const datamodel = result.schemas;
|
|
70
|
+
// consider case where dmmf doesn't exist (or fails to parse)
|
|
71
|
+
return await getDMMF({ datamodel });
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async prismaDMMFModelNames() {
|
|
78
|
+
const dmmf = await this.prismaDMMF();
|
|
79
|
+
if (!dmmf) {
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
return dmmf.datamodel.models.map((m) => m.name);
|
|
83
|
+
}
|
|
84
|
+
get cedarTOML() {
|
|
85
|
+
return new RWTOML(getConfigPath(), this);
|
|
86
|
+
}
|
|
87
|
+
get processPagesDir() {
|
|
88
|
+
try {
|
|
89
|
+
return processPagesDir(this.pathHelper.web.pages);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
get pages() {
|
|
96
|
+
return this.processPagesDir.map((p) => new RWPage(p.constName, p.path, this));
|
|
97
|
+
}
|
|
98
|
+
get router() {
|
|
99
|
+
return this.getRouter();
|
|
100
|
+
}
|
|
101
|
+
getRouter = () => {
|
|
102
|
+
return new RWRouter(this.pathHelper.web.routes, this);
|
|
44
103
|
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
104
|
+
// TODO: move to path helper
|
|
105
|
+
servicesFilePath(name) {
|
|
106
|
+
// name = blog,posts
|
|
107
|
+
const ext = this.isTypeScriptProject ? '.ts' : '.js';
|
|
108
|
+
return path.join(this.pathHelper.api.services, name, name + ext);
|
|
109
|
+
}
|
|
110
|
+
// TODO: move to path helper
|
|
111
|
+
get defaultNotFoundPageFilePath() {
|
|
112
|
+
const ext = this.isTypeScriptProject ? '.tsx' : '.jsx';
|
|
113
|
+
return path.join(this.pathHelper.web.pages, 'NotFoundPage', 'NotFoundPage' + ext);
|
|
114
|
+
}
|
|
115
|
+
get services() {
|
|
116
|
+
// TODO: what is the official logic?
|
|
117
|
+
// TODO: Support both `/services/todos/todos.js` AND `/services/todos.js`
|
|
118
|
+
return globSync(this.pathHelper.api.services + allFilesGlob)
|
|
119
|
+
.filter(followsDirNameConvention)
|
|
120
|
+
.map((x) => new RWService(x, this));
|
|
121
|
+
}
|
|
122
|
+
get sdls() {
|
|
123
|
+
return globSync(this.pathHelper.api.graphql + '/**/*.sdl.{js,ts}').map((x) => new RWSDL(x, this));
|
|
124
|
+
}
|
|
125
|
+
get layouts() {
|
|
126
|
+
// TODO: what is the official logic?
|
|
127
|
+
return globSync(this.pathHelper.web.layouts + allFilesGlob)
|
|
128
|
+
.filter(followsDirNameConvention)
|
|
129
|
+
.filter(isLayoutFileName)
|
|
130
|
+
.map((x) => new RWLayout(x, this));
|
|
131
|
+
}
|
|
132
|
+
get functions() {
|
|
133
|
+
// TODO: what is the official logic?
|
|
134
|
+
return globSync(this.pathHelper.api.functions + allFilesGlob).map((x) => new RWFunction(x, this));
|
|
135
|
+
}
|
|
136
|
+
get components() {
|
|
137
|
+
return globSync(this.pathHelper.web.components + allFilesGlob).map((file) => {
|
|
138
|
+
if (isCellFileName(file)) {
|
|
139
|
+
const possibleCell = new RWCell(file, this);
|
|
140
|
+
return possibleCell.isCell
|
|
141
|
+
? possibleCell
|
|
142
|
+
: new RWComponent(file, this);
|
|
143
|
+
}
|
|
144
|
+
return new RWComponent(file, this);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
get sides() {
|
|
148
|
+
return ['web', 'api'];
|
|
149
|
+
}
|
|
150
|
+
// TODO: Wrap these in a real model.
|
|
151
|
+
get mocks() {
|
|
152
|
+
return globSync(this.pathHelper.web.base + '/**/*.mock.{js,ts}');
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* A "Cell" is a component that ends in `Cell.{js, jsx, tsx}`, but does not
|
|
156
|
+
* have a default export AND does not export `QUERY`
|
|
157
|
+
**/
|
|
158
|
+
get cells() {
|
|
159
|
+
return globSync(this.pathHelper.web.base + '/**/*Cell.{js,jsx,tsx}')
|
|
160
|
+
.map((file) => new RWCell(file, this))
|
|
161
|
+
.filter((file) => file.isCell);
|
|
162
|
+
}
|
|
163
|
+
get envHelper() {
|
|
164
|
+
return new RWEnvHelper(this);
|
|
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
|
+
}
|
|
202
|
+
}
|
|
203
|
+
__decorate([
|
|
204
|
+
lazy()
|
|
205
|
+
], RWProject.prototype, "id", null);
|
|
206
|
+
__decorate([
|
|
207
|
+
lazy()
|
|
208
|
+
], RWProject.prototype, "pathHelper", null);
|
|
209
|
+
__decorate([
|
|
210
|
+
lazy()
|
|
211
|
+
], RWProject.prototype, "isTypeScriptProject", null);
|
|
212
|
+
__decorate([
|
|
213
|
+
memo()
|
|
214
|
+
], RWProject.prototype, "prismaDMMF", null);
|
|
215
|
+
__decorate([
|
|
216
|
+
memo()
|
|
217
|
+
], RWProject.prototype, "prismaDMMFModelNames", null);
|
|
218
|
+
__decorate([
|
|
219
|
+
lazy()
|
|
220
|
+
], RWProject.prototype, "cedarTOML", null);
|
|
221
|
+
__decorate([
|
|
222
|
+
lazy()
|
|
223
|
+
], RWProject.prototype, "processPagesDir", null);
|
|
224
|
+
__decorate([
|
|
225
|
+
lazy()
|
|
226
|
+
], RWProject.prototype, "pages", null);
|
|
227
|
+
__decorate([
|
|
228
|
+
lazy()
|
|
229
|
+
], RWProject.prototype, "router", null);
|
|
230
|
+
__decorate([
|
|
231
|
+
lazy()
|
|
232
|
+
], RWProject.prototype, "defaultNotFoundPageFilePath", null);
|
|
233
|
+
__decorate([
|
|
234
|
+
lazy()
|
|
235
|
+
], RWProject.prototype, "services", null);
|
|
236
|
+
__decorate([
|
|
237
|
+
lazy()
|
|
238
|
+
], RWProject.prototype, "sdls", null);
|
|
239
|
+
__decorate([
|
|
240
|
+
lazy()
|
|
241
|
+
], RWProject.prototype, "layouts", null);
|
|
242
|
+
__decorate([
|
|
243
|
+
lazy()
|
|
244
|
+
], RWProject.prototype, "functions", null);
|
|
245
|
+
__decorate([
|
|
246
|
+
lazy()
|
|
247
|
+
], RWProject.prototype, "components", null);
|
|
248
|
+
__decorate([
|
|
249
|
+
lazy()
|
|
250
|
+
], RWProject.prototype, "sides", null);
|
|
251
|
+
__decorate([
|
|
252
|
+
lazy()
|
|
253
|
+
], RWProject.prototype, "mocks", null);
|
|
254
|
+
__decorate([
|
|
255
|
+
lazy()
|
|
256
|
+
], RWProject.prototype, "cells", null);
|
|
257
|
+
__decorate([
|
|
258
|
+
lazy()
|
|
259
|
+
], RWProject.prototype, "envHelper", null);
|
|
260
|
+
__decorate([
|
|
261
|
+
lazy()
|
|
262
|
+
], RWProject.prototype, "requireAuthMutationFields", null);
|
|
263
|
+
//# sourceMappingURL=RWProject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RWProject.js","sourceRoot":"","sources":["../../src/model/RWProject.ts"],"names":[],"mappings":"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"}
|
package/dist/model/RWRoute.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as tsm from 'ts-morph';
|
|
2
|
-
import { BaseNode } from '../nodes';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
2
|
+
import { BaseNode } from '../nodes.js';
|
|
3
|
+
import type { ExtendedDiagnostic } from '../x/diagnostics.js';
|
|
4
|
+
import type { Location } from '../x/Location.js';
|
|
5
|
+
import type { RWRouter } from './RWRouter.js';
|
|
5
6
|
export declare class RWRoute extends BaseNode {
|
|
6
7
|
/**
|
|
7
8
|
* the <Route> tag
|
|
@@ -15,15 +16,30 @@ export declare class RWRoute extends BaseNode {
|
|
|
15
16
|
jsxNode: tsm.JsxSelfClosingElement, parent: RWRouter);
|
|
16
17
|
get id(): string;
|
|
17
18
|
get location(): Location;
|
|
19
|
+
/**
|
|
20
|
+
* All enclosing `<Private>` / `<PrivateSet>` JSX elements, walking up from
|
|
21
|
+
* this route's `<Route>` tag to (but not including) the `<Router>` tag.
|
|
22
|
+
* Ordered innermost-first, so `privateAncestors[0]` (if present) is the
|
|
23
|
+
* nearest wrapper. A route can be nested inside a plain `<Set>` that is
|
|
24
|
+
* itself inside a `<PrivateSet>`, so we can't just look at the immediate
|
|
25
|
+
* JSX parent.
|
|
26
|
+
*/
|
|
27
|
+
private get privateAncestors();
|
|
18
28
|
get isPrivate(): boolean;
|
|
19
29
|
get unauthenticated(): string | undefined;
|
|
20
|
-
get roles(): string |
|
|
30
|
+
get roles(): string | string[] | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Reads the `roles` attribute off a `<Private>`/`<PrivateSet>` opening
|
|
33
|
+
* element, handling the string literal, quasi-JSON string
|
|
34
|
+
* (e.g. `"['a','b']"`), and JSX array-literal expression forms.
|
|
35
|
+
*/
|
|
36
|
+
private getRolesAttr;
|
|
21
37
|
get hasParameters(): boolean;
|
|
22
38
|
get hasPrerender(): boolean;
|
|
23
39
|
/**
|
|
24
40
|
* The associated Redwood Page node, if any
|
|
25
41
|
*/
|
|
26
|
-
get page(): import("./RWPage").RWPage | undefined;
|
|
42
|
+
get page(): import("./RWPage.ts").RWPage | undefined;
|
|
27
43
|
/**
|
|
28
44
|
* <Route path="" page={THIS_IDENTIFIER}/>
|
|
29
45
|
*/
|
|
@@ -37,7 +53,17 @@ export declare class RWRoute extends BaseNode {
|
|
|
37
53
|
get path_literal_node(): tsm.StringLiteral | undefined;
|
|
38
54
|
get isNotFound(): boolean;
|
|
39
55
|
get redirect(): string | undefined;
|
|
40
|
-
diagnostics(): Generator<
|
|
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();
|
|
41
67
|
private get hasPathCollision();
|
|
42
68
|
private getBoolAttr;
|
|
43
69
|
private getStringAttr;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RWRoute.d.ts","sourceRoot":"","sources":["../../src/model/RWRoute.ts"],"names":[],"mappings":"
|
|
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"}
|