strapi-typed-client 1.6.1 → 2.0.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.
Files changed (68) hide show
  1. package/README.md +2 -2
  2. package/dist/cli/commands/check.d.ts +2 -3
  3. package/dist/cli/commands/check.d.ts.map +1 -1
  4. package/dist/cli/commands/check.js +3 -3
  5. package/dist/cli/commands/check.js.map +1 -1
  6. package/dist/cli/commands/generate.d.ts +3 -3
  7. package/dist/cli/commands/generate.d.ts.map +1 -1
  8. package/dist/cli/commands/generate.js +6 -4
  9. package/dist/cli/commands/generate.js.map +1 -1
  10. package/dist/cli/commands/watch.d.ts +3 -3
  11. package/dist/cli/commands/watch.d.ts.map +1 -1
  12. package/dist/cli/commands/watch.js +19 -9
  13. package/dist/cli/commands/watch.js.map +1 -1
  14. package/dist/cli/utils/file-writer.d.ts +8 -7
  15. package/dist/cli/utils/file-writer.d.ts.map +1 -1
  16. package/dist/cli/utils/file-writer.js +17 -61
  17. package/dist/cli/utils/file-writer.js.map +1 -1
  18. package/dist/core/endpoint-converter.d.ts +5 -1
  19. package/dist/core/endpoint-converter.d.ts.map +1 -1
  20. package/dist/core/endpoint-converter.js +114 -8
  21. package/dist/core/endpoint-converter.js.map +1 -1
  22. package/dist/generator/auth-api-generator.d.ts +11 -3
  23. package/dist/generator/auth-api-generator.d.ts.map +1 -1
  24. package/dist/generator/auth-api-generator.js +213 -220
  25. package/dist/generator/auth-api-generator.js.map +1 -1
  26. package/dist/generator/client-generator.d.ts +9 -0
  27. package/dist/generator/client-generator.d.ts.map +1 -1
  28. package/dist/generator/client-generator.js +201 -78
  29. package/dist/generator/client-generator.js.map +1 -1
  30. package/dist/generator/custom-api-generator.d.ts +1 -1
  31. package/dist/generator/custom-api-generator.d.ts.map +1 -1
  32. package/dist/generator/custom-api-generator.js +29 -5
  33. package/dist/generator/custom-api-generator.js.map +1 -1
  34. package/dist/generator/index-generator.d.ts.map +1 -1
  35. package/dist/generator/index-generator.js +0 -1
  36. package/dist/generator/index-generator.js.map +1 -1
  37. package/dist/generator/index.d.ts +18 -1
  38. package/dist/generator/index.d.ts.map +1 -1
  39. package/dist/generator/index.js +85 -9
  40. package/dist/generator/index.js.map +1 -1
  41. package/dist/generator/plugin-api-generator.d.ts +2 -0
  42. package/dist/generator/plugin-api-generator.d.ts.map +1 -1
  43. package/dist/generator/plugin-api-generator.js +23 -1
  44. package/dist/generator/plugin-api-generator.js.map +1 -1
  45. package/dist/generator/plugin-registry.d.ts +5 -0
  46. package/dist/generator/plugin-registry.d.ts.map +1 -1
  47. package/dist/generator/plugin-registry.js +2 -1
  48. package/dist/generator/plugin-registry.js.map +1 -1
  49. package/dist/generator/types-generator.d.ts +13 -3
  50. package/dist/generator/types-generator.d.ts.map +1 -1
  51. package/dist/generator/types-generator.js +91 -101
  52. package/dist/generator/types-generator.js.map +1 -1
  53. package/dist/next/index.d.ts +9 -1
  54. package/dist/next/index.d.ts.map +1 -1
  55. package/dist/next/index.js +46 -45
  56. package/dist/next/index.js.map +1 -1
  57. package/dist/schema-types.d.ts +1 -1
  58. package/dist/schema-types.d.ts.map +1 -1
  59. package/dist/shared/client-header.d.ts +19 -0
  60. package/dist/shared/client-header.d.ts.map +1 -0
  61. package/dist/shared/client-header.js +58 -0
  62. package/dist/shared/client-header.js.map +1 -0
  63. package/package.json +9 -15
  64. package/dist/index.d.ts +0 -102
  65. package/dist/index.d.ts.map +0 -1
  66. package/dist/index.js +0 -79
  67. package/dist/index.js.map +0 -1
  68. package/src/generator/templates/stringify-query.ts +0 -36
@@ -35,13 +35,90 @@ export function convertEndpointsToRoutes(endpoints) {
35
35
  }
36
36
  return { byController, all };
37
37
  }
38
+ /**
39
+ * TS built-in / global type names that are always valid in a type expression
40
+ * and must never be treated as unresolved. Primitives (string, number, …) are
41
+ * lowercase so they aren't matched by the capitalised-identifier scan.
42
+ */
43
+ const TS_BUILTIN_TYPES = new Set([
44
+ 'Array',
45
+ 'ReadonlyArray',
46
+ 'Record',
47
+ 'Partial',
48
+ 'Required',
49
+ 'Readonly',
50
+ 'Pick',
51
+ 'Omit',
52
+ 'Exclude',
53
+ 'Extract',
54
+ 'NonNullable',
55
+ 'Parameters',
56
+ 'ReturnType',
57
+ 'InstanceType',
58
+ 'Awaited',
59
+ 'Promise',
60
+ 'Map',
61
+ 'Set',
62
+ 'WeakMap',
63
+ 'WeakSet',
64
+ 'Date',
65
+ 'RegExp',
66
+ 'Error',
67
+ 'Object',
68
+ 'String',
69
+ 'Number',
70
+ 'Boolean',
71
+ 'Function',
72
+ 'Symbol',
73
+ 'BigInt',
74
+ 'Uint8Array',
75
+ 'ArrayBuffer',
76
+ 'Blob',
77
+ 'File',
78
+ 'FormData',
79
+ ]);
80
+ /**
81
+ * Custom-endpoint type strings are scraped verbatim from controller source, so
82
+ * they can reference named types that only exist in the controller's module
83
+ * (imported, never shipped) — emitting those would produce `Cannot find name`
84
+ * errors. Replace any capitalised identifier that isn't a TS built-in or a
85
+ * known generated/local type with `unknown` so the client always compiles.
86
+ * Full cross-module resolution is deferred to the ts-morph Endpoints parser.
87
+ *
88
+ * Heuristic and deliberately conservative: string literals are masked so names
89
+ * inside them are left alone, and identifiers in object-key position (followed
90
+ * by `:`) are treated as keys, not type references. Collects the names it
91
+ * dropped into `unresolved`.
92
+ */
93
+ function sanitizeTypeRefs(typeStr, known, unresolved) {
94
+ // Mask string literals ('...' / "...") so identifiers inside them survive.
95
+ const literals = [];
96
+ const masked = typeStr.replace(/'[^']*'|"[^"]*"/g, m => {
97
+ literals.push(m);
98
+ return `${literals.length - 1}`;
99
+ });
100
+ const scanned = masked.replace(/\b[A-Z][A-Za-z0-9_]*\b/g, (name, offset, full) => {
101
+ // Skip object keys / labels: identifier immediately followed by `:`.
102
+ if (/^\s*:/.test(full.slice(offset + name.length)))
103
+ return name;
104
+ if (TS_BUILTIN_TYPES.has(name) || known.has(name))
105
+ return name;
106
+ unresolved.add(name);
107
+ return 'unknown';
108
+ });
109
+ return scanned.replace(/(\d+)/g, (_, i) => literals[Number(i)]);
110
+ }
38
111
  /**
39
112
  * Convert ParsedEndpoint[] to ParsedCustomTypes format
40
113
  *
41
114
  * Extracts inline type definitions from endpoint types (body/response)
42
115
  * and creates handler-to-type mappings.
116
+ *
117
+ * `knownTypeNames` is the set of type names the generated client defines
118
+ * (content-type + component cleanNames, MediaFile, extra controller types) so
119
+ * the sanitizer can tell a resolvable reference from a dangling one.
43
120
  */
44
- export function convertEndpointsToCustomTypes(endpoints, extraTypes) {
121
+ export function convertEndpointsToCustomTypes(endpoints, extraTypes, knownTypeNames = new Set()) {
45
122
  const types = new Map();
46
123
  const typeDefinitions = [];
47
124
  const namespaceImports = [];
@@ -78,15 +155,36 @@ export function convertEndpointsToCustomTypes(endpoints, extraTypes) {
78
155
  const namespaceName = toPascalCasePreserve(controller) + 'API';
79
156
  const namespaceLines = [];
80
157
  namespaceLines.push(`export namespace ${namespaceName} {`);
81
- // Add extra (standalone) types first
82
158
  const controllerExtraTypes = extraByController.get(controller);
159
+ const controllerEndpoints = byController.get(controller);
160
+ // Names this namespace itself defines — added to the known set so a
161
+ // reference to a sibling type in the same namespace isn't mistaken for
162
+ // an unresolved one by the sanitizer.
163
+ const ownNames = new Set();
164
+ if (controllerExtraTypes) {
165
+ for (const extra of controllerExtraTypes)
166
+ ownNames.add(extra.typeName);
167
+ }
168
+ if (controllerEndpoints) {
169
+ for (const endpoint of controllerEndpoints) {
170
+ if (!endpoint.types)
171
+ continue;
172
+ const ap = toPascalCasePreserve(endpoint.action);
173
+ if (endpoint.types.body)
174
+ ownNames.add(`${ap}Request`);
175
+ if (endpoint.types.response)
176
+ ownNames.add(`${ap}Response`);
177
+ }
178
+ }
179
+ const nsKnown = new Set([...knownTypeNames, ...ownNames]);
180
+ const unresolved = new Set();
181
+ // Add extra (standalone) types first
83
182
  if (controllerExtraTypes) {
84
183
  for (const extra of controllerExtraTypes) {
85
- namespaceLines.push(` export type ${extra.typeName} = ${extra.typeDefinition}`);
184
+ namespaceLines.push(` export type ${extra.typeName} = ${sanitizeTypeRefs(extra.typeDefinition, nsKnown, unresolved)}`);
86
185
  }
87
186
  }
88
187
  // Add endpoint-derived types
89
- const controllerEndpoints = byController.get(controller);
90
188
  if (controllerEndpoints) {
91
189
  for (const endpoint of controllerEndpoints) {
92
190
  if (!endpoint.types)
@@ -95,7 +193,7 @@ export function convertEndpointsToCustomTypes(endpoints, extraTypes) {
95
193
  // Generate Request type from body
96
194
  if (endpoint.types.body) {
97
195
  const typeName = `${actionPascal}Request`;
98
- namespaceLines.push(` export type ${typeName} = ${endpoint.types.body}`);
196
+ namespaceLines.push(` export type ${typeName} = ${sanitizeTypeRefs(endpoint.types.body, nsKnown, unresolved)}`);
99
197
  // Map handler to input type
100
198
  const existing = types.get(endpoint.handler) || {
101
199
  handler: endpoint.handler,
@@ -108,7 +206,7 @@ export function convertEndpointsToCustomTypes(endpoints, extraTypes) {
108
206
  const typeName = `${actionPascal}Response`;
109
207
  // Unwrap { data: ... } wrapper — StrapiClient already does response.data
110
208
  const unwrappedResponse = unwrapDataWrapper(endpoint.types.response);
111
- namespaceLines.push(` export type ${typeName} = ${unwrappedResponse}`);
209
+ namespaceLines.push(` export type ${typeName} = ${sanitizeTypeRefs(unwrappedResponse, nsKnown, unresolved)}`);
112
210
  // Map handler to output type
113
211
  const existing = types.get(endpoint.handler) || {
114
212
  handler: endpoint.handler,
@@ -118,9 +216,17 @@ export function convertEndpointsToCustomTypes(endpoints, extraTypes) {
118
216
  }
119
217
  }
120
218
  }
219
+ // If any referenced name couldn't be resolved we degraded it to
220
+ // `unknown` — leave a discoverable note in the committed output. Full
221
+ // cross-module resolution is deferred to the ts-morph Endpoints parser.
222
+ if (unresolved.size > 0) {
223
+ namespaceLines.splice(1, 0, ` // NOTE: ${[...unresolved].sort().join(', ')} could not be resolved from the schema and fall back to \`unknown\` (custom-endpoint types referencing controller-local types).`);
224
+ }
121
225
  namespaceLines.push('}');
122
- // Only add namespace if it has content
123
- if (namespaceLines.length > 2) {
226
+ // Only add namespace if it has real content (open + close, plus an
227
+ // optional NOTE, is empty).
228
+ const minLines = unresolved.size > 0 ? 3 : 2;
229
+ if (namespaceLines.length > minLines) {
124
230
  typeDefinitions.push(namespaceLines.join('\n'));
125
231
  namespaceImports.push(namespaceName);
126
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-converter.js","sourceRoot":"","sources":["../../src/core/endpoint-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-converter.js","sourceRoot":"","sources":["../../src/core/endpoint-converter.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,21 @@ import { ParsedRoute } from '../shared/route-types.js';
2
2
  export declare class AuthApiGenerator {
3
3
  generateAuthTypes(): string;
4
4
  generateAuthApiClass(authRoutes?: ParsedRoute[], userRoutes?: ParsedRoute[]): string;
5
- private generateHardcodedAuthApiClass;
6
- private generateDynamicAuthApiClass;
7
- private generateDynamicAuthMethod;
5
+ private buildAuthApiClass;
6
+ /**
7
+ * The method name a route will be emitted under — mirrors the renames in
8
+ * generateAuthMethod (login, confirmEmail). Used to detect collisions with
9
+ * the injected client-side helpers.
10
+ */
11
+ private methodNameFor;
12
+ private generateAuthMethod;
8
13
  private getReturnType;
9
14
  private generateMeMethod;
10
15
  private generateUpdateMeMethod;
11
16
  private generateCallbackMethod;
17
+ private generateConfirmEmailMethod;
18
+ private generateSendEmailConfirmationMethod;
19
+ private generateClientSideHelpers;
12
20
  private generateAuthMethodParams;
13
21
  private generateAuthPathExpression;
14
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth-api-generator.d.ts","sourceRoot":"","sources":["../../src/generator/auth-api-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,qBAAa,gBAAgB;IACzB,iBAAiB,IAAI,MAAM;IAkF3B,oBAAoB,CAChB,UAAU,GAAE,WAAW,EAAO,EAC9B,UAAU,GAAE,WAAW,EAAO,GAC/B,MAAM;IAYT,OAAO,CAAC,6BAA6B;IAiMrC,OAAO,CAAC,2BAA2B;IAgCnC,OAAO,CAAC,yBAAyB;IAoEjC,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,sBAAsB;IA2C9B,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,wBAAwB;IAoChC,OAAO,CAAC,0BAA0B;CAWrC"}
1
+ {"version":3,"file":"auth-api-generator.d.ts","sourceRoot":"","sources":["../../src/generator/auth-api-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AA+FtD,qBAAa,gBAAgB;IACzB,iBAAiB,IAAI,MAAM;IAqG3B,oBAAoB,CAChB,UAAU,GAAE,WAAW,EAAO,EAC9B,UAAU,GAAE,WAAW,EAAO,GAC/B,MAAM;IAkBT,OAAO,CAAC,iBAAiB;IA+CzB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,kBAAkB;IAqE1B,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,sBAAsB;IA2C9B,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,mCAAmC;IAe3C,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,wBAAwB;IAoChC,OAAO,CAAC,0BAA0B;CAWrC"}