@tanglemedia/svelte-starter-directus-api 4.0.1 → 4.1.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.
package/README.md CHANGED
@@ -260,4 +260,5 @@ export const formsServiceClient = configureService<FormInterface>(Forms, {
260
260
  adapterKey: 'directus-client'
261
261
  });
262
262
  ```
263
+
263
264
  ### For mode demos and to check out all the components, please visit our [documentation website](https://tanglemedia-svelte-docs.netlify.app/docs/directus-api-package/functionality)
@@ -47,13 +47,15 @@ export class DirectusApiAdapter extends ApiAdapterAbstract {
47
47
  aggregate: { [k]: f },
48
48
  query: {
49
49
  ...(filter ? { filter } : {}),
50
- ...(search ? { search } : {}),
50
+ ...(search ? { search } : {})
51
51
  }
52
52
  }));
53
+ let total = 0;
53
54
  if (data && data.length === 1) {
54
- return Number(data[0].count);
55
+ const c = data[0][k];
56
+ total = c && typeof c === 'object' ? Number(c[f]) : Number(c);
55
57
  }
56
- return 0;
58
+ return isNaN(total) ? 0 : total;
57
59
  }
58
60
  async transformResponse(res, status = 200) {
59
61
  return {
@@ -90,7 +92,7 @@ export class DirectusApiAdapter extends ApiAdapterAbstract {
90
92
  }
91
93
  }
92
94
  async find(collection, query) {
93
- const response = await this.directus.request(readItems(collection, query));
95
+ const response = (await this.directus.request(readItems(collection, query)));
94
96
  const total = await this.includeTotals(collection, query);
95
97
  if (null === total) {
96
98
  return this.transformResponse({ data: response });
@@ -103,11 +105,13 @@ export class DirectusApiAdapter extends ApiAdapterAbstract {
103
105
  return this.transformResponse({ data });
104
106
  }
105
107
  async aggregate(collection, query) {
106
- const { aggregate: aggregate_, ...rest } = (query || {});
108
+ const { aggregate: aggregate_, ...rest } = query || {};
107
109
  const data = await this.directus.request(aggregate(collection, {
108
- aggregate: aggregate_ ? aggregate_ : {
109
- count: 'id'
110
- },
110
+ aggregate: aggregate_
111
+ ? aggregate_
112
+ : {
113
+ count: 'id'
114
+ },
111
115
  query: rest
112
116
  }));
113
117
  return this.transformResponse({ data });
@@ -126,7 +130,7 @@ export class DirectusApiAdapter extends ApiAdapterAbstract {
126
130
  }
127
131
  async put(collection, key, payload) {
128
132
  if (key) {
129
- const data = await this.directus.request(updateItem(collection, key, payload));
133
+ const data = (await this.directus.request(updateItem(collection, key, payload)));
130
134
  return this.transformResponse({ data }, 201);
131
135
  }
132
136
  else {
package/dist/index.d.ts CHANGED
@@ -3,3 +3,4 @@ export * from './provider/directus.factory';
3
3
  export * from './services/auth';
4
4
  export * from './services/register';
5
5
  export type * from './types';
6
+ export * from './provider/api-references-functions.provider';
package/dist/index.js CHANGED
@@ -2,3 +2,4 @@ export * from './provider/api-adapter.provider';
2
2
  export * from './provider/directus.factory';
3
3
  export * from './services/auth';
4
4
  export * from './services/register';
5
+ export * from './provider/api-references-functions.provider';
@@ -0,0 +1 @@
1
+ export { readItem, readSingleton, readItems, createItem, createItems, updateItem, updateSingleton, updateItems, deleteItem, deleteItems, readAssetRaw, readFiles, readFile, uploadFiles, importFile, updateFile, updateFiles, deleteFile, deleteFiles, readActivities, readActivity, readCollections, readCollection, createCollection, updateCollection, deleteCollection, readComments, readComment, createComment, createComments, updateComment, updateComments, deleteComment, deleteComments, readContentVersions, readContentVersion, createContentVersion, createContentVersions, updateContentVersion, updateContentVersions, deleteContentVersion, deleteContentVersions, saveToContentVersion, compareContentVersion, promoteContentVersion, readDashboards, readDashboard, createDashboard, createDashboards, updateDashboard, updateDashboards, deleteDashboard, deleteDashboards, readExtensions, updateExtension, readFields, readFieldsByCollection, readField, createField, updateField, deleteField, readFlows, readFlow, createFlow, createFlows, updateFlow, updateFlows, deleteFlow, deleteFlows, triggerFlow, readFolders, readFolder, createFolder, createFolders, updateFolder, updateFolders, deleteFolder, deleteFolders, readNotifications, readNotification, createNotification, createNotifications, updateNotification, updateNotifications, deleteNotification, deleteNotifications, readOperations, readOperation, createOperation, createOperations, updateOperation, updateOperations, deleteOperation, deleteOperations, triggerOperation, readPanels, readPanel, createPanel, createPanels, updatePanel, updatePanels, deletePanel, deletePanels, readPermissions, readPermission, createPermission, createPermissions, updatePermission, updatePermissions, deletePermission, deletePermissions, readUserPermissions, readItemPermissions, readPolicies, readPolicy, createPolicy, createPolicies, updatePolicy, updatePolicies, deletePolicy, deletePolicies, readPresets, readPreset, createPreset, createPresets, updatePreset, updatePresets, deletePreset, deletePresets, readRelations, readRelationByCollection, readRelation, createRelation, updateRelation, deleteRelation, readRevisions, readRevision, readRoles, readRole, createRole, createRoles, updateRole, updateRoles, deleteRole, deleteRoles, schemaSnapshot, readOpenApiSpec, readGraphqlSdl, serverPing, serverInfo, serverHealth, readSettings, updateSettings, readShares, readShare, createShare, createShares, updateShare, updateShares, deleteShare, deleteShares, authenticateShare, inviteShare, readShareInfo, readTranslations, readTranslation, createTranslation, createTranslations, updateTranslation, updateTranslations, deleteTranslation, deleteTranslations, readUsers, readUser, readMe, updateMe, createUser, createUsers, updateUser, updateUsers, deleteUser, deleteUsers, registerUser, registerUserVerify, inviteUser, acceptUserInvite, generateTwoFactorSecret, enableTwoFactor, disableTwoFactor, randomString, generateHash, verifyHash, utilitySort, utilsImport, utilsExport, clearCache } from '@directus/sdk';
@@ -0,0 +1 @@
1
+ export { readItem, readSingleton, readItems, createItem, createItems, updateItem, updateSingleton, updateItems, deleteItem, deleteItems, readAssetRaw, readFiles, readFile, uploadFiles, importFile, updateFile, updateFiles, deleteFile, deleteFiles, readActivities, readActivity, readCollections, readCollection, createCollection, updateCollection, deleteCollection, readComments, readComment, createComment, createComments, updateComment, updateComments, deleteComment, deleteComments, readContentVersions, readContentVersion, createContentVersion, createContentVersions, updateContentVersion, updateContentVersions, deleteContentVersion, deleteContentVersions, saveToContentVersion, compareContentVersion, promoteContentVersion, readDashboards, readDashboard, createDashboard, createDashboards, updateDashboard, updateDashboards, deleteDashboard, deleteDashboards, readExtensions, updateExtension, readFields, readFieldsByCollection, readField, createField, updateField, deleteField, readFlows, readFlow, createFlow, createFlows, updateFlow, updateFlows, deleteFlow, deleteFlows, triggerFlow, readFolders, readFolder, createFolder, createFolders, updateFolder, updateFolders, deleteFolder, deleteFolders, readNotifications, readNotification, createNotification, createNotifications, updateNotification, updateNotifications, deleteNotification, deleteNotifications, readOperations, readOperation, createOperation, createOperations, updateOperation, updateOperations, deleteOperation, deleteOperations, triggerOperation, readPanels, readPanel, createPanel, createPanels, updatePanel, updatePanels, deletePanel, deletePanels, readPermissions, readPermission, createPermission, createPermissions, updatePermission, updatePermissions, deletePermission, deletePermissions, readUserPermissions, readItemPermissions, readPolicies, readPolicy, createPolicy, createPolicies, updatePolicy, updatePolicies, deletePolicy, deletePolicies, readPresets, readPreset, createPreset, createPresets, updatePreset, updatePresets, deletePreset, deletePresets, readRelations, readRelationByCollection, readRelation, createRelation, updateRelation, deleteRelation, readRevisions, readRevision, readRoles, readRole, createRole, createRoles, updateRole, updateRoles, deleteRole, deleteRoles, schemaSnapshot, readOpenApiSpec, readGraphqlSdl, serverPing, serverInfo, serverHealth, readSettings, updateSettings, readShares, readShare, createShare, createShares, updateShare, updateShares, deleteShare, deleteShares, authenticateShare, inviteShare, readShareInfo, readTranslations, readTranslation, createTranslation, createTranslations, updateTranslation, updateTranslations, deleteTranslation, deleteTranslations, readUsers, readUser, readMe, updateMe, createUser, createUsers, updateUser, updateUsers, deleteUser, deleteUsers, registerUser, registerUserVerify, inviteUser, acceptUserInvite, generateTwoFactorSecret, enableTwoFactor, disableTwoFactor, randomString, generateHash, verifyHash, utilitySort, utilsImport, utilsExport, clearCache } from '@directus/sdk';
@@ -1,5 +1,6 @@
1
1
  import type { AuthenticationMode, GraphqlConfig } from '@directus/sdk';
2
2
  import type { BaseApiAdapterConfig } from '@tanglemedia/svelte-starter-core';
3
+ export { type AllCollections, type DirectusClient, type RegularCollections, type RestClient } from '@directus/sdk';
3
4
  export type DirectusApiAuthOptions = {
4
5
  mode: AuthenticationMode;
5
6
  config?: Partial<{
@@ -1 +1 @@
1
- export {};
1
+ export {} from '@directus/sdk';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanglemedia/svelte-starter-directus-api",
3
- "version": "4.0.1",
3
+ "version": "4.1.0",
4
4
  "main": "src/index.ts",
5
5
  "types": "src/index.ts",
6
6
  "description": "directus API wrapper for all the directus sdk functionality",
@@ -22,7 +22,7 @@
22
22
  }
23
23
  },
24
24
  "devDependencies": {
25
- "@directus/types": "^12.1.0",
25
+ "@directus/types": "12.2.2",
26
26
  "@sveltejs/adapter-auto": "^3.2.5",
27
27
  "@sveltejs/package": "^2.3.5",
28
28
  "@sveltejs/vite-plugin-svelte": "^3.1.2",
@@ -39,7 +39,7 @@
39
39
  "@tanglemedia/svelte-starter-core": "0.5.0"
40
40
  },
41
41
  "dependencies": {
42
- "@directus/sdk": "^17.0.2",
42
+ "@directus/sdk": "18.0.1",
43
43
  "@types/js-cookie": "^3.0.6",
44
44
  "esm-env": "^1.0.0",
45
45
  "js-cookie": "^3.0.5"
@@ -35,13 +35,16 @@ export type AdapterClient<Schema extends SchemaShape = SchemaShape> = DirectusCl
35
35
  RestClient<Schema>;
36
36
 
37
37
  /**
38
- * TODO: Various types fixes. The current adapter doesn't correctly follow the types defined under the ApiAdapterAbstract.
38
+ * TODO: Various types fixes. The current adapter doesn't correctly follow the types defined under the ApiAdapterAbstract.
39
39
  * See the fetch adapter under the core
40
40
  */
41
41
  export class DirectusApiAdapter<
42
- Schema extends SchemaShape = SchemaShape,
43
- Path extends RegularCollections<Schema> = RegularCollections<Schema>
44
- > extends ApiAdapterAbstract<DirectusConfig, ApiAdapterRequestConfig, Path, AdapterClient> implements ApiAdapterHandle {
42
+ Schema extends SchemaShape = SchemaShape,
43
+ Path extends RegularCollections<Schema> = RegularCollections<Schema>
44
+ >
45
+ extends ApiAdapterAbstract<DirectusConfig, ApiAdapterRequestConfig, Path, AdapterClient>
46
+ implements ApiAdapterHandle
47
+ {
45
48
  constructor(
46
49
  protected config: DirectusConfig,
47
50
  private readonly directus: AdapterClient<Schema>
@@ -59,7 +62,8 @@ export class DirectusApiAdapter<
59
62
  }
60
63
 
61
64
  normalizeMeta(response: AnyObject) {
62
- const payload = response.data, meta = response.meta as Record<string, unknown>;
65
+ const payload = response.data,
66
+ meta = response.meta as Record<string, unknown>;
63
67
 
64
68
  if (!meta) {
65
69
  return {};
@@ -91,23 +95,28 @@ export class DirectusApiAdapter<
91
95
  const k = this.config.configuration.totalAggregate || 'count';
92
96
  const f = this.config.configuration.totalField || 'id';
93
97
 
94
- const data = await this.directus.request(aggregate(collection, {
95
- aggregate: { [k]: f },
96
- query: {
97
- ...(filter ? { filter } : {}),
98
- ...(search ? { search } : {}),
99
- }
100
- }));
98
+ const data = await this.directus.request(
99
+ aggregate(collection, {
100
+ aggregate: { [k]: f },
101
+ query: {
102
+ ...(filter ? { filter } : {}),
103
+ ...(search ? { search } : {})
104
+ }
105
+ })
106
+ );
107
+
108
+ let total = 0;
101
109
 
102
110
  if (data && data.length === 1) {
103
- return Number(data[0].count);
111
+ const c = data[0][k];
112
+ total = c && typeof c === 'object' ? Number(c[f]) : Number(c);
104
113
  }
105
114
 
106
- return 0;
115
+ return isNaN(total) ? 0 : total;
107
116
  }
108
117
 
109
118
  async transformResponse<T, M extends object = AnyObject>(
110
- res: { data: T, meta?: AnyObject },
119
+ res: { data: T; meta?: AnyObject },
111
120
  status: number = 200
112
121
  ): Promise<ApiResponse<T, Response, M>> {
113
122
  return {
@@ -154,8 +163,11 @@ export class DirectusApiAdapter<
154
163
  }
155
164
  }
156
165
 
157
- public async find<T, Q = T, R = T>(collection: Path, query: ApiFindQuery<Q>): Promise<ApiResponse<R[]>> {
158
- const response = await this.directus.request<T>(readItems(collection, query)) as R[];
166
+ public async find<T, Q = T, R = T>(
167
+ collection: Path,
168
+ query: ApiFindQuery<Q>
169
+ ): Promise<ApiResponse<R[]>> {
170
+ const response = (await this.directus.request<T>(readItems(collection, query))) as R[];
159
171
  const total = await this.includeTotals(collection, query);
160
172
  if (null === total) {
161
173
  return this.transformResponse({ data: response });
@@ -178,13 +190,15 @@ export class DirectusApiAdapter<
178
190
  collection: Path,
179
191
  query: ApiAggregateQuery<Q>
180
192
  ): Promise<ApiResponse<R>> {
181
- const { aggregate: aggregate_, ...rest } = (query || {});
193
+ const { aggregate: aggregate_, ...rest } = query || {};
182
194
 
183
195
  const data = await this.directus.request<T>(
184
196
  aggregate(collection, {
185
- aggregate: aggregate_ ? aggregate_ : {
186
- count: 'id'
187
- },
197
+ aggregate: aggregate_
198
+ ? aggregate_
199
+ : {
200
+ count: 'id'
201
+ },
188
202
  query: rest
189
203
  })
190
204
  );
@@ -215,9 +229,13 @@ export class DirectusApiAdapter<
215
229
  return this.transformResponse({ data }, 202);
216
230
  }
217
231
 
218
- public async put<T extends object, R = T>(collection: Path, key?: ApiId, payload?: AnyObject): Promise<ApiResponse<R>> {
232
+ public async put<T extends object, R = T>(
233
+ collection: Path,
234
+ key?: ApiId,
235
+ payload?: AnyObject
236
+ ): Promise<ApiResponse<R>> {
219
237
  if (key) {
220
- const data = await this.directus.request<T>(updateItem(collection, key, payload)) as R;
238
+ const data = (await this.directus.request<T>(updateItem(collection, key, payload))) as R;
221
239
  return this.transformResponse({ data }, 201);
222
240
  } else {
223
241
  console.error(`Error updating all ${collection}: no key specified`);
package/src/index.ts CHANGED
@@ -5,3 +5,5 @@ export * from './services/auth';
5
5
  export * from './services/register';
6
6
 
7
7
  export type * from './types';
8
+
9
+ export * from './provider/api-references-functions.provider';
@@ -0,0 +1,198 @@
1
+ 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
+ deleteDashboards,
55
+ readExtensions,
56
+ updateExtension,
57
+ readFields,
58
+ readFieldsByCollection,
59
+ readField,
60
+ createField,
61
+ updateField,
62
+ deleteField,
63
+ readFlows,
64
+ readFlow,
65
+ createFlow,
66
+ createFlows,
67
+ updateFlow,
68
+ updateFlows,
69
+ deleteFlow,
70
+ deleteFlows,
71
+ triggerFlow,
72
+ readFolders,
73
+ readFolder,
74
+ createFolder,
75
+ createFolders,
76
+ updateFolder,
77
+ updateFolders,
78
+ deleteFolder,
79
+ deleteFolders,
80
+ readNotifications,
81
+ readNotification,
82
+ createNotification,
83
+ createNotifications,
84
+ updateNotification,
85
+ updateNotifications,
86
+ deleteNotification,
87
+ deleteNotifications,
88
+ readOperations,
89
+ readOperation,
90
+ createOperation,
91
+ createOperations,
92
+ updateOperation,
93
+ updateOperations,
94
+ deleteOperation,
95
+ deleteOperations,
96
+ triggerOperation,
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
+ } from '@directus/sdk';
@@ -1,6 +1,13 @@
1
1
  import type { AuthenticationMode, GraphqlConfig } from '@directus/sdk';
2
2
  import type { BaseApiAdapterConfig } from '@tanglemedia/svelte-starter-core';
3
3
 
4
+ export {
5
+ type AllCollections,
6
+ type DirectusClient,
7
+ type RegularCollections,
8
+ type RestClient
9
+ } from '@directus/sdk';
10
+
4
11
  export type DirectusApiAuthOptions = {
5
12
  mode: AuthenticationMode;
6
13
  config?: Partial<{