nuxt-directus-sdk 6.0.0-beta.1 → 6.0.0-beta.2
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/cli/index.mjs +1 -1
- package/dist/module.d.mts +22 -2
- package/dist/module.d.ts +22 -2
- package/dist/module.json +1 -1
- package/dist/module.mjs +66 -64
- package/dist/rules/index.d.mts +6 -8
- package/dist/rules/index.d.ts +6 -8
- package/dist/rules/index.mjs +2 -2
- package/dist/runtime/composables/auth.d.ts +18 -6
- package/dist/runtime/composables/auth.js +4 -2
- package/dist/runtime/composables/files.d.ts +4 -4
- package/dist/runtime/middleware/auth.d.ts +1 -1
- package/dist/runtime/middleware/guest.d.ts +1 -1
- package/dist/runtime/plugin.d.ts +1 -1
- package/dist/runtime/plugins/visual-editor.client.d.ts +2 -2
- package/dist/runtime/types/fallback.d.ts +7 -4
- package/dist/runtime/types/generate.js +3 -2
- package/dist/runtime/utils/index.d.ts +1 -1
- package/dist/shared/{nuxt-directus-sdk.1qEbZAZ_.mjs → nuxt-directus-sdk.BzXguU5u.mjs} +2 -2
- package/package.json +3 -3
package/dist/cli/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
|
3
3
|
import { resolve, dirname } from 'node:path';
|
|
4
4
|
import { parseArgs } from 'node:util';
|
|
5
5
|
import { createDirectus, staticToken, rest } from '@directus/sdk';
|
|
6
|
-
import { d as diffRemoteRules, e as formatDiff, c as compareRulesPayloads, f as fetchRemoteRules, k as loadRulesFromPayload, o as pushRules, g as formatPushResult, b as fetchRemoteRulesAsJson } from '../shared/nuxt-directus-sdk.
|
|
6
|
+
import { d as diffRemoteRules, e as formatDiff, c as compareRulesPayloads, f as fetchRemoteRules, k as loadRulesFromPayload, o as pushRules, g as formatPushResult, b as fetchRemoteRulesAsJson } from '../shared/nuxt-directus-sdk.BzXguU5u.mjs';
|
|
7
7
|
import { generateTypesFromDirectus } from '../../dist/runtime/types/generate.js';
|
|
8
8
|
|
|
9
9
|
function parseCsv(raw) {
|
package/dist/module.d.mts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
-
import { Query } from '@directus/sdk';
|
|
2
|
+
import { Query, DirectusUser } from '@directus/sdk';
|
|
3
3
|
import { ImageProviders, ImageModifiers } from '@nuxt/image';
|
|
4
4
|
|
|
5
5
|
type DirectusUrl = string | {
|
|
6
6
|
client: string;
|
|
7
7
|
server: string;
|
|
8
8
|
};
|
|
9
|
-
type ReadMeFields = Query<DirectusSchema, DirectusSchema['
|
|
9
|
+
type ReadMeFields = Query<DirectusSchema, DirectusUser<DirectusSchema>>['fields'];
|
|
10
10
|
interface ModuleOptions {
|
|
11
11
|
/**
|
|
12
12
|
* Directus API URL
|
|
@@ -189,6 +189,26 @@ interface ModuleOptions {
|
|
|
189
189
|
*/
|
|
190
190
|
verbose?: boolean;
|
|
191
191
|
};
|
|
192
|
+
/**
|
|
193
|
+
* Auto-import functions from `@directus/sdk`.
|
|
194
|
+
*
|
|
195
|
+
* - `true` (default) — auto-imports every SDK function except those wrapped by
|
|
196
|
+
* this module (e.g. `createDirectus`, `rest`, `authentication`) or explicitly
|
|
197
|
+
* unsupported (e.g. `graphql`, `readGraphqlSdl`).
|
|
198
|
+
* - `false` — disables auto-imports entirely. You import from `@directus/sdk`
|
|
199
|
+
* manually wherever you use SDK functions.
|
|
200
|
+
* - `{ exclude: [...] }` — auto-imports with additional functions excluded.
|
|
201
|
+
* Useful if an SDK function name collides with something else in your app.
|
|
202
|
+
*
|
|
203
|
+
* @default true
|
|
204
|
+
*/
|
|
205
|
+
autoImportSdk?: boolean | {
|
|
206
|
+
/**
|
|
207
|
+
* Additional SDK function names to exclude from auto-import.
|
|
208
|
+
* Added on top of the module's built-in exclusions.
|
|
209
|
+
*/
|
|
210
|
+
exclude?: string[];
|
|
211
|
+
};
|
|
192
212
|
}
|
|
193
213
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
194
214
|
|
package/dist/module.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
-
import { Query } from '@directus/sdk';
|
|
2
|
+
import { Query, DirectusUser } from '@directus/sdk';
|
|
3
3
|
import { ImageProviders, ImageModifiers } from '@nuxt/image';
|
|
4
4
|
|
|
5
5
|
type DirectusUrl = string | {
|
|
6
6
|
client: string;
|
|
7
7
|
server: string;
|
|
8
8
|
};
|
|
9
|
-
type ReadMeFields = Query<DirectusSchema, DirectusSchema['
|
|
9
|
+
type ReadMeFields = Query<DirectusSchema, DirectusUser<DirectusSchema>>['fields'];
|
|
10
10
|
interface ModuleOptions {
|
|
11
11
|
/**
|
|
12
12
|
* Directus API URL
|
|
@@ -189,6 +189,26 @@ interface ModuleOptions {
|
|
|
189
189
|
*/
|
|
190
190
|
verbose?: boolean;
|
|
191
191
|
};
|
|
192
|
+
/**
|
|
193
|
+
* Auto-import functions from `@directus/sdk`.
|
|
194
|
+
*
|
|
195
|
+
* - `true` (default) — auto-imports every SDK function except those wrapped by
|
|
196
|
+
* this module (e.g. `createDirectus`, `rest`, `authentication`) or explicitly
|
|
197
|
+
* unsupported (e.g. `graphql`, `readGraphqlSdl`).
|
|
198
|
+
* - `false` — disables auto-imports entirely. You import from `@directus/sdk`
|
|
199
|
+
* manually wherever you use SDK functions.
|
|
200
|
+
* - `{ exclude: [...] }` — auto-imports with additional functions excluded.
|
|
201
|
+
* Useful if an SDK function name collides with something else in your app.
|
|
202
|
+
*
|
|
203
|
+
* @default true
|
|
204
|
+
*/
|
|
205
|
+
autoImportSdk?: boolean | {
|
|
206
|
+
/**
|
|
207
|
+
* Additional SDK function names to exclude from auto-import.
|
|
208
|
+
* Added on top of the module's built-in exclusions.
|
|
209
|
+
*/
|
|
210
|
+
exclude?: string[];
|
|
211
|
+
};
|
|
192
212
|
}
|
|
193
213
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
194
214
|
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as directusSdk from '@directus/sdk';
|
|
1
2
|
import { useLogger, defineNuxtModule, createResolver, addServerHandler, hasNuxtModule, tryResolveModule, addPlugin, addComponentsDir, addRouteMiddleware, addImportsDir, addImportsSources, addTypeTemplate, installModule } from '@nuxt/kit';
|
|
2
3
|
import { colors } from 'consola/utils';
|
|
3
4
|
import { defu } from 'defu';
|
|
@@ -6,7 +7,52 @@ import { generateTypesFromDirectus } from '../dist/runtime/types/index.js';
|
|
|
6
7
|
import { useUrl } from '../dist/runtime/utils/index.js';
|
|
7
8
|
|
|
8
9
|
const name = "nuxt-directus-sdk";
|
|
9
|
-
const version = "6.0.0-beta.
|
|
10
|
+
const version = "6.0.0-beta.2";
|
|
11
|
+
|
|
12
|
+
const SDK_CLIENT_FACTORIES = /* @__PURE__ */ new Set([
|
|
13
|
+
"createDirectus",
|
|
14
|
+
"rest",
|
|
15
|
+
"graphql",
|
|
16
|
+
"authentication",
|
|
17
|
+
"staticToken",
|
|
18
|
+
"realtime",
|
|
19
|
+
"memoryStorage",
|
|
20
|
+
"readGraphqlSdl"
|
|
21
|
+
]);
|
|
22
|
+
const SDK_REALTIME_INTERNALS = /* @__PURE__ */ new Set([
|
|
23
|
+
"auth",
|
|
24
|
+
"pong",
|
|
25
|
+
"sleep",
|
|
26
|
+
"messageCallback"
|
|
27
|
+
]);
|
|
28
|
+
const SDK_INTERNALS = /* @__PURE__ */ new Set([
|
|
29
|
+
"throwIfEmpty",
|
|
30
|
+
"throwIfCoreCollection",
|
|
31
|
+
"getAuthEndpoint",
|
|
32
|
+
"formatFields",
|
|
33
|
+
"queryToParams"
|
|
34
|
+
]);
|
|
35
|
+
const SDK_COMPOSABLE_WRAPPED = /* @__PURE__ */ new Set([
|
|
36
|
+
"readMe",
|
|
37
|
+
"updateMe",
|
|
38
|
+
"createUser",
|
|
39
|
+
"inviteUser",
|
|
40
|
+
"acceptUserInvite",
|
|
41
|
+
"passwordRequest",
|
|
42
|
+
"passwordReset",
|
|
43
|
+
"uploadFiles"
|
|
44
|
+
]);
|
|
45
|
+
const SDK_DENYLIST = /* @__PURE__ */ new Set([
|
|
46
|
+
...SDK_CLIENT_FACTORIES,
|
|
47
|
+
...SDK_REALTIME_INTERNALS,
|
|
48
|
+
...SDK_INTERNALS,
|
|
49
|
+
...SDK_COMPOSABLE_WRAPPED
|
|
50
|
+
]);
|
|
51
|
+
function discoverSdkImports(sdkModule, userExclude = /* @__PURE__ */ new Set()) {
|
|
52
|
+
return Object.keys(sdkModule).filter(
|
|
53
|
+
(key) => typeof sdkModule[key] === "function" && !SDK_DENYLIST.has(key) && !userExclude.has(key)
|
|
54
|
+
);
|
|
55
|
+
}
|
|
10
56
|
|
|
11
57
|
const configKey = "directus";
|
|
12
58
|
const logger = useLogger("nuxt-directus-sdk");
|
|
@@ -31,6 +77,7 @@ const module$1 = defineNuxtModule({
|
|
|
31
77
|
enabled: true,
|
|
32
78
|
prefix: ""
|
|
33
79
|
},
|
|
80
|
+
autoImportSdk: true,
|
|
34
81
|
auth: {
|
|
35
82
|
enabled: true,
|
|
36
83
|
enableGlobalAuthMiddleware: false,
|
|
@@ -46,10 +93,11 @@ const module$1 = defineNuxtModule({
|
|
|
46
93
|
}
|
|
47
94
|
},
|
|
48
95
|
async setup(options, nuxtApp) {
|
|
96
|
+
const loggerMessage = [];
|
|
49
97
|
const clientUrl = typeof options.url === "string" ? options.url : options.url?.client;
|
|
50
98
|
const serverUrl = typeof options.url === "string" ? options.url : options.url?.server;
|
|
51
99
|
if (!clientUrl) {
|
|
52
|
-
|
|
100
|
+
loggerMessage.push(`\u26A0\uFE0F No Directus URL found at build time:`, ` - Set it in config options, .env file as DIRECTUS_URL or at runtime via NUXT_PUBLIC_DIRECTUS_URL.`, "");
|
|
53
101
|
}
|
|
54
102
|
const resolver = createResolver(import.meta.url);
|
|
55
103
|
async function registerModule(name2, key, moduleOptions) {
|
|
@@ -59,7 +107,6 @@ const module$1 = defineNuxtModule({
|
|
|
59
107
|
nuxtApp.options[key] = defu(nuxtApp.options[key], moduleOptions);
|
|
60
108
|
}
|
|
61
109
|
}
|
|
62
|
-
const loggerMessage = [];
|
|
63
110
|
const devProxyConfig = typeof options.devProxy === "boolean" ? { enabled: options.devProxy } : { ...options.devProxy };
|
|
64
111
|
const directusUrl = serverUrl || clientUrl;
|
|
65
112
|
const devProxyEnabled = devProxyConfig.enabled ?? nuxtApp.options.dev;
|
|
@@ -104,8 +151,8 @@ const module$1 = defineNuxtModule({
|
|
|
104
151
|
if (req.url?.startsWith(wsProxyPath)) {
|
|
105
152
|
try {
|
|
106
153
|
proxy.ws(req, socket, head);
|
|
107
|
-
} catch (
|
|
108
|
-
logger.error("WebSocket proxy error:",
|
|
154
|
+
} catch (error) {
|
|
155
|
+
logger.error("WebSocket proxy error:", error instanceof Error ? error.message : String(error));
|
|
109
156
|
if (!socket.destroyed) {
|
|
110
157
|
socket.destroy();
|
|
111
158
|
}
|
|
@@ -127,7 +174,7 @@ const module$1 = defineNuxtModule({
|
|
|
127
174
|
path: devProxyPath,
|
|
128
175
|
wsPath: wsProxyPath
|
|
129
176
|
};
|
|
130
|
-
} else if (!nuxtApp.options.dev) {
|
|
177
|
+
} else if (!nuxtApp.options.dev && directusUrl) {
|
|
131
178
|
loggerMessage.push(`\u{1F310} Production Mode:`, ` - SDK connects directly to ${colors.dim(`${directusUrl}`)}`, "");
|
|
132
179
|
options.devProxy = false;
|
|
133
180
|
}
|
|
@@ -165,7 +212,7 @@ const module$1 = defineNuxtModule({
|
|
|
165
212
|
prefix: "",
|
|
166
213
|
global: true
|
|
167
214
|
});
|
|
168
|
-
loggerMessage.push("\u{1F4DD} Visual Editor
|
|
215
|
+
loggerMessage.push("\u{1F4DD} Visual Editor Component Added", "");
|
|
169
216
|
}
|
|
170
217
|
if (options.auth?.enableGlobalAuthMiddleware) {
|
|
171
218
|
loggerMessage.push("\u{1F512} Auth middleware installed globally.", "");
|
|
@@ -180,69 +227,24 @@ const module$1 = defineNuxtModule({
|
|
|
180
227
|
path: resolver.resolve("./runtime/middleware/guest")
|
|
181
228
|
});
|
|
182
229
|
addImportsDir(resolver.resolve("./runtime/composables"));
|
|
183
|
-
const
|
|
230
|
+
const autoImportSdk = options.autoImportSdk ?? true;
|
|
231
|
+
const userExclude = new Set(
|
|
232
|
+
typeof autoImportSdk === "object" && autoImportSdk?.exclude ? autoImportSdk.exclude : []
|
|
233
|
+
);
|
|
234
|
+
const directusSdkImports = autoImportSdk === false ? null : {
|
|
184
235
|
from: "@directus/sdk",
|
|
185
|
-
imports:
|
|
186
|
-
"aggregate",
|
|
187
|
-
"generateUid",
|
|
188
|
-
"createComment",
|
|
189
|
-
"updateComment",
|
|
190
|
-
"deleteComment",
|
|
191
|
-
"createField",
|
|
192
|
-
"createItem",
|
|
193
|
-
"createItems",
|
|
194
|
-
"deleteField",
|
|
195
|
-
"deleteFile",
|
|
196
|
-
"deleteFiles",
|
|
197
|
-
"readActivities",
|
|
198
|
-
"readActivity",
|
|
199
|
-
"deleteItem",
|
|
200
|
-
"deleteItems",
|
|
201
|
-
"deleteUser",
|
|
202
|
-
"deleteUsers",
|
|
203
|
-
"importFile",
|
|
204
|
-
"readCollection",
|
|
205
|
-
"readCollections",
|
|
206
|
-
"createCollection",
|
|
207
|
-
"updateCollection",
|
|
208
|
-
"deleteCollection",
|
|
209
|
-
"readField",
|
|
210
|
-
"readFieldsByCollection",
|
|
211
|
-
"readFields",
|
|
212
|
-
"readFile",
|
|
213
|
-
"readFiles",
|
|
214
|
-
"readItem",
|
|
215
|
-
"readItems",
|
|
216
|
-
"readSingleton",
|
|
217
|
-
"readMe",
|
|
218
|
-
"createUser",
|
|
219
|
-
"createUsers",
|
|
220
|
-
"readUser",
|
|
221
|
-
"readUsers",
|
|
222
|
-
"readProviders",
|
|
223
|
-
"readFolder",
|
|
224
|
-
"readFolders",
|
|
225
|
-
"uploadFiles",
|
|
226
|
-
"updateField",
|
|
227
|
-
"updateFile",
|
|
228
|
-
"updateFiles",
|
|
229
|
-
"updateFolder",
|
|
230
|
-
"updateFolders",
|
|
231
|
-
"updateItem",
|
|
232
|
-
"updateItems",
|
|
233
|
-
"updateSingleton",
|
|
234
|
-
"updateMe",
|
|
235
|
-
"updateUser",
|
|
236
|
-
"updateUsers",
|
|
237
|
-
"withToken"
|
|
238
|
-
]
|
|
236
|
+
imports: discoverSdkImports(directusSdk, userExclude)
|
|
239
237
|
};
|
|
240
|
-
|
|
238
|
+
if (directusSdkImports) {
|
|
239
|
+
addImportsSources(directusSdkImports);
|
|
240
|
+
}
|
|
241
241
|
nuxtApp.hook("nitro:config", (nitroConfig) => {
|
|
242
242
|
nitroConfig.alias = nitroConfig.alias || {};
|
|
243
243
|
nitroConfig.imports = nitroConfig.imports || {};
|
|
244
244
|
nitroConfig.imports.presets = nitroConfig.imports.presets || [];
|
|
245
|
-
|
|
245
|
+
if (directusSdkImports) {
|
|
246
|
+
nitroConfig.imports.presets.push(directusSdkImports);
|
|
247
|
+
}
|
|
246
248
|
nitroConfig.imports.presets.push({
|
|
247
249
|
from: resolver.resolve("./runtime/server/services"),
|
|
248
250
|
imports: [
|
package/dist/rules/index.d.mts
CHANGED
|
@@ -98,8 +98,8 @@ interface PermissionConfig<Schema, Collection extends keyof Schema> {
|
|
|
98
98
|
fields?: '*' | (keyof CollectionItem<Schema, Collection>)[];
|
|
99
99
|
/** Filter that restricts which items can be accessed */
|
|
100
100
|
filter?: QueryFilter<Schema, CollectionItem<Schema, Collection>>;
|
|
101
|
-
/** Default values applied when creating/updating items */
|
|
102
|
-
presets?: Partial<CollectionItem<Schema, Collection
|
|
101
|
+
/** Default values applied when creating/updating items. Accepts schema-typed values or Directus Dynamic Variables (e.g. `$CURRENT_USER`) */
|
|
102
|
+
presets?: Partial<CollectionItem<Schema, Collection>> | Record<string, unknown>;
|
|
103
103
|
/** Validation rules using Standard Schema or Directus format */
|
|
104
104
|
validation?: StandardSchemaV1<Partial<CollectionItem<Schema, Collection>>> | DirectusValidation;
|
|
105
105
|
}
|
|
@@ -301,8 +301,8 @@ interface PermissionConfigInput<Schema, K extends keyof Schema> {
|
|
|
301
301
|
fields?: '*' | (keyof CollectionItem<Schema, K>)[];
|
|
302
302
|
/** Filter that restricts which items can be accessed */
|
|
303
303
|
filter?: QueryFilter<Schema, CollectionItem<Schema, K>>;
|
|
304
|
-
/** Default values applied when creating/updating items */
|
|
305
|
-
presets?: Partial<CollectionItem<Schema, K
|
|
304
|
+
/** Default values applied when creating/updating items. Accepts schema-typed values or Directus Dynamic Variables (e.g. `$CURRENT_USER`) */
|
|
305
|
+
presets?: Partial<CollectionItem<Schema, K>> | Record<string, unknown>;
|
|
306
306
|
/** Validation rules using Standard Schema or Directus format */
|
|
307
307
|
validation?: StandardSchemaV1<Partial<CollectionItem<Schema, K>>> | DirectusValidation;
|
|
308
308
|
}
|
|
@@ -605,11 +605,9 @@ interface DiffChange<T> {
|
|
|
605
605
|
remote?: T;
|
|
606
606
|
}
|
|
607
607
|
/** Role diff change */
|
|
608
|
-
|
|
609
|
-
}
|
|
608
|
+
type RoleDiffChange = DiffChange<DirectusRolePayload>;
|
|
610
609
|
/** Policy diff change */
|
|
611
|
-
|
|
612
|
-
}
|
|
610
|
+
type PolicyDiffChange = DiffChange<DirectusPolicyPayload>;
|
|
613
611
|
/** Permission diff change */
|
|
614
612
|
interface PermissionDiffChange extends DiffChange<DirectusPermissionPayload> {
|
|
615
613
|
collection: string;
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -98,8 +98,8 @@ interface PermissionConfig<Schema, Collection extends keyof Schema> {
|
|
|
98
98
|
fields?: '*' | (keyof CollectionItem<Schema, Collection>)[];
|
|
99
99
|
/** Filter that restricts which items can be accessed */
|
|
100
100
|
filter?: QueryFilter<Schema, CollectionItem<Schema, Collection>>;
|
|
101
|
-
/** Default values applied when creating/updating items */
|
|
102
|
-
presets?: Partial<CollectionItem<Schema, Collection
|
|
101
|
+
/** Default values applied when creating/updating items. Accepts schema-typed values or Directus Dynamic Variables (e.g. `$CURRENT_USER`) */
|
|
102
|
+
presets?: Partial<CollectionItem<Schema, Collection>> | Record<string, unknown>;
|
|
103
103
|
/** Validation rules using Standard Schema or Directus format */
|
|
104
104
|
validation?: StandardSchemaV1<Partial<CollectionItem<Schema, Collection>>> | DirectusValidation;
|
|
105
105
|
}
|
|
@@ -301,8 +301,8 @@ interface PermissionConfigInput<Schema, K extends keyof Schema> {
|
|
|
301
301
|
fields?: '*' | (keyof CollectionItem<Schema, K>)[];
|
|
302
302
|
/** Filter that restricts which items can be accessed */
|
|
303
303
|
filter?: QueryFilter<Schema, CollectionItem<Schema, K>>;
|
|
304
|
-
/** Default values applied when creating/updating items */
|
|
305
|
-
presets?: Partial<CollectionItem<Schema, K
|
|
304
|
+
/** Default values applied when creating/updating items. Accepts schema-typed values or Directus Dynamic Variables (e.g. `$CURRENT_USER`) */
|
|
305
|
+
presets?: Partial<CollectionItem<Schema, K>> | Record<string, unknown>;
|
|
306
306
|
/** Validation rules using Standard Schema or Directus format */
|
|
307
307
|
validation?: StandardSchemaV1<Partial<CollectionItem<Schema, K>>> | DirectusValidation;
|
|
308
308
|
}
|
|
@@ -605,11 +605,9 @@ interface DiffChange<T> {
|
|
|
605
605
|
remote?: T;
|
|
606
606
|
}
|
|
607
607
|
/** Role diff change */
|
|
608
|
-
|
|
609
|
-
}
|
|
608
|
+
type RoleDiffChange = DiffChange<DirectusRolePayload>;
|
|
610
609
|
/** Policy diff change */
|
|
611
|
-
|
|
612
|
-
}
|
|
610
|
+
type PolicyDiffChange = DiffChange<DirectusPolicyPayload>;
|
|
613
611
|
/** Permission diff change */
|
|
614
612
|
interface PermissionDiffChange extends DiffChange<DirectusPermissionPayload> {
|
|
615
613
|
collection: string;
|
package/dist/rules/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as isStandardSchema } from '../shared/nuxt-directus-sdk.
|
|
2
|
-
export { c as compareRulesPayloads, d as diffRemoteRules, a as diffRules, f as fetchRemoteRules, b as fetchRemoteRulesAsJson, e as formatDiff, g as formatPushResult, h as isValidationStandardSchema, l as loadRulesFromJson, j as loadRulesFromJsonFile, k as loadRulesFromPayload, m as loadRulesFromPayloadFile, n as normalizeRules, p as pullRules, o as pushRules, r as rulesToJson, s as serializeToDirectusApi, q as serializeToJson, t as toDirectusValidation } from '../shared/nuxt-directus-sdk.
|
|
1
|
+
import { i as isStandardSchema } from '../shared/nuxt-directus-sdk.BzXguU5u.mjs';
|
|
2
|
+
export { c as compareRulesPayloads, d as diffRemoteRules, a as diffRules, f as fetchRemoteRules, b as fetchRemoteRulesAsJson, e as formatDiff, g as formatPushResult, h as isValidationStandardSchema, l as loadRulesFromJson, j as loadRulesFromJsonFile, k as loadRulesFromPayload, m as loadRulesFromPayloadFile, n as normalizeRules, p as pullRules, o as pushRules, r as rulesToJson, s as serializeToDirectusApi, q as serializeToJson, t as toDirectusValidation } from '../shared/nuxt-directus-sdk.BzXguU5u.mjs';
|
|
3
3
|
import '@directus/sdk';
|
|
4
4
|
|
|
5
5
|
function isPolicyReference(input) {
|
|
@@ -1,19 +1,31 @@
|
|
|
1
1
|
import type { ComputedRef, Ref } from '#imports';
|
|
2
2
|
import type { RouteLocationRaw } from '#vue-router';
|
|
3
|
-
import type { LoginOptions } from '@directus/sdk';
|
|
4
|
-
import type {
|
|
3
|
+
import type { DirectusUser as DirectusUserSDK, NestedPartial, LoginOptions } from '@directus/sdk';
|
|
4
|
+
import type { RegisterUserInput } from '@directus/types';
|
|
5
|
+
/**
|
|
6
|
+
* Fields that can be passed to {@link useDirectusAuth.updateMe}.
|
|
7
|
+
*
|
|
8
|
+
* `role` and `policies` are intentionally excluded — users cannot elevate their
|
|
9
|
+
* own privileges via this composable.
|
|
10
|
+
*
|
|
11
|
+
* `avatar` accepts a pre-uploaded file ID (`string`). To change a user's avatar,
|
|
12
|
+
* first upload the file via the files endpoint to get its ID, then pass that ID here.
|
|
13
|
+
*/
|
|
14
|
+
export type UpdateMeInput = Omit<NestedPartial<DirectusUserSDK<DirectusSchema>>, 'id' | 'role' | 'policies' | 'avatar'> & {
|
|
15
|
+
avatar?: string | null;
|
|
16
|
+
};
|
|
5
17
|
export interface DirectusAuth {
|
|
6
18
|
user: Ref<DirectusUser | null>;
|
|
7
19
|
loggedIn: ComputedRef<boolean>;
|
|
8
|
-
readMe: () => Promise<DirectusUser |
|
|
9
|
-
updateMe: (data:
|
|
20
|
+
readMe: () => Promise<DirectusUser | null>;
|
|
21
|
+
updateMe: (data: UpdateMeInput) => Promise<DirectusUser>;
|
|
10
22
|
login: (email: string, password: string, options?: LoginOptions & {
|
|
11
23
|
redirect?: boolean | RouteLocationRaw;
|
|
12
24
|
}) => Promise<DirectusUser | null>;
|
|
13
25
|
loginWithProvider: (provider: string, redirectOnLogin?: boolean | string) => Promise<void>;
|
|
14
26
|
logout: (redirect?: boolean | RouteLocationRaw) => Promise<void>;
|
|
15
|
-
createUser: (data: RegisterUserInput
|
|
16
|
-
register: (data: RegisterUserInput
|
|
27
|
+
createUser: (data: RegisterUserInput) => Promise<DirectusUser>;
|
|
28
|
+
register: (data: RegisterUserInput) => Promise<DirectusUser>;
|
|
17
29
|
inviteUser: (email: string, role: string, inviteUrl?: string | undefined) => Promise<void>;
|
|
18
30
|
acceptUserInvite: (token: string, password: string) => Promise<void>;
|
|
19
31
|
passwordRequest: (email: string, resetUrl?: string | undefined) => Promise<void>;
|
|
@@ -30,7 +30,8 @@ export function useDirectusAuth() {
|
|
|
30
30
|
}
|
|
31
31
|
loading.value = true;
|
|
32
32
|
try {
|
|
33
|
-
const
|
|
33
|
+
const fields = config.public.directus.auth?.readMeFields;
|
|
34
|
+
const response = await directus.request(directusReadMe(fields?.length ? { fields } : void 0));
|
|
34
35
|
if (!response.id) {
|
|
35
36
|
console.warn("Directus is not configured to return the 'id' field for DirectusUsers.");
|
|
36
37
|
}
|
|
@@ -47,7 +48,8 @@ export function useDirectusAuth() {
|
|
|
47
48
|
const currentUser = user.value;
|
|
48
49
|
if (!currentUser?.id)
|
|
49
50
|
throw new Error("No user available");
|
|
50
|
-
const
|
|
51
|
+
const fields = config.public.directus.auth?.readMeFields;
|
|
52
|
+
const response = await directus.request(directusUpdateMe(data, fields?.length ? { fields } : void 0));
|
|
51
53
|
user.value = response;
|
|
52
54
|
return user.value;
|
|
53
55
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { DirectusFile, DirectusSchema } from '#build/types/directus';
|
|
2
|
-
import type { Query } from '@directus/sdk';
|
|
2
|
+
import type { DirectusFile as DirectusSdkFile, Query } from '@directus/sdk';
|
|
3
3
|
interface DirectusFileUpload {
|
|
4
4
|
file: File;
|
|
5
|
-
data?: Record<keyof DirectusFile, string
|
|
5
|
+
data?: Partial<Record<keyof DirectusFile, string>>;
|
|
6
6
|
}
|
|
7
|
-
export declare function uploadDirectusFile(file: DirectusFileUpload, query?: Query<DirectusSchema, DirectusSchema
|
|
8
|
-
export declare function uploadDirectusFiles(files: DirectusFileUpload[], query?: Query<DirectusSchema, DirectusSchema
|
|
7
|
+
export declare function uploadDirectusFile(file: DirectusFileUpload, query?: Query<DirectusSchema, DirectusSdkFile<DirectusSchema>>): Promise<any>;
|
|
8
|
+
export declare function uploadDirectusFiles(files: DirectusFileUpload[], query?: Query<DirectusSchema, DirectusSdkFile<DirectusSchema>>): Promise<any>;
|
|
9
9
|
export type DirectusThumbnailFormat = 'jpg' | 'png' | 'webp' | 'tiff' | 'avif';
|
|
10
10
|
export type DirectusThumbnailFit = 'cover' | 'contain' | 'inside' | 'outside';
|
|
11
11
|
export interface DirectusFileOptions {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: import("
|
|
1
|
+
declare const _default: import("#app").RouteMiddleware;
|
|
2
2
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: import("
|
|
1
|
+
declare const _default: import("#app").RouteMiddleware;
|
|
2
2
|
export default _default;
|
package/dist/runtime/plugin.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: import("
|
|
1
|
+
declare const _default: import("#app").Plugin<Record<string, unknown>> & import("#app").ObjectPlugin<Record<string, unknown>>;
|
|
2
2
|
export default _default;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
declare const _default: import("
|
|
1
|
+
declare const _default: import("#app").Plugin<{
|
|
2
2
|
directusVisualEditing: {
|
|
3
3
|
refresh: () => Promise<void>;
|
|
4
4
|
};
|
|
5
|
-
}> & import("
|
|
5
|
+
}> & import("#app").ObjectPlugin<{
|
|
6
6
|
directusVisualEditing: {
|
|
7
7
|
refresh: () => Promise<void>;
|
|
8
8
|
};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
export
|
|
2
|
-
directus_users?: Record<string, never>
|
|
3
|
-
}
|
|
1
|
+
export {}
|
|
4
2
|
|
|
5
|
-
declare global {
|
|
3
|
+
declare global {
|
|
4
|
+
// Empty by design — generated types augment this; the fallback keeps DirectusSchema always declared.
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
6
|
+
interface DirectusSchema {
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -132,7 +132,7 @@ export function transformSnapshotToTypeString(collections, fields, relations, pr
|
|
|
132
132
|
});
|
|
133
133
|
const customInterfaceBlocks = generatedCollections.map((g) => g.interfaceBlock);
|
|
134
134
|
const directusSchemaBlock = generateDirectusSchemaInterface(allCollectionsForSchema, prefix, singletonCollectionNames);
|
|
135
|
-
const allCollectionNames = allCollectionsForSchema.map((c) => c.collection);
|
|
135
|
+
const allCollectionNames = allCollectionsForSchema.filter((c) => !collectionIsDirectusSystem(c.collection)).map((c) => c.collection);
|
|
136
136
|
const enumBlock = generateCollectionNamesEnum(allCollectionNames, prefix);
|
|
137
137
|
const bodyParts = [
|
|
138
138
|
...uniqueExtensionOutputs,
|
|
@@ -305,8 +305,9 @@ ${fieldLines.join("\n")}
|
|
|
305
305
|
function generateDirectusSchemaInterface(allCollections, prefix, singletons = /* @__PURE__ */ new Set()) {
|
|
306
306
|
const entries = allCollections.map((collection) => {
|
|
307
307
|
const isSingleton = collection.meta?.singleton === true;
|
|
308
|
+
const isDirectusSystemCollection = collectionIsDirectusSystem(collection.collection);
|
|
308
309
|
const interfaceName = collectionNameToInterfaceName(collection.collection, prefix, singletons);
|
|
309
|
-
const valueType = isSingleton ? interfaceName : `${interfaceName}[]`;
|
|
310
|
+
const valueType = isSingleton || isDirectusSystemCollection ? interfaceName : `${interfaceName}[]`;
|
|
310
311
|
return ` ${collection.collection}: ${valueType};`;
|
|
311
312
|
});
|
|
312
313
|
return `interface DirectusSchema {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { Slot } from './slot.js';
|
|
2
2
|
export declare function useUrl(base: string, ...paths: string[]): string;
|
|
3
|
-
export declare function isQueryParamEnabled(value:
|
|
3
|
+
export declare function isQueryParamEnabled(value: unknown): value is true | 1 | "true" | "1";
|
|
@@ -215,8 +215,8 @@ function convertPayloadPermission(perm) {
|
|
|
215
215
|
}
|
|
216
216
|
return {
|
|
217
217
|
fields: perm.fields ? perm.fields.includes("*") ? "*" : perm.fields : void 0,
|
|
218
|
-
filter: perm.permissions,
|
|
219
|
-
presets: perm.presets,
|
|
218
|
+
filter: perm.permissions ?? void 0,
|
|
219
|
+
presets: perm.presets ?? void 0,
|
|
220
220
|
validation: perm.validation ?? void 0
|
|
221
221
|
};
|
|
222
222
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-directus-sdk",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "6.0.0-beta.
|
|
4
|
+
"version": "6.0.0-beta.2",
|
|
5
5
|
"packageManager": "pnpm@10.32.1",
|
|
6
6
|
"description": "A Nuxt module for Directus with built-in authentication, realtime, file management, type generation, and visual editor support.",
|
|
7
7
|
"author": "Matthew Rollinson <matt@rolley.io>",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"ufo": "^1.6.3"
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|
|
87
|
-
"@
|
|
87
|
+
"@nuxt/eslint-config": "^1.15.2",
|
|
88
88
|
"@directus/sdk": "^21.2.2",
|
|
89
89
|
"@directus/types": "^15.0.2",
|
|
90
90
|
"@directus/visual-editing": "^2.0.0",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"@nuxt/test-utils": "^4.0.2",
|
|
96
96
|
"@types/http-proxy": "^1.17.17",
|
|
97
97
|
"changelogen": "^0.6.1",
|
|
98
|
-
"eslint": "^
|
|
98
|
+
"eslint": "^10.2.1",
|
|
99
99
|
"nuxt": "^4.4.2",
|
|
100
100
|
"typescript": "^6.0.3",
|
|
101
101
|
"vitepress": "^1.6.4",
|