@interware/content-generator 0.7.2 → 0.8.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.
- package/dist/_chunks/{App-CTh6owSM.mjs → App-2eX-mcfo.mjs} +2 -2
- package/dist/_chunks/{App-ugsCmlsC.js → App-CvZirjX_.js} +2 -2
- package/dist/_chunks/{ImageStudioTabs-Umf3GODW.mjs → ImageStudioTabs-B6fkCK-o.mjs} +353 -21
- package/dist/_chunks/{ImageStudioTabs-BFEF9ggK.js → ImageStudioTabs-CNktoRax.js} +351 -19
- package/dist/_chunks/{Settings-Sk78JUBS.js → Settings-B-QPodCh.js} +169 -1
- package/dist/_chunks/{Settings-CdGW2O8h.mjs → Settings-CaGruvIm.mjs} +170 -2
- package/dist/_chunks/{StudioApp-DoC0z4eh.js → StudioApp-BDoB31L0.js} +2 -2
- package/dist/_chunks/{StudioApp-CrGn-9Gg.mjs → StudioApp-CF03znuL.mjs} +2 -2
- package/dist/_chunks/{index-D6UAvh53.mjs → index-DlemRDzs.mjs} +3 -3
- package/dist/_chunks/{index-C2s9Jhcc.js → index-DwHGS-BJ.js} +3 -3
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/components/settings/DriveSettings.d.ts +77 -0
- package/dist/admin/src/features/drive/DriveTab.d.ts +42 -0
- package/dist/admin/src/features/image-studio/ImageStudioTabs.d.ts +3 -0
- package/dist/admin/src/features/library/FileCard.d.ts +5 -2
- package/dist/admin/src/features/library/LibraryTab.d.ts +5 -0
- package/dist/admin/src/features/library/driveSync.d.ts +41 -0
- package/dist/admin/src/features/templates/export/templateOrigin.d.ts +10 -0
- package/dist/admin/src/lib/use-cases/drive/index.d.ts +3 -0
- package/dist/server/index.js +1411 -49
- package/dist/server/index.mjs +1409 -47
- package/dist/server/src/bootstrap.d.ts +2 -0
- package/dist/server/src/content-types/drive-link/index.d.ts +62 -0
- package/dist/server/src/content-types/drive-link/schema.d.ts +68 -0
- package/dist/server/src/content-types/drive-op/index.d.ts +46 -0
- package/dist/server/src/content-types/drive-op/schema.d.ts +49 -0
- package/dist/server/src/content-types/index.d.ts +106 -0
- package/dist/server/src/controllers/drive.d.ts +30 -0
- package/dist/server/src/controllers/index.d.ts +130 -0
- package/dist/server/src/drive/client.d.ts +32 -0
- package/dist/server/src/drive/clientConfig.d.ts +27 -0
- package/dist/server/src/drive/common.d.ts +6 -0
- package/dist/server/src/drive/fakes.d.ts +104 -0
- package/dist/server/src/drive/files.d.ts +136 -0
- package/dist/server/src/drive/lifecycles.d.ts +7 -0
- package/dist/server/src/drive/links.d.ts +23 -0
- package/dist/server/src/drive/model.d.ts +99 -0
- package/dist/server/src/drive/oauth.d.ts +47 -0
- package/dist/server/src/drive/pull.d.ts +23 -0
- package/dist/server/src/drive/strapiPorts.d.ts +10 -0
- package/dist/server/src/drive/sync.d.ts +40 -0
- package/dist/server/src/index.d.ts +294 -0
- package/dist/server/src/services/drive.d.ts +141 -0
- package/dist/server/src/services/index.d.ts +55 -0
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
3
4
|
declare const _default: {
|
|
4
5
|
register: ({ strapi }: {
|
|
5
6
|
strapi: import("@strapi/types/dist/core").Strapi;
|
|
@@ -159,6 +160,136 @@ declare const _default: {
|
|
|
159
160
|
body: unknown;
|
|
160
161
|
}) => Promise<void>;
|
|
161
162
|
};
|
|
163
|
+
drive: ({ strapi }: {
|
|
164
|
+
strapi: import("@strapi/types/dist/core").Strapi;
|
|
165
|
+
}) => {
|
|
166
|
+
status: (ctx: {
|
|
167
|
+
request: {
|
|
168
|
+
body?: Record<string, unknown>;
|
|
169
|
+
};
|
|
170
|
+
query: Record<string, unknown>;
|
|
171
|
+
params?: Record<string, string>;
|
|
172
|
+
status: number;
|
|
173
|
+
body: unknown;
|
|
174
|
+
}) => Promise<void>;
|
|
175
|
+
saveClient: (ctx: {
|
|
176
|
+
request: {
|
|
177
|
+
body?: Record<string, unknown>;
|
|
178
|
+
};
|
|
179
|
+
query: Record<string, unknown>;
|
|
180
|
+
params?: Record<string, string>;
|
|
181
|
+
status: number;
|
|
182
|
+
body: unknown;
|
|
183
|
+
}) => Promise<void>;
|
|
184
|
+
removeClient: (ctx: {
|
|
185
|
+
request: {
|
|
186
|
+
body?: Record<string, unknown>;
|
|
187
|
+
};
|
|
188
|
+
query: Record<string, unknown>;
|
|
189
|
+
params?: Record<string, string>;
|
|
190
|
+
status: number;
|
|
191
|
+
body: unknown;
|
|
192
|
+
}) => Promise<void>;
|
|
193
|
+
authorizationUrl: (ctx: {
|
|
194
|
+
request: {
|
|
195
|
+
body?: Record<string, unknown>;
|
|
196
|
+
};
|
|
197
|
+
query: Record<string, unknown>;
|
|
198
|
+
params?: Record<string, string>;
|
|
199
|
+
status: number;
|
|
200
|
+
body: unknown;
|
|
201
|
+
}) => Promise<void>;
|
|
202
|
+
exchange: (ctx: {
|
|
203
|
+
request: {
|
|
204
|
+
body?: Record<string, unknown>;
|
|
205
|
+
};
|
|
206
|
+
query: Record<string, unknown>;
|
|
207
|
+
params?: Record<string, string>;
|
|
208
|
+
status: number;
|
|
209
|
+
body: unknown;
|
|
210
|
+
}) => Promise<void>;
|
|
211
|
+
disconnect: (ctx: {
|
|
212
|
+
request: {
|
|
213
|
+
body?: Record<string, unknown>;
|
|
214
|
+
};
|
|
215
|
+
query: Record<string, unknown>;
|
|
216
|
+
params?: Record<string, string>;
|
|
217
|
+
status: number;
|
|
218
|
+
body: unknown;
|
|
219
|
+
}) => Promise<void>;
|
|
220
|
+
links: (ctx: {
|
|
221
|
+
request: {
|
|
222
|
+
body?: Record<string, unknown>;
|
|
223
|
+
};
|
|
224
|
+
query: Record<string, unknown>;
|
|
225
|
+
params?: Record<string, string>;
|
|
226
|
+
status: number;
|
|
227
|
+
body: unknown;
|
|
228
|
+
}) => Promise<void>;
|
|
229
|
+
mark: (ctx: {
|
|
230
|
+
request: {
|
|
231
|
+
body?: Record<string, unknown>;
|
|
232
|
+
};
|
|
233
|
+
query: Record<string, unknown>;
|
|
234
|
+
params?: Record<string, string>;
|
|
235
|
+
status: number;
|
|
236
|
+
body: unknown;
|
|
237
|
+
}) => Promise<void>;
|
|
238
|
+
unmark: (ctx: {
|
|
239
|
+
request: {
|
|
240
|
+
body?: Record<string, unknown>;
|
|
241
|
+
};
|
|
242
|
+
query: Record<string, unknown>;
|
|
243
|
+
params?: Record<string, string>;
|
|
244
|
+
status: number;
|
|
245
|
+
body: unknown;
|
|
246
|
+
}) => Promise<void>;
|
|
247
|
+
syncNow: (ctx: {
|
|
248
|
+
request: {
|
|
249
|
+
body?: Record<string, unknown>;
|
|
250
|
+
};
|
|
251
|
+
query: Record<string, unknown>;
|
|
252
|
+
params?: Record<string, string>;
|
|
253
|
+
status: number;
|
|
254
|
+
body: unknown;
|
|
255
|
+
}) => Promise<void>;
|
|
256
|
+
browse: (ctx: {
|
|
257
|
+
request: {
|
|
258
|
+
body?: Record<string, unknown>;
|
|
259
|
+
};
|
|
260
|
+
query: Record<string, unknown>;
|
|
261
|
+
params?: Record<string, string>;
|
|
262
|
+
status: number;
|
|
263
|
+
body: unknown;
|
|
264
|
+
}) => Promise<void>;
|
|
265
|
+
count: (ctx: {
|
|
266
|
+
request: {
|
|
267
|
+
body?: Record<string, unknown>;
|
|
268
|
+
};
|
|
269
|
+
query: Record<string, unknown>;
|
|
270
|
+
params?: Record<string, string>;
|
|
271
|
+
status: number;
|
|
272
|
+
body: unknown;
|
|
273
|
+
}) => Promise<void>;
|
|
274
|
+
trash: (ctx: {
|
|
275
|
+
request: {
|
|
276
|
+
body?: Record<string, unknown>;
|
|
277
|
+
};
|
|
278
|
+
query: Record<string, unknown>;
|
|
279
|
+
params?: Record<string, string>;
|
|
280
|
+
status: number;
|
|
281
|
+
body: unknown;
|
|
282
|
+
}) => Promise<void>;
|
|
283
|
+
origin: (ctx: {
|
|
284
|
+
request: {
|
|
285
|
+
body?: Record<string, unknown>;
|
|
286
|
+
};
|
|
287
|
+
query: Record<string, unknown>;
|
|
288
|
+
params?: Record<string, string>;
|
|
289
|
+
status: number;
|
|
290
|
+
body: unknown;
|
|
291
|
+
}) => Promise<void>;
|
|
292
|
+
};
|
|
162
293
|
articles: ({ strapi }: {
|
|
163
294
|
strapi: import("@strapi/types/dist/core").Strapi;
|
|
164
295
|
}) => {
|
|
@@ -337,6 +468,60 @@ declare const _default: {
|
|
|
337
468
|
renameFolder(from: unknown, to: unknown): Promise<string[]>;
|
|
338
469
|
deleteFolder(path: unknown): Promise<string[]>;
|
|
339
470
|
};
|
|
471
|
+
drive: ({ strapi }: {
|
|
472
|
+
strapi: import("@strapi/types/dist/core").Strapi;
|
|
473
|
+
}) => {
|
|
474
|
+
http: () => {
|
|
475
|
+
request: <T = unknown>(path: string, init?: RequestInit) => Promise<T>;
|
|
476
|
+
download: (path: string) => Promise<Uint8Array>;
|
|
477
|
+
about: () => Promise<import("./drive/client").DriveAbout>;
|
|
478
|
+
reset: () => any;
|
|
479
|
+
};
|
|
480
|
+
connected: () => Promise<boolean>;
|
|
481
|
+
runCycle: ({ full }?: {
|
|
482
|
+
full?: boolean;
|
|
483
|
+
}) => Promise<import("./drive/sync").SyncSummary>;
|
|
484
|
+
mark(cmsType: import("./drive/model").CmsType, cmsId: number): Promise<void>;
|
|
485
|
+
unmark(cmsType: import("./drive/model").CmsType, cmsId: number): Promise<void>;
|
|
486
|
+
syncNow(full?: boolean): Promise<import("./drive/sync").SyncSummary>;
|
|
487
|
+
track(cmsType: import("./drive/model").CmsType, cmsId: number): Promise<void>;
|
|
488
|
+
linkStatuses(): Promise<import("./services/drive").LinkStatuses>;
|
|
489
|
+
browse(folderId: unknown, pageToken?: unknown): Promise<{
|
|
490
|
+
path: {
|
|
491
|
+
id: string;
|
|
492
|
+
name: string;
|
|
493
|
+
}[];
|
|
494
|
+
items: {
|
|
495
|
+
synced: boolean;
|
|
496
|
+
id: string;
|
|
497
|
+
name: string;
|
|
498
|
+
mimeType: string;
|
|
499
|
+
size: number;
|
|
500
|
+
modifiedTime: string;
|
|
501
|
+
webViewLink: string;
|
|
502
|
+
parents: string[];
|
|
503
|
+
}[];
|
|
504
|
+
nextPageToken: string;
|
|
505
|
+
}>;
|
|
506
|
+
countItem(id: unknown): Promise<{
|
|
507
|
+
synced: boolean;
|
|
508
|
+
files: number;
|
|
509
|
+
folders: number;
|
|
510
|
+
truncated: boolean;
|
|
511
|
+
}>;
|
|
512
|
+
trashItem(id: unknown): Promise<void>;
|
|
513
|
+
setOrigin(fileId: unknown, documentId: unknown, name: unknown): Promise<void>;
|
|
514
|
+
saveClient(json: unknown, redirectUri: unknown): Promise<void>;
|
|
515
|
+
removeClient(): Promise<void>;
|
|
516
|
+
authorizationUrl(redirectUri: unknown): Promise<string>;
|
|
517
|
+
exchange({ code, state, redirectUri }: {
|
|
518
|
+
code?: unknown;
|
|
519
|
+
state?: unknown;
|
|
520
|
+
redirectUri?: unknown;
|
|
521
|
+
}): Promise<void>;
|
|
522
|
+
disconnect: () => Promise<void>;
|
|
523
|
+
status(): Promise<import("./services/drive").DriveStatus>;
|
|
524
|
+
};
|
|
340
525
|
articles: ({ strapi }: {
|
|
341
526
|
strapi: import("@strapi/types/dist/core").Strapi;
|
|
342
527
|
}) => {
|
|
@@ -432,6 +617,115 @@ declare const _default: {
|
|
|
432
617
|
};
|
|
433
618
|
};
|
|
434
619
|
};
|
|
620
|
+
/**
|
|
621
|
+
* Plugin server methods
|
|
622
|
+
*/
|
|
623
|
+
'drive-link': {
|
|
624
|
+
schema: {
|
|
625
|
+
kind: string;
|
|
626
|
+
collectionName: string;
|
|
627
|
+
info: {
|
|
628
|
+
singularName: string;
|
|
629
|
+
pluralName: string;
|
|
630
|
+
displayName: string;
|
|
631
|
+
description: string;
|
|
632
|
+
};
|
|
633
|
+
options: {
|
|
634
|
+
draftAndPublish: boolean;
|
|
635
|
+
};
|
|
636
|
+
pluginOptions: {
|
|
637
|
+
'content-manager': {
|
|
638
|
+
visible: boolean;
|
|
639
|
+
};
|
|
640
|
+
'content-type-builder': {
|
|
641
|
+
visible: boolean;
|
|
642
|
+
};
|
|
643
|
+
};
|
|
644
|
+
attributes: {
|
|
645
|
+
cmsType: {
|
|
646
|
+
type: string;
|
|
647
|
+
enum: string[];
|
|
648
|
+
required: boolean;
|
|
649
|
+
};
|
|
650
|
+
cmsId: {
|
|
651
|
+
type: string;
|
|
652
|
+
required: boolean;
|
|
653
|
+
};
|
|
654
|
+
driveId: {
|
|
655
|
+
type: string;
|
|
656
|
+
};
|
|
657
|
+
root: {
|
|
658
|
+
type: string;
|
|
659
|
+
default: boolean;
|
|
660
|
+
};
|
|
661
|
+
name: {
|
|
662
|
+
type: string;
|
|
663
|
+
};
|
|
664
|
+
parentCmsId: {
|
|
665
|
+
type: string;
|
|
666
|
+
};
|
|
667
|
+
version: {
|
|
668
|
+
type: string;
|
|
669
|
+
};
|
|
670
|
+
driveRev: {
|
|
671
|
+
type: string;
|
|
672
|
+
};
|
|
673
|
+
status: {
|
|
674
|
+
type: string;
|
|
675
|
+
enum: string[];
|
|
676
|
+
default: string;
|
|
677
|
+
};
|
|
678
|
+
error: {
|
|
679
|
+
type: string;
|
|
680
|
+
};
|
|
681
|
+
};
|
|
682
|
+
};
|
|
683
|
+
};
|
|
684
|
+
'drive-op': {
|
|
685
|
+
schema: {
|
|
686
|
+
kind: string;
|
|
687
|
+
collectionName: string;
|
|
688
|
+
info: {
|
|
689
|
+
singularName: string;
|
|
690
|
+
pluralName: string;
|
|
691
|
+
displayName: string;
|
|
692
|
+
description: string;
|
|
693
|
+
};
|
|
694
|
+
options: {
|
|
695
|
+
draftAndPublish: boolean;
|
|
696
|
+
};
|
|
697
|
+
pluginOptions: {
|
|
698
|
+
'content-manager': {
|
|
699
|
+
visible: boolean;
|
|
700
|
+
};
|
|
701
|
+
'content-type-builder': {
|
|
702
|
+
visible: boolean;
|
|
703
|
+
};
|
|
704
|
+
};
|
|
705
|
+
attributes: {
|
|
706
|
+
cmsType: {
|
|
707
|
+
type: string;
|
|
708
|
+
enum: string[];
|
|
709
|
+
required: boolean;
|
|
710
|
+
};
|
|
711
|
+
cmsId: {
|
|
712
|
+
type: string;
|
|
713
|
+
required: boolean;
|
|
714
|
+
};
|
|
715
|
+
attempts: {
|
|
716
|
+
type: string;
|
|
717
|
+
default: number;
|
|
718
|
+
};
|
|
719
|
+
runAfter: {
|
|
720
|
+
type: string;
|
|
721
|
+
default: string;
|
|
722
|
+
};
|
|
723
|
+
error: {
|
|
724
|
+
type: string;
|
|
725
|
+
};
|
|
726
|
+
};
|
|
727
|
+
};
|
|
728
|
+
};
|
|
435
729
|
};
|
|
436
730
|
policies: {};
|
|
437
731
|
middlewares: {};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { Core } from '@strapi/strapi';
|
|
2
|
+
import type { DriveAbout } from '../drive/client';
|
|
3
|
+
import type { PublicDriveClient } from '../drive/clientConfig';
|
|
4
|
+
import type { Cms, CmsType, CmsWriter, LinkRepo, LinkStatus, OpQueue } from '../drive/model';
|
|
5
|
+
import type { Fetch, Store } from '../drive/oauth';
|
|
6
|
+
import type { SyncSummary } from '../drive/sync';
|
|
7
|
+
/** Refresh token y correo de la cuenta conectada. Nunca sale del servidor. */
|
|
8
|
+
export declare const DRIVE_TOKEN_KEY = "DRIVE_TOKEN";
|
|
9
|
+
/** Origen de los archivos exportados de un template: `{ [fileId]: { documentId, name } }` (S7.3). */
|
|
10
|
+
export declare const DRIVE_ORIGINS_KEY = "DRIVE_ORIGINS";
|
|
11
|
+
/** Entrada inválida (400) o conflicto (409) del panel. El mensaje es para mostrarse tal cual. */
|
|
12
|
+
export declare class DriveInputError extends Error {
|
|
13
|
+
readonly status: 400 | 409;
|
|
14
|
+
constructor(message: string, status?: 400 | 409);
|
|
15
|
+
}
|
|
16
|
+
export interface LinkStatuses {
|
|
17
|
+
connected: boolean;
|
|
18
|
+
/** `inside`: el elemento se sincroniza (marcado o dentro de algo marcado); falso en ancestros que solo dan ruta. */
|
|
19
|
+
items: Record<string, {
|
|
20
|
+
status: LinkStatus;
|
|
21
|
+
root: boolean;
|
|
22
|
+
inside: boolean;
|
|
23
|
+
error: string | null;
|
|
24
|
+
}>;
|
|
25
|
+
lastRun: {
|
|
26
|
+
at: number;
|
|
27
|
+
processed: number;
|
|
28
|
+
errors: number;
|
|
29
|
+
} | null;
|
|
30
|
+
pending: number;
|
|
31
|
+
}
|
|
32
|
+
/** Puertos de la sincronización (S7.3); el `default` los arma con Strapi. */
|
|
33
|
+
export interface SyncPorts {
|
|
34
|
+
cms: Cms;
|
|
35
|
+
links: LinkRepo;
|
|
36
|
+
ops: OpQueue;
|
|
37
|
+
/** Escrituras a la Biblioteca para lo que llega de Drive (S7.4). */
|
|
38
|
+
writer?: CmsWriter;
|
|
39
|
+
/** URL pública del CMS, para el link al template en la descripción de Drive. */
|
|
40
|
+
serverUrl: string;
|
|
41
|
+
}
|
|
42
|
+
export interface DriveConnection {
|
|
43
|
+
connected: boolean;
|
|
44
|
+
email: string | null;
|
|
45
|
+
usage: number | null;
|
|
46
|
+
limit: number | null;
|
|
47
|
+
error: string | null;
|
|
48
|
+
}
|
|
49
|
+
export interface DriveSyncState {
|
|
50
|
+
lastRun: {
|
|
51
|
+
at: number;
|
|
52
|
+
processed: number;
|
|
53
|
+
errors: number;
|
|
54
|
+
} | null;
|
|
55
|
+
pending: number;
|
|
56
|
+
/** Elementos con error u omitidos, con su motivo (máximo 20). */
|
|
57
|
+
errors: {
|
|
58
|
+
key: string;
|
|
59
|
+
name: string;
|
|
60
|
+
error: string;
|
|
61
|
+
}[];
|
|
62
|
+
}
|
|
63
|
+
export interface DriveStatus {
|
|
64
|
+
client: PublicDriveClient;
|
|
65
|
+
connection: DriveConnection;
|
|
66
|
+
sync: DriveSyncState | null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Conexión con Google Drive (S7.1, ADR-008): cliente OAuth, autorización, canje, desconexión y estado. S7.2
|
|
70
|
+
* a S7.4 usan `http()` para hablar con Drive.
|
|
71
|
+
*/
|
|
72
|
+
export declare const createDriveService: ({ store, fetch: fetchFn, log, sync, }: {
|
|
73
|
+
store: Store;
|
|
74
|
+
fetch: Fetch;
|
|
75
|
+
log: Pick<Core.Strapi['log'], 'warn'> & Partial<Pick<Core.Strapi['log'], 'info'>>;
|
|
76
|
+
sync?: SyncPorts;
|
|
77
|
+
}) => {
|
|
78
|
+
http: () => {
|
|
79
|
+
request: <T = unknown>(path: string, init?: RequestInit) => Promise<T>;
|
|
80
|
+
download: (path: string) => Promise<Uint8Array>;
|
|
81
|
+
about: () => Promise<DriveAbout>;
|
|
82
|
+
reset: () => any;
|
|
83
|
+
};
|
|
84
|
+
connected: () => Promise<boolean>;
|
|
85
|
+
runCycle: ({ full }?: {
|
|
86
|
+
full?: boolean;
|
|
87
|
+
}) => Promise<SyncSummary | null>;
|
|
88
|
+
/** Marca para sincronizar y programa el ciclo. */
|
|
89
|
+
mark(cmsType: CmsType, cmsId: number): Promise<void>;
|
|
90
|
+
unmark(cmsType: CmsType, cmsId: number): Promise<void>;
|
|
91
|
+
/** «Sincronizar ahora»; con `full`, «Revisión completa»: compara todo lo vinculado contra Drive. */
|
|
92
|
+
syncNow(full?: boolean): Promise<SyncSummary>;
|
|
93
|
+
/** Lifecycle de upload: encola si el elemento está (o estaba) en lo sincronizado. */
|
|
94
|
+
track(cmsType: CmsType, cmsId: number): Promise<void>;
|
|
95
|
+
linkStatuses(): Promise<LinkStatuses>;
|
|
96
|
+
/** Vista de Drive (S7.2): una carpeta en vivo con su ruta y qué hijos están sincronizados. */
|
|
97
|
+
browse(folderId: unknown, pageToken?: unknown): Promise<{
|
|
98
|
+
path: {
|
|
99
|
+
id: string;
|
|
100
|
+
name: string;
|
|
101
|
+
}[];
|
|
102
|
+
items: {
|
|
103
|
+
synced: boolean;
|
|
104
|
+
id: string;
|
|
105
|
+
name: string;
|
|
106
|
+
mimeType: string;
|
|
107
|
+
size: number;
|
|
108
|
+
modifiedTime: string;
|
|
109
|
+
webViewLink: string;
|
|
110
|
+
parents: string[];
|
|
111
|
+
}[];
|
|
112
|
+
nextPageToken: string;
|
|
113
|
+
}>;
|
|
114
|
+
/** Cuántos elementos se irían a la papelera con esta carpeta, y si está sincronizada. */
|
|
115
|
+
countItem(id: unknown): Promise<{
|
|
116
|
+
synced: boolean;
|
|
117
|
+
files: number;
|
|
118
|
+
folders: number;
|
|
119
|
+
truncated: boolean;
|
|
120
|
+
}>;
|
|
121
|
+
/** Eliminar desde la vista: a la papelera de Drive. Si estaba sincronizado, el siguiente ciclo lo borra del CMS. */
|
|
122
|
+
trashItem(id: unknown): Promise<void>;
|
|
123
|
+
/** El panel avisa que un archivo salió de un template (S7.3). */
|
|
124
|
+
setOrigin(fileId: unknown, documentId: unknown, name: unknown): Promise<void>;
|
|
125
|
+
/** Guarda el cliente del JSON de Google. Un cliente nuevo invalida la conexión anterior. */
|
|
126
|
+
saveClient(json: unknown, redirectUri: unknown): Promise<void>;
|
|
127
|
+
removeClient(): Promise<void>;
|
|
128
|
+
authorizationUrl(redirectUri: unknown): Promise<string>;
|
|
129
|
+
exchange({ code, state, redirectUri }: {
|
|
130
|
+
code?: unknown;
|
|
131
|
+
state?: unknown;
|
|
132
|
+
redirectUri?: unknown;
|
|
133
|
+
}): Promise<void>;
|
|
134
|
+
disconnect: () => Promise<void>;
|
|
135
|
+
status(): Promise<DriveStatus>;
|
|
136
|
+
};
|
|
137
|
+
export type DriveService = ReturnType<typeof createDriveService>;
|
|
138
|
+
declare const _default: ({ strapi }: {
|
|
139
|
+
strapi: Core.Strapi;
|
|
140
|
+
}) => DriveService;
|
|
141
|
+
export default _default;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
3
4
|
declare const _default: {
|
|
4
5
|
service: ({ strapi }: {
|
|
5
6
|
strapi: import("@strapi/types/dist/core").Strapi;
|
|
@@ -63,6 +64,60 @@ declare const _default: {
|
|
|
63
64
|
renameFolder(from: unknown, to: unknown): Promise<string[]>;
|
|
64
65
|
deleteFolder(path: unknown): Promise<string[]>;
|
|
65
66
|
};
|
|
67
|
+
drive: ({ strapi }: {
|
|
68
|
+
strapi: import("@strapi/types/dist/core").Strapi;
|
|
69
|
+
}) => {
|
|
70
|
+
http: () => {
|
|
71
|
+
request: <T = unknown>(path: string, init?: RequestInit) => Promise<T>;
|
|
72
|
+
download: (path: string) => Promise<Uint8Array>;
|
|
73
|
+
about: () => Promise<import("../drive/client").DriveAbout>;
|
|
74
|
+
reset: () => any;
|
|
75
|
+
};
|
|
76
|
+
connected: () => Promise<boolean>;
|
|
77
|
+
runCycle: ({ full }?: {
|
|
78
|
+
full?: boolean;
|
|
79
|
+
}) => Promise<import("../drive/sync").SyncSummary>;
|
|
80
|
+
mark(cmsType: import("../drive/model").CmsType, cmsId: number): Promise<void>;
|
|
81
|
+
unmark(cmsType: import("../drive/model").CmsType, cmsId: number): Promise<void>;
|
|
82
|
+
syncNow(full?: boolean): Promise<import("../drive/sync").SyncSummary>;
|
|
83
|
+
track(cmsType: import("../drive/model").CmsType, cmsId: number): Promise<void>;
|
|
84
|
+
linkStatuses(): Promise<import("./drive").LinkStatuses>;
|
|
85
|
+
browse(folderId: unknown, pageToken?: unknown): Promise<{
|
|
86
|
+
path: {
|
|
87
|
+
id: string;
|
|
88
|
+
name: string;
|
|
89
|
+
}[];
|
|
90
|
+
items: {
|
|
91
|
+
synced: boolean;
|
|
92
|
+
id: string;
|
|
93
|
+
name: string;
|
|
94
|
+
mimeType: string;
|
|
95
|
+
size: number;
|
|
96
|
+
modifiedTime: string;
|
|
97
|
+
webViewLink: string;
|
|
98
|
+
parents: string[];
|
|
99
|
+
}[];
|
|
100
|
+
nextPageToken: string;
|
|
101
|
+
}>;
|
|
102
|
+
countItem(id: unknown): Promise<{
|
|
103
|
+
synced: boolean;
|
|
104
|
+
files: number;
|
|
105
|
+
folders: number;
|
|
106
|
+
truncated: boolean;
|
|
107
|
+
}>;
|
|
108
|
+
trashItem(id: unknown): Promise<void>;
|
|
109
|
+
setOrigin(fileId: unknown, documentId: unknown, name: unknown): Promise<void>;
|
|
110
|
+
saveClient(json: unknown, redirectUri: unknown): Promise<void>;
|
|
111
|
+
removeClient(): Promise<void>;
|
|
112
|
+
authorizationUrl(redirectUri: unknown): Promise<string>;
|
|
113
|
+
exchange({ code, state, redirectUri }: {
|
|
114
|
+
code?: unknown;
|
|
115
|
+
state?: unknown;
|
|
116
|
+
redirectUri?: unknown;
|
|
117
|
+
}): Promise<void>;
|
|
118
|
+
disconnect: () => Promise<void>;
|
|
119
|
+
status(): Promise<import("./drive").DriveStatus>;
|
|
120
|
+
};
|
|
66
121
|
articles: ({ strapi }: {
|
|
67
122
|
strapi: import("@strapi/types/dist/core").Strapi;
|
|
68
123
|
}) => {
|
package/package.json
CHANGED