strapi-typed-client 1.2.2 → 1.2.4

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 (49) hide show
  1. package/dist/cli/commands/generate.js +1 -1
  2. package/dist/cli/commands/generate.js.map +1 -1
  3. package/dist/cli/index.d.ts +0 -1
  4. package/dist/cli/index.d.ts.map +1 -1
  5. package/dist/cli/index.js +0 -1
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/core/endpoint-converter.d.ts +2 -2
  8. package/dist/core/endpoint-converter.d.ts.map +1 -1
  9. package/dist/core/schema-transformer.js +1 -0
  10. package/dist/core/schema-transformer.js.map +1 -1
  11. package/dist/generator/auth-api-generator.d.ts +1 -1
  12. package/dist/generator/auth-api-generator.d.ts.map +1 -1
  13. package/dist/generator/auth-api-generator.js +2 -3
  14. package/dist/generator/auth-api-generator.js.map +1 -1
  15. package/dist/generator/client-generator.d.ts +1 -3
  16. package/dist/generator/client-generator.d.ts.map +1 -1
  17. package/dist/generator/client-generator.js +1 -17
  18. package/dist/generator/client-generator.js.map +1 -1
  19. package/dist/generator/custom-api-generator.d.ts +2 -2
  20. package/dist/generator/custom-api-generator.d.ts.map +1 -1
  21. package/dist/generator/index.d.ts +1 -2
  22. package/dist/generator/index.d.ts.map +1 -1
  23. package/dist/generator/index.js +2 -4
  24. package/dist/generator/index.js.map +1 -1
  25. package/dist/generator/types-generator.d.ts.map +1 -1
  26. package/dist/generator/types-generator.js +2 -0
  27. package/dist/generator/types-generator.js.map +1 -1
  28. package/dist/schema-types.d.ts +1 -0
  29. package/dist/schema-types.d.ts.map +1 -1
  30. package/dist/shared/custom-types.d.ts +17 -0
  31. package/dist/shared/custom-types.d.ts.map +1 -0
  32. package/dist/shared/custom-types.js +2 -0
  33. package/dist/shared/custom-types.js.map +1 -0
  34. package/dist/{parser/routes-parser.d.ts → shared/route-types.d.ts} +1 -9
  35. package/dist/shared/route-types.d.ts.map +1 -0
  36. package/dist/shared/route-types.js +2 -0
  37. package/dist/shared/route-types.js.map +1 -0
  38. package/package.json +1 -1
  39. package/dist/parser/custom-types-parser.d.ts +0 -39
  40. package/dist/parser/custom-types-parser.d.ts.map +0 -1
  41. package/dist/parser/custom-types-parser.js +0 -206
  42. package/dist/parser/custom-types-parser.js.map +0 -1
  43. package/dist/parser/index.d.ts +0 -23
  44. package/dist/parser/index.d.ts.map +0 -1
  45. package/dist/parser/index.js +0 -462
  46. package/dist/parser/index.js.map +0 -1
  47. package/dist/parser/routes-parser.d.ts.map +0 -1
  48. package/dist/parser/routes-parser.js +0 -216
  49. package/dist/parser/routes-parser.js.map +0 -1
@@ -1,462 +0,0 @@
1
- import * as ts from 'typescript';
2
- import * as fs from 'fs';
3
- import * as path from 'path';
4
- import { convertComponentName, toPascalCase } from '../shared/index.js';
5
- import { PRIVATE_FIELDS } from '../shared/constants.js';
6
- export class StrapiTypeParser {
7
- inputDir;
8
- constructor(inputDir) {
9
- this.inputDir = inputDir;
10
- }
11
- parse() {
12
- const contentTypesPath = path.join(this.inputDir, 'contentTypes.d.ts');
13
- const componentsPath = path.join(this.inputDir, 'components.d.ts');
14
- const contentTypes = this.parseContentTypes(contentTypesPath);
15
- const components = this.parseComponents(componentsPath);
16
- return { contentTypes, components };
17
- }
18
- parseContentTypes(filePath) {
19
- const sourceFile = ts.createSourceFile(filePath, fs.readFileSync(filePath, 'utf-8'), ts.ScriptTarget.Latest, true);
20
- const contentTypes = [];
21
- ts.forEachChild(sourceFile, node => {
22
- if (ts.isInterfaceDeclaration(node) && node.name) {
23
- const interfaceName = node.name.text;
24
- // Parse API types and users-permissions plugin types (User, Role)
25
- // Skip all other Plugin types (system models we can't interact with)
26
- const isUsersPermissionsType = interfaceName === 'PluginUsersPermissionsUser' ||
27
- interfaceName === 'PluginUsersPermissionsRole';
28
- if (!interfaceName.startsWith('Api') &&
29
- !isUsersPermissionsType) {
30
- return;
31
- }
32
- const contentType = this.parseContentType(node, interfaceName);
33
- if (contentType) {
34
- contentTypes.push(contentType);
35
- }
36
- }
37
- });
38
- return contentTypes;
39
- }
40
- parseComponents(filePath) {
41
- const sourceFile = ts.createSourceFile(filePath, fs.readFileSync(filePath, 'utf-8'), ts.ScriptTarget.Latest, true);
42
- const components = [];
43
- ts.forEachChild(sourceFile, node => {
44
- if (ts.isInterfaceDeclaration(node) && node.name) {
45
- const interfaceName = node.name.text;
46
- // Skip the ComponentSchemas declaration
47
- if (interfaceName === 'ComponentSchemas') {
48
- return;
49
- }
50
- const component = this.parseComponent(node, interfaceName);
51
- if (component) {
52
- components.push(component);
53
- }
54
- }
55
- });
56
- return components;
57
- }
58
- parseContentType(node, interfaceName) {
59
- let collectionName = '';
60
- let kind = 'collection';
61
- const attributes = [];
62
- const relations = [];
63
- const media = [];
64
- const components = [];
65
- const dynamicZones = [];
66
- // Find the heritage clause to determine kind
67
- if (node.heritageClauses) {
68
- for (const clause of node.heritageClauses) {
69
- for (const type of clause.types) {
70
- const typeText = type.expression.getText();
71
- if (typeText.includes('SingleTypeSchema')) {
72
- kind = 'single';
73
- }
74
- }
75
- }
76
- }
77
- // Parse members
78
- for (const member of node.members) {
79
- if (ts.isPropertySignature(member) && member.name) {
80
- const memberName = member.name.getText();
81
- if (memberName === 'collectionName' && member.type) {
82
- collectionName = this.extractStringLiteral(member.type);
83
- }
84
- if (memberName === 'attributes' &&
85
- member.type &&
86
- ts.isTypeLiteralNode(member.type)) {
87
- for (const attr of member.type.members) {
88
- const parsed = this.parseAttributeOrRelation(attr);
89
- if (parsed) {
90
- if (parsed.type === 'relation') {
91
- relations.push(parsed.data);
92
- }
93
- else if (parsed.type === 'media') {
94
- media.push(parsed.data);
95
- }
96
- else if (parsed.type === 'component') {
97
- components.push(parsed.data);
98
- }
99
- else if (parsed.type === 'dynamiczone') {
100
- dynamicZones.push(parsed.data);
101
- }
102
- else {
103
- attributes.push(parsed.data);
104
- }
105
- }
106
- }
107
- }
108
- }
109
- }
110
- // Generate clean name from interface name
111
- // ApiItemItem -> Item
112
- const cleanName = this.extractCleanName(interfaceName);
113
- // Detect plugin content types
114
- const pluginName = interfaceName.startsWith('PluginUsersPermissions')
115
- ? 'users-permissions'
116
- : undefined;
117
- return {
118
- name: interfaceName,
119
- cleanName,
120
- collectionName,
121
- kind,
122
- pluginName,
123
- attributes,
124
- relations,
125
- media,
126
- components,
127
- dynamicZones,
128
- };
129
- }
130
- parseComponent(node, interfaceName) {
131
- const attributes = [];
132
- const relations = [];
133
- const media = [];
134
- const components = [];
135
- const dynamicZones = [];
136
- // Parse members
137
- for (const member of node.members) {
138
- if (ts.isPropertySignature(member) &&
139
- member.name &&
140
- member.name.getText() === 'attributes' &&
141
- member.type &&
142
- ts.isTypeLiteralNode(member.type)) {
143
- for (const attr of member.type.members) {
144
- const parsed = this.parseAttributeOrRelation(attr);
145
- if (parsed) {
146
- if (parsed.type === 'relation') {
147
- relations.push(parsed.data);
148
- }
149
- else if (parsed.type === 'media') {
150
- media.push(parsed.data);
151
- }
152
- else if (parsed.type === 'component') {
153
- components.push(parsed.data);
154
- }
155
- else if (parsed.type === 'dynamiczone') {
156
- dynamicZones.push(parsed.data);
157
- }
158
- else {
159
- attributes.push(parsed.data);
160
- }
161
- }
162
- }
163
- }
164
- }
165
- // Extract category from name (e.g., LandingEditorFeature -> "landing")
166
- const category = this.extractComponentCategory(interfaceName);
167
- return {
168
- name: interfaceName,
169
- cleanName: interfaceName,
170
- category,
171
- attributes,
172
- relations,
173
- media,
174
- components,
175
- dynamicZones,
176
- };
177
- }
178
- parseAttributeOrRelation(member) {
179
- if (!ts.isPropertySignature(member) || !member.name) {
180
- return null;
181
- }
182
- const attrName = member.name.getText();
183
- // Skip system fields
184
- const systemFields = ['createdAt', 'updatedAt', ...PRIVATE_FIELDS];
185
- if (systemFields.includes(attrName)) {
186
- return null;
187
- }
188
- if (!member.type) {
189
- return null;
190
- }
191
- const typeInfo = this.parseAttributeType(member.type);
192
- if (!typeInfo) {
193
- return null;
194
- }
195
- // Check if Private
196
- if (this.isPrivateAttribute(member.type)) {
197
- return null;
198
- }
199
- const required = this.isRequiredAttribute(member.type);
200
- // If it's a relation, return as relation
201
- if (typeInfo.kind === 'relation') {
202
- // Skip system relations (admin:: and plugin:: except users-permissions entities)
203
- const target = typeInfo.target;
204
- // Allow plugin::users-permissions.user and plugin::users-permissions.role
205
- const isAllowedPluginRelation = target === 'plugin::users-permissions.user' ||
206
- target === 'plugin::users-permissions.role';
207
- if (target.startsWith('admin::') ||
208
- (target.startsWith('plugin::') && !isAllowedPluginRelation)) {
209
- return null;
210
- }
211
- const targetType = this.extractTargetTypeName(typeInfo.target);
212
- return {
213
- type: 'relation',
214
- data: {
215
- name: attrName,
216
- relationType: typeInfo.relationType,
217
- target: typeInfo.target,
218
- targetType,
219
- required,
220
- },
221
- };
222
- }
223
- // If it's media, return as media
224
- if (typeInfo.kind === 'media') {
225
- return {
226
- type: 'media',
227
- data: {
228
- name: attrName,
229
- multiple: typeInfo.multiple || false,
230
- required,
231
- },
232
- };
233
- }
234
- // If it's component, return as component
235
- if (typeInfo.kind === 'component') {
236
- const componentType = convertComponentName(typeInfo.component);
237
- return {
238
- type: 'component',
239
- data: {
240
- name: attrName,
241
- component: typeInfo.component,
242
- componentType,
243
- repeatable: typeInfo.repeatable || false,
244
- required,
245
- },
246
- };
247
- }
248
- // If it's dynamiczone, return as dynamiczone
249
- if (typeInfo.kind === 'dynamiczone') {
250
- const componentTypes = typeInfo.components.map(c => convertComponentName(c));
251
- return {
252
- type: 'dynamiczone',
253
- data: {
254
- name: attrName,
255
- components: typeInfo.components,
256
- componentTypes,
257
- required,
258
- },
259
- };
260
- }
261
- // Otherwise return as attribute
262
- return {
263
- type: 'attribute',
264
- data: {
265
- name: attrName,
266
- type: typeInfo,
267
- required,
268
- },
269
- };
270
- }
271
- parseAttributeType(typeNode) {
272
- const typeText = typeNode.getText().replace(/\s+/g, ' ');
273
- // DynamicZone (check first as it's most specific)
274
- if (typeText.includes('Schema.Attribute.DynamicZone')) {
275
- const dynamicZoneInfo = this.extractDynamicZoneInfo(typeText);
276
- if (dynamicZoneInfo) {
277
- return dynamicZoneInfo;
278
- }
279
- }
280
- // Component
281
- if (typeText.includes('Schema.Attribute.Component')) {
282
- const componentInfo = this.extractComponentInfo(typeText);
283
- if (componentInfo) {
284
- return componentInfo;
285
- }
286
- }
287
- // Relation
288
- if (typeText.includes('Schema.Attribute.Relation')) {
289
- const relation = this.extractRelationInfo(typeText);
290
- if (relation) {
291
- return relation;
292
- }
293
- }
294
- // Media
295
- if (typeText.includes('Schema.Attribute.Media')) {
296
- // Check if it's multiple: Media<'images', true>
297
- const mediaMatch = typeText.match(/Media<[^,]+,\s*true/);
298
- return { kind: 'media', multiple: !!mediaMatch };
299
- }
300
- // Enumeration
301
- if (typeText.includes('Schema.Attribute.Enumeration')) {
302
- const values = this.extractEnumValues(typeText);
303
- return { kind: 'enumeration', values };
304
- }
305
- // Simple types
306
- if (typeText.includes('Schema.Attribute.String'))
307
- return { kind: 'string' };
308
- if (typeText.includes('Schema.Attribute.Text'))
309
- return { kind: 'text' };
310
- if (typeText.includes('Schema.Attribute.RichText'))
311
- return { kind: 'richtext' };
312
- if (typeText.includes('Schema.Attribute.Blocks'))
313
- return { kind: 'blocks' };
314
- if (typeText.includes('Schema.Attribute.Email'))
315
- return { kind: 'email' };
316
- if (typeText.includes('Schema.Attribute.Integer'))
317
- return { kind: 'integer' };
318
- if (typeText.includes('Schema.Attribute.BigInteger'))
319
- return { kind: 'biginteger' };
320
- if (typeText.includes('Schema.Attribute.Float'))
321
- return { kind: 'float' };
322
- if (typeText.includes('Schema.Attribute.Decimal'))
323
- return { kind: 'decimal' };
324
- if (typeText.includes('Schema.Attribute.Boolean'))
325
- return { kind: 'boolean' };
326
- if (typeText.includes('Schema.Attribute.Date') &&
327
- !typeText.includes('DateTime'))
328
- return { kind: 'date' };
329
- if (typeText.includes('Schema.Attribute.DateTime'))
330
- return { kind: 'datetime' };
331
- if (typeText.includes('Schema.Attribute.Time'))
332
- return { kind: 'time' };
333
- if (typeText.includes('Schema.Attribute.JSON'))
334
- return { kind: 'json' };
335
- return null;
336
- }
337
- isPrivateAttribute(typeNode) {
338
- return typeNode.getText().includes('Schema.Attribute.Private');
339
- }
340
- isRequiredAttribute(typeNode) {
341
- return typeNode.getText().includes('Schema.Attribute.Required');
342
- }
343
- extractStringLiteral(typeNode) {
344
- if (ts.isLiteralTypeNode(typeNode) &&
345
- ts.isStringLiteral(typeNode.literal)) {
346
- return typeNode.literal.text;
347
- }
348
- return '';
349
- }
350
- extractEnumValues(typeText) {
351
- // Extract from Schema.Attribute.Enumeration<['value1', 'value2']>
352
- // Handle optional whitespace: Enumeration< [ ... ] >
353
- const match = typeText.match(/Enumeration<\s*\[(.*?)\]\s*>/);
354
- if (match) {
355
- return match[1]
356
- .split(',')
357
- .map(v => v.trim().replace(/['"]/g, ''))
358
- .filter(Boolean);
359
- }
360
- return [];
361
- }
362
- extractRelationInfo(typeText) {
363
- // Extract from Schema.Attribute.Relation<'oneToOne', 'api::item.item'>
364
- // Note: Some Strapi schemas have spaces after < : Relation< 'manyToOne', '...' >
365
- const match = typeText.match(/Relation<\s*'(\w+)',\s*'([^']+)'/);
366
- if (match) {
367
- const relationType = match[1];
368
- const target = match[2];
369
- return {
370
- kind: 'relation',
371
- relationType,
372
- target,
373
- };
374
- }
375
- return null;
376
- }
377
- extractComponentInfo(typeText) {
378
- // Extract from Schema.Attribute.Component<'shared.feature', true>
379
- // Also handles cases with decorators like SetMinMax after
380
- // Handle both single line and multiline formats
381
- const match = typeText.match(/Component<\s*'([^']+)'\s*(?:,\s*(true|false))?\s*>/);
382
- if (match) {
383
- const component = match[1];
384
- const repeatable = match[2] === 'true';
385
- return {
386
- kind: 'component',
387
- component,
388
- repeatable,
389
- };
390
- }
391
- return null;
392
- }
393
- extractDynamicZoneInfo(typeText) {
394
- // Extract from Schema.Attribute.DynamicZone<['shared.feature', 'landing.editor-feature']>
395
- // Handle both single line and multiline formats
396
- const match = typeText.match(/DynamicZone<\s*\[(.*?)\]\s*>/);
397
- if (match) {
398
- const componentsStr = match[1];
399
- // Extract component names from the array: 'shared.feature', 'landing.editor-feature'
400
- const components = componentsStr
401
- .split(',')
402
- .map(c => c.trim().replace(/['"]/g, ''))
403
- .filter(Boolean);
404
- return {
405
- kind: 'dynamiczone',
406
- components,
407
- };
408
- }
409
- return null;
410
- }
411
- extractCleanName(interfaceName) {
412
- // Handle Plugin types
413
- if (interfaceName === 'PluginUsersPermissionsUser') {
414
- return 'User';
415
- }
416
- if (interfaceName === 'PluginUsersPermissionsRole') {
417
- return 'Role';
418
- }
419
- // Handle API types: ApiItemItem -> Item, ApiAuthAuth -> Auth
420
- const withoutApi = interfaceName.replace(/^Api/, '');
421
- // Find the repeated part
422
- const half = Math.ceil(withoutApi.length / 2);
423
- for (let i = half; i > 0; i--) {
424
- const first = withoutApi.substring(0, i);
425
- const second = withoutApi.substring(i, i * 2);
426
- if (first === second) {
427
- return first;
428
- }
429
- }
430
- return withoutApi;
431
- }
432
- extractComponentCategory(componentName) {
433
- // LandingEditorFeature -> "landing"
434
- // SharedFeature -> "shared"
435
- const match = componentName.match(/^([A-Z][a-z]+)/);
436
- return match ? match[1].toLowerCase() : '';
437
- }
438
- extractTargetTypeName(target) {
439
- // Extract clean type name from target
440
- // "api::item.item" -> "Item"
441
- // "api::guide-type.guide-type" -> "GuideType"
442
- // "plugin::users-permissions.user" -> "User"
443
- const parts = target.split('::');
444
- if (parts.length === 2) {
445
- const [prefix, rest] = parts;
446
- const name = rest.split('.').pop() || rest;
447
- // Handle plugin types specially
448
- if (prefix === 'plugin') {
449
- if (target === 'plugin::users-permissions.user') {
450
- return 'User';
451
- }
452
- if (target === 'plugin::users-permissions.role') {
453
- return 'Role';
454
- }
455
- }
456
- // Convert kebab-case to PascalCase: guide-type -> GuideType
457
- return toPascalCase(name);
458
- }
459
- return target;
460
- }
461
- }
462
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes-parser.d.ts","sourceRoot":"","sources":["../../src/parser/routes-parser.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IACzB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAA;IACxC,GAAG,EAAE,WAAW,EAAE,CAAA;CACrB;AAED,qBAAa,YAAY;IACrB,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAgEtC,OAAO,CAAC,SAAS;IA8CjB,OAAO,CAAC,gBAAgB;IA0ExB,OAAO,CAAC,mBAAmB;IAwE3B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,iBAAiB;CAW5B"}