@tanglemedia/svelte-starter-directus-api 6.0.2 → 9.0.0-next.0

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.
@@ -1,202 +1,263 @@
1
+ // Client setup
2
+ export { authentication, createDirectus, memoryStorage, rest, staticToken } from '@directus/sdk';
3
+
4
+ // Auth commands
1
5
  export {
2
- readItem,
3
- readSingleton,
4
- readItems,
5
- createItem,
6
- createItems,
7
- updateItem,
8
- updateSingleton,
9
- updateItems,
10
- deleteItem,
11
- deleteItems,
12
- readAssetRaw,
13
- readFiles,
14
- readFile,
15
- uploadFiles,
16
- importFile,
17
- updateFile,
18
- updateFiles,
19
- deleteFile,
20
- deleteFiles,
21
- readActivities,
22
- readActivity,
23
- readCollections,
24
- readCollection,
25
- createCollection,
26
- updateCollection,
27
- deleteCollection,
28
- readComments,
29
- readComment,
30
- createComment,
31
- createComments,
32
- updateComment,
33
- updateComments,
34
- deleteComment,
35
- deleteComments,
36
- readContentVersions,
37
- readContentVersion,
38
- createContentVersion,
39
- createContentVersions,
40
- updateContentVersion,
41
- updateContentVersions,
42
- deleteContentVersion,
43
- deleteContentVersions,
44
- saveToContentVersion,
45
- compareContentVersion,
46
- promoteContentVersion,
47
- readDashboards,
48
- readDashboard,
49
- createDashboard,
50
- createDashboards,
51
- updateDashboard,
52
- updateDashboards,
53
- deleteDashboard,
54
- // triggerOperation
55
- deleteDashboards,
56
- readExtensions,
57
- updateExtension,
58
- readFields,
59
- readFieldsByCollection,
60
- readField,
61
- createField,
62
- updateField,
63
- deleteField,
64
- readFlows,
65
- readFlow,
66
- createFlow,
67
- createFlows,
68
- updateFlow,
69
- updateFlows,
70
- deleteFlow,
71
- deleteFlows,
72
- triggerFlow,
73
- readFolders,
74
- readFolder,
75
- createFolder,
76
- createFolders,
77
- updateFolder,
78
- updateFolders,
79
- deleteFolder,
80
- deleteFolders,
81
- readNotifications,
82
- readNotification,
83
- createNotification,
84
- createNotifications,
85
- updateNotification,
86
- updateNotifications,
87
- deleteNotification,
88
- deleteNotifications,
89
- readOperations,
90
- readOperation,
91
- createOperation,
92
- createOperations,
93
- updateOperation,
94
- updateOperations,
95
- deleteOperation,
96
- deleteOperations,
97
- readPanels,
98
- readPanel,
99
- createPanel,
100
- createPanels,
101
- updatePanel,
102
- updatePanels,
103
- deletePanel,
104
- deletePanels,
105
- readPermissions,
106
- readPermission,
107
- createPermission,
108
- createPermissions,
109
- updatePermission,
110
- updatePermissions,
111
- deletePermission,
112
- deletePermissions,
113
- readUserPermissions,
114
- readItemPermissions,
115
- readPolicies,
116
- readPolicy,
117
- createPolicy,
118
- createPolicies,
119
- updatePolicy,
120
- updatePolicies,
121
- deletePolicy,
122
- deletePolicies,
123
- readPresets,
124
- readPreset,
125
- createPreset,
126
- createPresets,
127
- updatePreset,
128
- updatePresets,
129
- deletePreset,
130
- deletePresets,
131
- readRelations,
132
- readRelationByCollection,
133
- readRelation,
134
- createRelation,
135
- updateRelation,
136
- deleteRelation,
137
- readRevisions,
138
- readRevision,
139
- readRoles,
140
- readRole,
141
- createRole,
142
- createRoles,
143
- updateRole,
144
- updateRoles,
145
- deleteRole,
146
- deleteRoles,
147
- schemaSnapshot,
148
- readOpenApiSpec,
149
- readGraphqlSdl,
150
- serverPing,
151
- serverInfo,
152
- serverHealth,
153
- readSettings,
154
- updateSettings,
155
- readShares,
156
- readShare,
157
- createShare,
158
- createShares,
159
- updateShare,
160
- updateShares,
161
- deleteShare,
162
- deleteShares,
163
- authenticateShare,
164
- inviteShare,
165
- readShareInfo,
166
- readTranslations,
167
- readTranslation,
168
- createTranslation,
169
- createTranslations,
170
- updateTranslation,
171
- updateTranslations,
172
- deleteTranslation,
173
- deleteTranslations,
174
- readUsers,
175
- readUser,
176
- readMe,
177
- updateMe,
178
- createUser,
179
- createUsers,
180
- updateUser,
181
- updateUsers,
182
- deleteUser,
183
- deleteUsers,
184
- registerUser,
185
- registerUserVerify,
186
- inviteUser,
187
- acceptUserInvite,
188
- generateTwoFactorSecret,
189
- enableTwoFactor,
190
- disableTwoFactor,
191
- randomString,
192
- generateHash,
193
- verifyHash,
194
- utilitySort,
195
- utilsImport,
196
- utilsExport,
197
- clearCache,
198
- passwordRequest,
199
- createDirectus,
200
- rest,
201
- staticToken
6
+ login,
7
+ logout,
8
+ passwordRequest,
9
+ passwordReset,
10
+ readProviders,
11
+ refresh,
202
12
  } from '@directus/sdk';
13
+
14
+ // Create commands
15
+ export {
16
+ createCollection,
17
+ createComment,
18
+ createComments,
19
+ createContentVersion,
20
+ createContentVersions,
21
+ createDashboard,
22
+ createDashboards,
23
+ createField,
24
+ createFlow,
25
+ createFlows,
26
+ createFolder,
27
+ createFolders,
28
+ createItem,
29
+ createItems,
30
+ createNotification,
31
+ createNotifications,
32
+ createOperation,
33
+ createOperations,
34
+ createPanel,
35
+ createPanels,
36
+ createPermission,
37
+ createPermissions,
38
+ createPolicies,
39
+ createPolicy,
40
+ createPreset,
41
+ createPresets,
42
+ createRelation,
43
+ createRole,
44
+ createRoles,
45
+ createShare,
46
+ createShares,
47
+ createTranslation,
48
+ createTranslations,
49
+ createUser,
50
+ createUsers,
51
+ importFile,
52
+ uploadFiles,
53
+ } from '@directus/sdk';
54
+
55
+ // Read commands
56
+ export {
57
+ aggregate,
58
+ downloadFilesZip,
59
+ downloadFolderZip,
60
+ readActivities,
61
+ readActivity,
62
+ readAssetArrayBuffer,
63
+ readAssetBlob,
64
+ readAssetRaw,
65
+ readCollection,
66
+ readCollections,
67
+ readComment,
68
+ readComments,
69
+ readContentVersion,
70
+ readContentVersions,
71
+ readDashboard,
72
+ readDashboards,
73
+ readExtensions,
74
+ readField,
75
+ readFields,
76
+ readFieldsByCollection,
77
+ readFile,
78
+ readFiles,
79
+ readFlow,
80
+ readFlows,
81
+ readFolder,
82
+ readFolders,
83
+ readGraphqlSdl,
84
+ readItem,
85
+ readItemPermissions,
86
+ readItems,
87
+ readMe,
88
+ readNotification,
89
+ readNotifications,
90
+ readOpenApiSpec,
91
+ readOperation,
92
+ readOperations,
93
+ readPanel,
94
+ readPanels,
95
+ readPermission,
96
+ readPermissions,
97
+ readPolicies,
98
+ readPolicy,
99
+ readPolicyGlobals,
100
+ readPreset,
101
+ readPresets,
102
+ readRelation,
103
+ readRelationByCollection,
104
+ readRelations,
105
+ readRevision,
106
+ readRevisions,
107
+ readRole,
108
+ readRoles,
109
+ readRolesMe,
110
+ readSettings,
111
+ readShare,
112
+ readShareInfo,
113
+ readShares,
114
+ readSingleton,
115
+ readTranslation,
116
+ readTranslations,
117
+ readUser,
118
+ readUserPermissions,
119
+ readUsers,
120
+ } from '@directus/sdk';
121
+
122
+ // Update commands
123
+ export {
124
+ updateCollection,
125
+ updateCollectionsBatch,
126
+ updateComment,
127
+ updateComments,
128
+ updateCommentsBatch,
129
+ updateContentVersion,
130
+ updateContentVersions,
131
+ updateContentVersionsBatch,
132
+ updateDashboard,
133
+ updateDashboards,
134
+ updateDashboardsBatch,
135
+ updateExtension,
136
+ updateField,
137
+ updateFields,
138
+ updateFile,
139
+ updateFiles,
140
+ updateFilesBatch,
141
+ updateFlow,
142
+ updateFlows,
143
+ updateFlowsBatch,
144
+ updateFolder,
145
+ updateFolders,
146
+ updateFoldersBatch,
147
+ updateItem,
148
+ updateItems,
149
+ updateItemsBatch,
150
+ updateMe,
151
+ updateNotification,
152
+ updateNotifications,
153
+ updateNotificationsBatch,
154
+ updateOperation,
155
+ updateOperations,
156
+ updateOperationsBatch,
157
+ updatePanel,
158
+ updatePanels,
159
+ updatePanelsBatch,
160
+ updatePermission,
161
+ updatePermissions,
162
+ updatePermissionsBatch,
163
+ updatePolicies,
164
+ updatePoliciesBatch,
165
+ updatePolicy,
166
+ updatePreset,
167
+ updatePresets,
168
+ updatePresetsBatch,
169
+ updateRelation,
170
+ updateRole,
171
+ updateRoles,
172
+ updateRolesBatch,
173
+ updateSettings,
174
+ updateShare,
175
+ updateShares,
176
+ updateSharesBatch,
177
+ updateSingleton,
178
+ updateTranslation,
179
+ updateTranslations,
180
+ updateTranslationsBatch,
181
+ updateUser,
182
+ updateUsers,
183
+ updateUsersBatch,
184
+ } from '@directus/sdk';
185
+
186
+ // Delete commands
187
+ export {
188
+ deleteCollection,
189
+ deleteComment,
190
+ deleteComments,
191
+ deleteContentVersion,
192
+ deleteContentVersions,
193
+ deleteDashboard,
194
+ deleteDashboards,
195
+ deleteField,
196
+ deleteFile,
197
+ deleteFiles,
198
+ deleteFlow,
199
+ deleteFlows,
200
+ deleteFolder,
201
+ deleteFolders,
202
+ deleteItem,
203
+ deleteItems,
204
+ deleteNotification,
205
+ deleteNotifications,
206
+ deleteOperation,
207
+ deleteOperations,
208
+ deletePanel,
209
+ deletePanels,
210
+ deletePermission,
211
+ deletePermissions,
212
+ deletePolicies,
213
+ deletePolicy,
214
+ deletePreset,
215
+ deletePresets,
216
+ deleteRelation,
217
+ deleteRole,
218
+ deleteRoles,
219
+ deleteShare,
220
+ deleteShares,
221
+ deleteTranslation,
222
+ deleteTranslations,
223
+ deleteUser,
224
+ deleteUsers,
225
+ } from '@directus/sdk';
226
+
227
+ // Schema commands
228
+ export { schemaApply, schemaDiff, schemaSnapshot } from '@directus/sdk';
229
+
230
+ // Server commands
231
+ export { serverHealth, serverInfo, serverPing } from '@directus/sdk';
232
+
233
+ // Utility functions
234
+ export {
235
+ acceptUserInvite,
236
+ authenticateShare,
237
+ clearCache,
238
+ compareContentVersion,
239
+ customEndpoint,
240
+ disableTwoFactor,
241
+ enableTwoFactor,
242
+ generateHash,
243
+ generateTwoFactorSecret,
244
+ inviteShare,
245
+ inviteUser,
246
+ isDirectusError,
247
+ promoteContentVersion,
248
+ randomString,
249
+ registerUser,
250
+ registerUserVerify,
251
+ saveToContentVersion,
252
+ triggerFlow,
253
+ utilitySort,
254
+ utilsExport,
255
+ utilsImport,
256
+ verifyHash,
257
+ withOptions,
258
+ withSearch,
259
+ withToken,
260
+ } from '@directus/sdk';
261
+
262
+ // Types
263
+ export type { DirectusClient, RestClient, RestCommand } from '@directus/sdk';
@@ -8,7 +8,7 @@ import {
8
8
  type ClientOptions
9
9
  } from '@directus/sdk';
10
10
  import { AuthLocalStorage } from '../storage/local-storage';
11
- import type { DirectusConfig } from '../types/adapter.types';
11
+ import type { DirectusAdapterClient, DirectusConfig, SchemaShape } from '../types/adapter.types';
12
12
 
13
13
  const authConfigDefaults = {
14
14
  autoRefresh: false,
@@ -19,13 +19,13 @@ const authConfigDefaults = {
19
19
  /**
20
20
  * Creates a directus client based on the application configuration
21
21
  */
22
- export const createDirectusClientFactory = <T extends object>(
22
+ export const createDirectusClientFactory = <T extends SchemaShape>(
23
23
  {
24
24
  baseUrl,
25
25
  configuration: { protocol = 'https', host, auth, staticToken: token, graphql: gql, rest: rs }
26
26
  }: DirectusConfig,
27
27
  options?: ClientOptions
28
- ) => {
28
+ ): DirectusAdapterClient<T> => {
29
29
  let url = baseUrl;
30
30
 
31
31
  if (host) {
@@ -42,7 +42,7 @@ export const createDirectusClientFactory = <T extends object>(
42
42
  rs = { credentials: 'include' };
43
43
  }
44
44
 
45
- let client = createDirectus<T>(url, options).with(rest(rs));
45
+ let client = createDirectus<T>(url, options).with(rest(rs)) as DirectusAdapterClient<T>;
46
46
 
47
47
  if (auth) {
48
48
  const { config: c, mode } = auth;
@@ -54,15 +54,15 @@ export const createDirectusClientFactory = <T extends object>(
54
54
  authConfig.storage = new AuthLocalStorage();
55
55
  }
56
56
 
57
- client = client.with(authentication(mode, authConfig));
57
+ client = client.with(authentication(mode, authConfig)) as DirectusAdapterClient<T>;
58
58
  }
59
59
 
60
60
  if (token) {
61
- client = client.with(staticToken(token));
61
+ client = client.with(staticToken(token)) as DirectusAdapterClient<T>;
62
62
  }
63
63
 
64
64
  if (gql) {
65
- client = client.with(graphql(gql));
65
+ client = client.with(graphql(gql)) as DirectusAdapterClient<T>;
66
66
  }
67
67
 
68
68
  return client;
@@ -1,12 +1,23 @@
1
- import type { AuthenticationClient, DirectusClient, RestClient } from '@directus/sdk';
2
1
  import { readFiles, readMe, updateMe } from '@directus/sdk';
3
2
  import { ServiceAbstract } from '@tanglemedia/svelte-starter-core';
3
+ import type { DirectusAdapterClient, SchemaShape } from '../types';
4
+
5
+ type AuthenticatedDirectusClient = DirectusAdapterClient<SchemaShape> &
6
+ Required<Pick<DirectusAdapterClient<SchemaShape>, 'refresh' | 'getToken' | 'login' | 'logout'>>;
4
7
 
5
8
  class DirectusAuthServices extends ServiceAbstract {
6
9
  public getDirectus() {
7
- return this.getAdapterClient<
8
- DirectusClient<object> & RestClient<object> & AuthenticationClient<object>
9
- >();
10
+ return this.getAdapterClient<DirectusAdapterClient<SchemaShape>>();
11
+ }
12
+
13
+ private async getAuthenticatedDirectus(): Promise<AuthenticatedDirectusClient> {
14
+ const directus = await this.getDirectus();
15
+
16
+ if (!directus.refresh || !directus.getToken || !directus.login || !directus.logout) {
17
+ throw new Error('Directus client is missing authentication methods');
18
+ }
19
+
20
+ return directus as AuthenticatedDirectusClient;
10
21
  }
11
22
 
12
23
  // public getConfig<T extends object>(): DirectusClient<T> & RestClient<object> {
@@ -15,7 +26,7 @@ class DirectusAuthServices extends ServiceAbstract {
15
26
 
16
27
  public async refresh() {
17
28
  try {
18
- const response = await (await this.getDirectus()).refresh();
29
+ const response = await (await this.getAuthenticatedDirectus()).refresh();
19
30
  return response;
20
31
  } catch (error) {
21
32
  console.error(`Error on directus sdk refresh() :`, error);
@@ -25,7 +36,7 @@ class DirectusAuthServices extends ServiceAbstract {
25
36
 
26
37
  public async getToken() {
27
38
  try {
28
- const response = await (await this.getDirectus()).getToken();
39
+ const response = await (await this.getAuthenticatedDirectus()).getToken();
29
40
  return response;
30
41
  } catch (error) {
31
42
  console.error(`Error on directus sdk getToken() :`, error);
@@ -35,7 +46,7 @@ class DirectusAuthServices extends ServiceAbstract {
35
46
 
36
47
  public async login(email: string, password: string) {
37
48
  try {
38
- const response = await (await this.getDirectus()).login(email, password);
49
+ const response = await (await this.getAuthenticatedDirectus()).login({ email, password });
39
50
  return response;
40
51
  } catch (error) {
41
52
  console.error(`Error on directus sdk login() :`, error);
@@ -45,7 +56,7 @@ class DirectusAuthServices extends ServiceAbstract {
45
56
 
46
57
  public async logout() {
47
58
  try {
48
- const response = await (await this.getDirectus()).logout();
59
+ const response = await (await this.getAuthenticatedDirectus()).logout();
49
60
  return response;
50
61
  } catch (error) {
51
62
  console.error(`Error on directus sdk logout() :`, error);
@@ -56,9 +67,8 @@ class DirectusAuthServices extends ServiceAbstract {
56
67
  public async getCurrentUser<T>(fields: string[] | null = null): Promise<T> {
57
68
  try {
58
69
  if (!(await this.getToken())) await this.refresh();
59
- const response = await (
60
- await this.getDirectus()
61
- ).request<T>(readMe({ fields: fields ? fields : ['*', 'roles.*'] }));
70
+ const queryFields = (fields ?? ['*', 'roles.*']) as never;
71
+ const response = await (await this.getDirectus()).request<T>(readMe({ fields: queryFields }));
62
72
  return response;
63
73
  } catch (error) {
64
74
  console.error(`Error on directus sdk readMe() :`, error);
@@ -1,15 +1,25 @@
1
- import type { AuthenticationMode, GraphqlConfig } from '@directus/sdk';
1
+ import type {
2
+ AuthenticationClient,
3
+ AuthenticationMode,
4
+ DirectusClient,
5
+ GraphqlClient,
6
+ GraphqlConfig,
7
+ RestClient,
8
+ StaticTokenClient
9
+ } from '@directus/sdk';
2
10
  import type { BaseApiAdapterConfig } from '@tanglemedia/svelte-starter-core';
3
11
 
4
- export {
5
- type AllCollections,
6
- type DirectusClient,
7
- type RegularCollections,
8
- type RestClient,
9
- type StaticTokenClient,
10
- type AuthenticationClient
12
+ export type {
13
+ AllCollections,
14
+ RegularCollections,
15
+ DirectusClient,
16
+ RestClient,
17
+ StaticTokenClient,
18
+ AuthenticationClient
11
19
  } from '@directus/sdk';
12
20
 
21
+ export type * from '@directus/types';
22
+
13
23
  export type DirectusApiAuthOptions = {
14
24
  mode: AuthenticationMode;
15
25
  config?: Partial<{
@@ -40,4 +50,11 @@ export type DirectusApiAdapterOptions = {
40
50
 
41
51
  export type DirectusConfig = BaseApiAdapterConfig<DirectusApiAdapterOptions>;
42
52
 
43
- export type SchemaShape = Record<string, object>;
53
+ export type SchemaShape = Record<string, object | object[]>;
54
+
55
+ export type DirectusAdapterClient<Schema extends SchemaShape = SchemaShape> =
56
+ DirectusClient<Schema> &
57
+ RestClient<Schema> &
58
+ Partial<AuthenticationClient<Schema>> &
59
+ Partial<StaticTokenClient<Schema>> &
60
+ Partial<GraphqlClient<Schema>>;