@aphexcms/cms-core 8.0.0 → 9.0.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/dist/api/api-keys.d.ts +8 -3
- package/dist/api/api-keys.d.ts.map +1 -1
- package/dist/api/schemas/assets.js +1 -1
- package/dist/api/schemas/documents.d.ts +0 -2
- package/dist/api/schemas/documents.d.ts.map +1 -1
- package/dist/api/schemas/documents.js +2 -8
- package/dist/api/schemas/instance.d.ts +6 -0
- package/dist/api/schemas/instance.d.ts.map +1 -0
- package/dist/api/schemas/instance.js +7 -0
- package/dist/api/schemas/user.js +1 -1
- package/dist/auth/auth-hooks.d.ts.map +1 -1
- package/dist/auth/auth-hooks.js +9 -3
- package/dist/cli/generate-types.d.ts.map +1 -1
- package/dist/cli/generate-types.js +1 -3
- package/dist/cli/generate-types.js.map +1 -1
- package/dist/components/AdminApp.svelte +43 -19
- package/dist/components/AdminApp.svelte.d.ts.map +1 -1
- package/dist/components/admin/DocumentEditor.svelte +47 -49
- package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
- package/dist/components/admin/MediaBrowser.svelte +7 -7
- package/dist/components/admin/fields/ArrayField.svelte +4 -2
- package/dist/components/admin/fields/FileField.svelte +1 -1
- package/dist/components/admin/fields/ImageField.svelte +1 -1
- package/dist/components/admin/fields/ReferenceField.svelte +5 -3
- package/dist/components/layout/OrganizationSwitcher.svelte +1 -1
- package/dist/components/layout/sidebar/NavMain.svelte +9 -1
- package/dist/components/layout/sidebar/NavMain.svelte.d.ts.map +1 -1
- package/dist/db/interfaces/asset.d.ts +2 -4
- package/dist/db/interfaces/asset.d.ts.map +1 -1
- package/dist/db/interfaces/organization.d.ts +1 -1
- package/dist/db/interfaces/organization.d.ts.map +1 -1
- package/dist/field-access.d.ts.map +1 -1
- package/dist/field-access.js +5 -1
- package/dist/graphql/depth-limit.d.ts +8 -0
- package/dist/graphql/depth-limit.d.ts.map +1 -0
- package/dist/graphql/depth-limit.js +79 -0
- package/dist/graphql/index.d.ts.map +1 -1
- package/dist/graphql/index.js +12 -1
- package/dist/graphql/resolvers.d.ts.map +1 -1
- package/dist/graphql/resolvers.js +9 -11
- package/dist/hooks.d.ts +2 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +5 -2
- package/dist/lib/api/api-keys.d.ts +8 -3
- package/dist/lib/api/api-keys.d.ts.map +1 -1
- package/dist/lib/api/api-keys.js.map +1 -1
- package/dist/lib/api/schemas/assets.js +1 -1
- package/dist/lib/api/schemas/assets.js.map +1 -1
- package/dist/lib/api/schemas/documents.d.ts +0 -2
- package/dist/lib/api/schemas/documents.d.ts.map +1 -1
- package/dist/lib/api/schemas/documents.js +2 -8
- package/dist/lib/api/schemas/documents.js.map +1 -1
- package/dist/lib/api/schemas/instance.d.ts +6 -0
- package/dist/lib/api/schemas/instance.d.ts.map +1 -0
- package/dist/lib/api/schemas/instance.js +8 -0
- package/dist/lib/api/schemas/instance.js.map +1 -0
- package/dist/lib/api/schemas/user.js +1 -1
- package/dist/lib/auth/auth-hooks.d.ts.map +1 -1
- package/dist/lib/auth/auth-hooks.js +9 -3
- package/dist/lib/auth/auth-hooks.js.map +1 -1
- package/dist/lib/db/interfaces/asset.d.ts +2 -4
- package/dist/lib/db/interfaces/asset.d.ts.map +1 -1
- package/dist/lib/db/interfaces/organization.d.ts +1 -1
- package/dist/lib/db/interfaces/organization.d.ts.map +1 -1
- package/dist/lib/field-access.d.ts.map +1 -1
- package/dist/lib/field-access.js +5 -1
- package/dist/lib/field-access.js.map +1 -1
- package/dist/lib/graphql/depth-limit.d.ts +8 -0
- package/dist/lib/graphql/depth-limit.d.ts.map +1 -0
- package/dist/lib/graphql/depth-limit.js +80 -0
- package/dist/lib/graphql/depth-limit.js.map +1 -0
- package/dist/lib/graphql/index.d.ts.map +1 -1
- package/dist/lib/graphql/index.js +12 -1
- package/dist/lib/graphql/index.js.map +1 -1
- package/dist/lib/graphql/resolvers.d.ts.map +1 -1
- package/dist/lib/graphql/resolvers.js +9 -11
- package/dist/lib/graphql/resolvers.js.map +1 -1
- package/dist/lib/hooks.d.ts +2 -0
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +5 -2
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/local-api/collection-api.d.ts.map +1 -1
- package/dist/lib/local-api/collection-api.js +7 -9
- package/dist/lib/local-api/collection-api.js.map +1 -1
- package/dist/lib/local-api/index.d.ts +5 -1
- package/dist/lib/local-api/index.d.ts.map +1 -1
- package/dist/lib/local-api/index.js +12 -4
- package/dist/lib/local-api/index.js.map +1 -1
- package/dist/lib/routes/assets-cdn.d.ts.map +1 -1
- package/dist/lib/routes/assets-cdn.js +8 -3
- package/dist/lib/routes/assets-cdn.js.map +1 -1
- package/dist/lib/server/api/index.d.ts.map +1 -1
- package/dist/lib/server/api/index.js +18 -0
- package/dist/lib/server/api/index.js.map +1 -1
- package/dist/lib/server/api/routes/assets-bulk.d.ts.map +1 -1
- package/dist/lib/server/api/routes/assets-bulk.js +4 -0
- package/dist/lib/server/api/routes/assets-bulk.js.map +1 -1
- package/dist/lib/server/api/routes/assets-by-id.d.ts.map +1 -1
- package/dist/lib/server/api/routes/assets-by-id.js +7 -0
- package/dist/lib/server/api/routes/assets-by-id.js.map +1 -1
- package/dist/lib/server/api/routes/assets.d.ts.map +1 -1
- package/dist/lib/server/api/routes/assets.js +18 -9
- package/dist/lib/server/api/routes/assets.js.map +1 -1
- package/dist/lib/server/api/routes/document-versions.d.ts.map +1 -1
- package/dist/lib/server/api/routes/document-versions.js +8 -0
- package/dist/lib/server/api/routes/document-versions.js.map +1 -1
- package/dist/lib/server/api/routes/documents-by-id.d.ts.map +1 -1
- package/dist/lib/server/api/routes/documents-by-id.js +3 -3
- package/dist/lib/server/api/routes/documents-by-id.js.map +1 -1
- package/dist/lib/server/api/routes/documents-publish.d.ts.map +1 -1
- package/dist/lib/server/api/routes/documents-publish.js +2 -2
- package/dist/lib/server/api/routes/documents-publish.js.map +1 -1
- package/dist/lib/server/api/routes/documents-query.d.ts.map +1 -1
- package/dist/lib/server/api/routes/documents-query.js +2 -3
- package/dist/lib/server/api/routes/documents-query.js.map +1 -1
- package/dist/lib/server/api/routes/documents.d.ts.map +1 -1
- package/dist/lib/server/api/routes/documents.js +3 -5
- package/dist/lib/server/api/routes/documents.js.map +1 -1
- package/dist/lib/server/api/routes/organizations-invitations.d.ts.map +1 -1
- package/dist/lib/server/api/routes/organizations-invitations.js +1 -1
- package/dist/lib/server/api/routes/organizations-invitations.js.map +1 -1
- package/dist/lib/server/api/routes/organizations-members.d.ts.map +1 -1
- package/dist/lib/server/api/routes/organizations-members.js.map +1 -1
- package/dist/lib/server/index.d.ts +1 -0
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +2 -0
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/services/asset-service.d.ts.map +1 -1
- package/dist/lib/services/asset-service.js +4 -2
- package/dist/lib/services/asset-service.js.map +1 -1
- package/dist/lib/services/references-service.d.ts.map +1 -1
- package/dist/lib/services/references-service.js.map +1 -1
- package/dist/lib/storage/adapters/local-storage-adapter.d.ts +4 -0
- package/dist/lib/storage/adapters/local-storage-adapter.d.ts.map +1 -1
- package/dist/lib/storage/adapters/local-storage-adapter.js +28 -6
- package/dist/lib/storage/adapters/local-storage-adapter.js.map +1 -1
- package/dist/lib/types/capabilities.d.ts +1 -0
- package/dist/lib/types/capabilities.d.ts.map +1 -1
- package/dist/lib/types/capabilities.js +3 -0
- package/dist/lib/types/capabilities.js.map +1 -1
- package/dist/lib/types/config.d.ts +16 -1
- package/dist/lib/types/config.d.ts.map +1 -1
- package/dist/lib/utils/logger.d.ts +8 -6
- package/dist/lib/utils/logger.d.ts.map +1 -1
- package/dist/lib/utils/logger.js +11 -2
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/mime-detect.d.ts.map +1 -1
- package/dist/lib/utils/mime-detect.js +21 -6
- package/dist/lib/utils/mime-detect.js.map +1 -1
- package/dist/lib/utils/reference-walk.js +4 -0
- package/dist/lib/utils/reference-walk.js.map +1 -1
- package/dist/lib/vite/index.d.ts.map +1 -1
- package/dist/lib/vite/index.js +4 -5
- package/dist/lib/vite/index.js.map +1 -1
- package/dist/local-api/collection-api.d.ts.map +1 -1
- package/dist/local-api/collection-api.js +7 -9
- package/dist/local-api/index.d.ts +5 -1
- package/dist/local-api/index.d.ts.map +1 -1
- package/dist/local-api/index.js +12 -4
- package/dist/routes/assets-cdn.d.ts.map +1 -1
- package/dist/routes/assets-cdn.js +8 -3
- package/dist/server/api/index.d.ts.map +1 -1
- package/dist/server/api/index.js +18 -0
- package/dist/server/api/routes/assets-bulk.d.ts.map +1 -1
- package/dist/server/api/routes/assets-bulk.js +4 -0
- package/dist/server/api/routes/assets-by-id.d.ts.map +1 -1
- package/dist/server/api/routes/assets-by-id.js +7 -0
- package/dist/server/api/routes/assets.d.ts.map +1 -1
- package/dist/server/api/routes/assets.js +18 -9
- package/dist/server/api/routes/document-versions.d.ts.map +1 -1
- package/dist/server/api/routes/document-versions.js +8 -0
- package/dist/server/api/routes/documents-by-id.d.ts.map +1 -1
- package/dist/server/api/routes/documents-by-id.js +3 -3
- package/dist/server/api/routes/documents-publish.d.ts.map +1 -1
- package/dist/server/api/routes/documents-publish.js +2 -2
- package/dist/server/api/routes/documents-query.d.ts.map +1 -1
- package/dist/server/api/routes/documents-query.js +2 -3
- package/dist/server/api/routes/documents.d.ts.map +1 -1
- package/dist/server/api/routes/documents.js +3 -5
- package/dist/server/api/routes/organizations-invitations.d.ts.map +1 -1
- package/dist/server/api/routes/organizations-invitations.js +1 -1
- package/dist/server/api/routes/organizations-members.d.ts.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/services/asset-service.d.ts.map +1 -1
- package/dist/services/asset-service.js +4 -2
- package/dist/services/references-service.d.ts.map +1 -1
- package/dist/storage/adapters/local-storage-adapter.d.ts +4 -0
- package/dist/storage/adapters/local-storage-adapter.d.ts.map +1 -1
- package/dist/storage/adapters/local-storage-adapter.js +28 -6
- package/dist/types/capabilities.d.ts +1 -0
- package/dist/types/capabilities.d.ts.map +1 -1
- package/dist/types/capabilities.js +3 -0
- package/dist/types/config.d.ts +16 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +8 -6
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +11 -2
- package/dist/utils/mime-detect.d.ts.map +1 -1
- package/dist/utils/mime-detect.js +21 -6
- package/dist/utils/reference-walk.js +4 -0
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +4 -5
- package/package.json +4 -5
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
// Fetch reference counts for this page
|
|
167
167
|
fetchReferenceCounts(result.data.map((a) => a.id));
|
|
168
168
|
}
|
|
169
|
-
} catch
|
|
169
|
+
} catch {
|
|
170
170
|
toast.error('Failed to fetch assets');
|
|
171
171
|
} finally {
|
|
172
172
|
loading = false;
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
if (result.success && result.data) {
|
|
187
187
|
referenceCounts = { ...referenceCounts, ...result.data };
|
|
188
188
|
}
|
|
189
|
-
} catch
|
|
189
|
+
} catch {
|
|
190
190
|
toast.error('Failed to fetch reference counts');
|
|
191
191
|
}
|
|
192
192
|
}
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
selectedAssetRefs = result.data.references;
|
|
201
201
|
selectedRefCount = result.data.total;
|
|
202
202
|
}
|
|
203
|
-
} catch
|
|
203
|
+
} catch {
|
|
204
204
|
toast.error('Failed to fetch asset references');
|
|
205
205
|
selectedAssetRefs = [];
|
|
206
206
|
selectedRefCount = 0;
|
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
if (result.success && result.data) {
|
|
285
285
|
referenceCounts = { ...referenceCounts, ...result.data };
|
|
286
286
|
}
|
|
287
|
-
} catch
|
|
287
|
+
} catch {
|
|
288
288
|
toast.error('Failed to check references');
|
|
289
289
|
}
|
|
290
290
|
|
|
@@ -316,7 +316,7 @@
|
|
|
316
316
|
selectedIds = new Set();
|
|
317
317
|
await fetchAssets();
|
|
318
318
|
}
|
|
319
|
-
} catch
|
|
319
|
+
} catch {
|
|
320
320
|
toast.error('Failed to delete assets');
|
|
321
321
|
} finally {
|
|
322
322
|
isBulkDeleting = false;
|
|
@@ -424,7 +424,7 @@
|
|
|
424
424
|
assetList = assetList.map((a) => (a.id === selectedAsset!.id ? result.data! : a));
|
|
425
425
|
selectedAsset = result.data;
|
|
426
426
|
}
|
|
427
|
-
} catch
|
|
427
|
+
} catch {
|
|
428
428
|
toast.error('Failed to save metadata');
|
|
429
429
|
} finally {
|
|
430
430
|
isSaving = false;
|
|
@@ -455,7 +455,7 @@
|
|
|
455
455
|
}
|
|
456
456
|
await fetchAssets();
|
|
457
457
|
}
|
|
458
|
-
} catch
|
|
458
|
+
} catch {
|
|
459
459
|
toast.error('Failed to delete asset');
|
|
460
460
|
}
|
|
461
461
|
}
|
|
@@ -320,7 +320,7 @@
|
|
|
320
320
|
_key: generateKey(),
|
|
321
321
|
asset: { _type: 'reference', _ref: result.data!.id }
|
|
322
322
|
};
|
|
323
|
-
} catch
|
|
323
|
+
} catch {
|
|
324
324
|
toast.error(`Failed to upload ${file.name}`);
|
|
325
325
|
return null;
|
|
326
326
|
}
|
|
@@ -925,7 +925,9 @@
|
|
|
925
925
|
class="flex flex-1 cursor-pointer items-center gap-2 self-stretch truncate px-1 py-2 text-left text-sm"
|
|
926
926
|
onclick={() => handleEditItem(index)}
|
|
927
927
|
>
|
|
928
|
-
<span
|
|
928
|
+
<span
|
|
929
|
+
class="text-muted-foreground flex h-5 w-5 shrink-0 items-center justify-center"
|
|
930
|
+
>
|
|
929
931
|
{#if getItemIcon(item)}
|
|
930
932
|
{@const Icon = getItemIcon(item)}
|
|
931
933
|
<Icon class="h-4 w-4" />
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
if (doc.success) {
|
|
79
79
|
selectedDocument = doc.data;
|
|
80
80
|
}
|
|
81
|
-
} catch
|
|
81
|
+
} catch {
|
|
82
82
|
toast.error('Failed to load referenced document');
|
|
83
83
|
selectedDocument = null;
|
|
84
84
|
}
|
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
onUpdate({ _type: 'reference', _ref: result.data.id });
|
|
197
197
|
closeAndFocusTrigger();
|
|
198
198
|
}
|
|
199
|
-
} catch
|
|
199
|
+
} catch {
|
|
200
200
|
toast.error('Failed to create document');
|
|
201
201
|
} finally {
|
|
202
202
|
creating = false;
|
|
@@ -351,7 +351,9 @@
|
|
|
351
351
|
</span>
|
|
352
352
|
</div>
|
|
353
353
|
{#if doc._meta?.status === 'published'}
|
|
354
|
-
<span
|
|
354
|
+
<span
|
|
355
|
+
class="h-1.5 w-1.5 shrink-0 rounded-full bg-green-500"
|
|
356
|
+
title="Published"
|
|
355
357
|
></span>
|
|
356
358
|
{:else if doc._meta?.status === 'unpublished'}
|
|
357
359
|
<span
|
|
@@ -36,7 +36,15 @@
|
|
|
36
36
|
|
|
37
37
|
function matchActive(item: NavItem): boolean {
|
|
38
38
|
if (isActiveProp) return isActiveProp(currentPath, item);
|
|
39
|
-
|
|
39
|
+
if (item.exact) return currentPath === item.url;
|
|
40
|
+
const matches = currentPath === item.url || currentPath.startsWith(item.url + '/');
|
|
41
|
+
if (!matches) return false;
|
|
42
|
+
return !items.some(
|
|
43
|
+
(other) =>
|
|
44
|
+
other !== item &&
|
|
45
|
+
other.url.length > item.url.length &&
|
|
46
|
+
(currentPath === other.url || currentPath.startsWith(other.url + '/'))
|
|
47
|
+
);
|
|
40
48
|
}
|
|
41
49
|
|
|
42
50
|
let currentPath = $derived(page.url.pathname);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavMain.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/sidebar/NavMain.svelte.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgB,KAAK,IAAI,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGpE,KAAK,OAAO,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,QAAQ,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACZ,EAAE,CAAC;CACJ,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;CACpD,CAAC;
|
|
1
|
+
{"version":3,"file":"NavMain.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/sidebar/NavMain.svelte.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgB,KAAK,IAAI,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGpE,KAAK,OAAO,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,QAAQ,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACZ,EAAE,CAAC;CACJ,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;CACpD,CAAC;AAmFH,QAAA,MAAM,OAAO,2CAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import type { Asset } from '../../types/index.js';
|
|
2
2
|
import type { Where, FindOptions, FindResult } from '../../types/filters.js';
|
|
3
3
|
export interface AssetFilters {
|
|
4
|
-
organizationId: string;
|
|
5
4
|
assetType?: 'image' | 'file';
|
|
6
5
|
mimeType?: string;
|
|
7
6
|
search?: string;
|
|
8
7
|
limit?: number;
|
|
9
8
|
offset?: number;
|
|
10
|
-
filterOrganizationIds?: string[];
|
|
11
9
|
}
|
|
12
10
|
export interface CreateAssetData {
|
|
13
11
|
organizationId: string;
|
|
@@ -42,10 +40,10 @@ export interface UpdateAssetData {
|
|
|
42
40
|
export interface AssetAdapter {
|
|
43
41
|
createAsset(data: CreateAssetData): Promise<Asset>;
|
|
44
42
|
findAssetById(organizationId: string, id: string): Promise<Asset | null>;
|
|
45
|
-
findAssets(organizationId: string, filters?:
|
|
43
|
+
findAssets(organizationId: string, filters?: AssetFilters): Promise<Asset[]>;
|
|
46
44
|
updateAsset(organizationId: string, id: string, data: UpdateAssetData): Promise<Asset | null>;
|
|
47
45
|
deleteAsset(organizationId: string, id: string): Promise<boolean>;
|
|
48
|
-
countAssets(organizationId: string): Promise<number>;
|
|
46
|
+
countAssets(organizationId: string, filters?: AssetFilters): Promise<number>;
|
|
49
47
|
countAssetsByType(organizationId: string): Promise<Record<string, number>>;
|
|
50
48
|
getTotalAssetsSize(organizationId: string): Promise<number>;
|
|
51
49
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/asset.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,WAAW,YAAY;IAC5B,
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export interface OrganizationAdapter {
|
|
|
18
18
|
findOrganizationInvitations(organizationId: string): Promise<Invitation[]>;
|
|
19
19
|
findInvitationsByEmail(email: string): Promise<Invitation[]>;
|
|
20
20
|
acceptInvitation(token: string, userId: string): Promise<OrganizationMember>;
|
|
21
|
-
deleteInvitation(id: string): Promise<boolean>;
|
|
21
|
+
deleteInvitation(id: string, organizationId?: string): Promise<boolean>;
|
|
22
22
|
removeAllInvitations(organizationId: string): Promise<boolean>;
|
|
23
23
|
cleanupExpiredInvitations(): Promise<number>;
|
|
24
24
|
updateUserSession(userId: string, organizationId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/organization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,mBAAmB;IAEnC,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,oBAAoB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/D,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACnE,kBAAkB,CACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,GACjE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGjD,SAAS,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpE,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,gBAAgB,CACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAC/F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACzE,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAG/E,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3D,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjE,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3E,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7E,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/organization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,mBAAmB;IAEnC,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,oBAAoB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/D,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACnE,kBAAkB,CACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,GACjE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGjD,SAAS,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpE,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,gBAAgB,CACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAC/F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACzE,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAG/E,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3D,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjE,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3E,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7E,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAG7C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7D,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-access.d.ts","sourceRoot":"","sources":["../src/lib/field-access.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"field-access.d.ts","sourceRoot":"","sources":["../src/lib/field-access.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAWxF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAWzF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,CAAC,GAAG,IAAI,GAAG,SAAS,CAKtB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,CAAC,CAQH;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE/E"}
|
package/dist/field-access.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// the caller can touch the collection at all). These helpers are the gate
|
|
5
5
|
// between "has read/update on the collection" and "has read/update on this
|
|
6
6
|
// specific field".
|
|
7
|
-
import { effectiveOrganizationRole } from './types/capabilities.js';
|
|
7
|
+
import { effectiveOrganizationRole, isInstanceRole } from './types/capabilities.js';
|
|
8
8
|
/**
|
|
9
9
|
* Return the set of field names the caller may NOT read.
|
|
10
10
|
* Fields with no `access.read` list are readable by default.
|
|
@@ -13,6 +13,8 @@ export function hiddenReadFields(schema, auth) {
|
|
|
13
13
|
const hidden = new Set();
|
|
14
14
|
if (!auth)
|
|
15
15
|
return hidden;
|
|
16
|
+
if (isInstanceRole(auth))
|
|
17
|
+
return hidden;
|
|
16
18
|
const role = effectiveOrganizationRole(auth);
|
|
17
19
|
for (const field of schema.fields) {
|
|
18
20
|
const list = field.access?.read;
|
|
@@ -31,6 +33,8 @@ export function hiddenWriteFields(schema, auth) {
|
|
|
31
33
|
const hidden = new Set();
|
|
32
34
|
if (!auth)
|
|
33
35
|
return hidden;
|
|
36
|
+
if (isInstanceRole(auth))
|
|
37
|
+
return hidden;
|
|
34
38
|
const role = effectiveOrganizationRole(auth);
|
|
35
39
|
for (const field of schema.fields) {
|
|
36
40
|
const list = field.access?.update;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ValidationContext } from 'graphql';
|
|
2
|
+
type IgnoreRule = string | RegExp | ((fieldName: string) => boolean);
|
|
3
|
+
interface DepthLimitOptions {
|
|
4
|
+
ignore?: IgnoreRule[];
|
|
5
|
+
}
|
|
6
|
+
export declare function depthLimit(maxDepth: number, options?: DepthLimitOptions): (validationContext: ValidationContext) => ValidationContext;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=depth-limit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"depth-limit.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/depth-limit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAmC,MAAM,SAAS,CAAC;AAElF,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;AAErE,UAAU,iBAAiB;IAC1B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,IACnE,mBAAmB,iBAAiB,uBAW5C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { GraphQLError, Kind } from 'graphql';
|
|
2
|
+
export function depthLimit(maxDepth, options = {}) {
|
|
3
|
+
return (validationContext) => {
|
|
4
|
+
const { definitions } = validationContext.getDocument();
|
|
5
|
+
const fragments = getFragments(definitions);
|
|
6
|
+
const queries = getQueriesAndMutations(definitions);
|
|
7
|
+
for (const name in queries) {
|
|
8
|
+
determineDepth(queries[name], fragments, 0, maxDepth, validationContext, name, options);
|
|
9
|
+
}
|
|
10
|
+
return validationContext;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function getFragments(definitions) {
|
|
14
|
+
const map = {};
|
|
15
|
+
for (const def of definitions) {
|
|
16
|
+
if (def.kind === Kind.FRAGMENT_DEFINITION) {
|
|
17
|
+
map[def.name.value] = def;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return map;
|
|
21
|
+
}
|
|
22
|
+
function getQueriesAndMutations(definitions) {
|
|
23
|
+
const map = {};
|
|
24
|
+
for (const def of definitions) {
|
|
25
|
+
if (def.kind === Kind.OPERATION_DEFINITION) {
|
|
26
|
+
map[def.name ? def.name.value : ''] = def;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return map;
|
|
30
|
+
}
|
|
31
|
+
function determineDepth(node, fragments, depthSoFar, maxDepth, context, operationName, options) {
|
|
32
|
+
if (depthSoFar > maxDepth) {
|
|
33
|
+
context.reportError(new GraphQLError(`'${operationName}' exceeds maximum operation depth of ${maxDepth}`, {
|
|
34
|
+
nodes: [node]
|
|
35
|
+
}));
|
|
36
|
+
return depthSoFar;
|
|
37
|
+
}
|
|
38
|
+
switch (node.kind) {
|
|
39
|
+
case Kind.FIELD: {
|
|
40
|
+
const shouldIgnore = /^__/.test(node.name.value) || seeIfIgnored(node.name.value, options.ignore);
|
|
41
|
+
if (shouldIgnore || !node.selectionSet) {
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
return (1 +
|
|
45
|
+
Math.max(...node.selectionSet.selections.map((selection) => determineDepth(selection, fragments, depthSoFar + 1, maxDepth, context, operationName, options))));
|
|
46
|
+
}
|
|
47
|
+
case Kind.FRAGMENT_SPREAD: {
|
|
48
|
+
const fragment = fragments[node.name.value];
|
|
49
|
+
if (!fragment)
|
|
50
|
+
return 0;
|
|
51
|
+
return determineDepth(fragment, fragments, depthSoFar, maxDepth, context, operationName, options);
|
|
52
|
+
}
|
|
53
|
+
case Kind.INLINE_FRAGMENT:
|
|
54
|
+
case Kind.FRAGMENT_DEFINITION:
|
|
55
|
+
case Kind.OPERATION_DEFINITION:
|
|
56
|
+
return Math.max(...node.selectionSet.selections.map((selection) => determineDepth(selection, fragments, depthSoFar, maxDepth, context, operationName, options)));
|
|
57
|
+
default:
|
|
58
|
+
throw new Error('Depth crawler cannot handle: ' + node.kind);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function seeIfIgnored(fieldName, ignore) {
|
|
62
|
+
if (!ignore)
|
|
63
|
+
return false;
|
|
64
|
+
for (const rule of ignore) {
|
|
65
|
+
if (typeof rule === 'function') {
|
|
66
|
+
if (rule(fieldName))
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
else if (typeof rule === 'string') {
|
|
70
|
+
if (fieldName.match(rule))
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
else if (rule instanceof RegExp) {
|
|
74
|
+
if (rule.test(fieldName))
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQlD,MAAM,WAAW,aAAa;IAC7B,kBAAkB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAC/D,QAAQ,EAAE,eAAe,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACzC,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,OAAO,GAAE,aAAkB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CAgG/B"}
|
package/dist/graphql/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { generateGraphQLSchema } from './schema.js';
|
|
2
2
|
import { createResolvers } from './resolvers.js';
|
|
3
|
+
import { depthLimit } from './depth-limit.js';
|
|
3
4
|
import { cmsLogger } from '../utils/logger.js';
|
|
5
|
+
const MAX_QUERY_DEPTH = 10;
|
|
4
6
|
/**
|
|
5
7
|
* Creates a GraphQL handler for the CMS.
|
|
6
8
|
* Uses dynamic imports so graphql dependencies are only loaded when GraphQL is enabled.
|
|
@@ -19,13 +21,22 @@ export async function createGraphQLHandler(cms, schemaTypes, options = {}) {
|
|
|
19
21
|
// Generate GraphQL schema and resolvers from CMS schema types
|
|
20
22
|
const typeDefs = generateGraphQLSchema(schemaTypes);
|
|
21
23
|
const resolvers = createResolvers(cms, schemaTypes, defaultPerspective);
|
|
24
|
+
const isProd = process.env.NODE_ENV === 'production';
|
|
22
25
|
const yogaApp = createYoga({
|
|
23
26
|
logging: false,
|
|
27
|
+
maskedErrors: isProd,
|
|
24
28
|
schema: createSchema({
|
|
25
29
|
typeDefs,
|
|
26
30
|
resolvers
|
|
27
31
|
}),
|
|
28
|
-
plugins: [
|
|
32
|
+
plugins: [
|
|
33
|
+
useGraphQlJit(),
|
|
34
|
+
{
|
|
35
|
+
onValidate({ addValidationRule }) {
|
|
36
|
+
addValidationRule(depthLimit(MAX_QUERY_DEPTH));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
],
|
|
29
40
|
graphqlEndpoint: endpoint,
|
|
30
41
|
renderGraphiQL,
|
|
31
42
|
fetchAPI: { Response },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,kBAAkB,CAAC;AA4H1D,wBAAgB,eAAe,CAC9B,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,kBAAkB,GAAE,OAAO,GAAG,WAAyB,
|
|
1
|
+
{"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,kBAAkB,CAAC;AA4H1D,wBAAgB,eAAe,CAC9B,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,kBAAkB,GAAE,OAAO,GAAG,WAAyB,uBAwtBvD"}
|
|
@@ -218,9 +218,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
218
218
|
const doc = await cms.databaseAdapter.findByDocIdAdvanced(apiContext.organizationId, refId);
|
|
219
219
|
if (!doc)
|
|
220
220
|
return null;
|
|
221
|
-
const data = perspective === 'published'
|
|
222
|
-
? doc.publishedData
|
|
223
|
-
: doc.draftData;
|
|
221
|
+
const data = perspective === 'published' ? doc.publishedData : doc.draftData;
|
|
224
222
|
if (!data)
|
|
225
223
|
return null;
|
|
226
224
|
const refSchemaType = schemaTypes.find((s) => s.name === doc.type);
|
|
@@ -355,7 +353,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
355
353
|
throw error;
|
|
356
354
|
cmsLogger.error(`GraphQL mutation error:`, error);
|
|
357
355
|
throw new GraphQLError(error.message, {
|
|
358
|
-
extensions: { code: 'BAD_REQUEST'
|
|
356
|
+
extensions: { code: 'BAD_REQUEST' }
|
|
359
357
|
});
|
|
360
358
|
}
|
|
361
359
|
};
|
|
@@ -376,7 +374,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
376
374
|
throw error;
|
|
377
375
|
cmsLogger.error(`GraphQL mutation error:`, error);
|
|
378
376
|
throw new GraphQLError(error.message, {
|
|
379
|
-
extensions: { code: 'BAD_REQUEST'
|
|
377
|
+
extensions: { code: 'BAD_REQUEST' }
|
|
380
378
|
});
|
|
381
379
|
}
|
|
382
380
|
};
|
|
@@ -397,7 +395,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
397
395
|
throw error;
|
|
398
396
|
cmsLogger.error(`GraphQL mutation error:`, error);
|
|
399
397
|
throw new GraphQLError(error.message, {
|
|
400
|
-
extensions: { code: 'BAD_REQUEST'
|
|
398
|
+
extensions: { code: 'BAD_REQUEST' }
|
|
401
399
|
});
|
|
402
400
|
}
|
|
403
401
|
};
|
|
@@ -545,7 +543,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
545
543
|
}
|
|
546
544
|
cmsLogger.error(`GraphQL mutation error:`, error);
|
|
547
545
|
throw new GraphQLError(error.message, {
|
|
548
|
-
extensions: { code: 'BAD_REQUEST'
|
|
546
|
+
extensions: { code: 'BAD_REQUEST' }
|
|
549
547
|
});
|
|
550
548
|
}
|
|
551
549
|
};
|
|
@@ -595,7 +593,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
595
593
|
}
|
|
596
594
|
cmsLogger.error(`GraphQL mutation error:`, error);
|
|
597
595
|
throw new GraphQLError(error.message, {
|
|
598
|
-
extensions: { code: 'BAD_REQUEST'
|
|
596
|
+
extensions: { code: 'BAD_REQUEST' }
|
|
599
597
|
});
|
|
600
598
|
}
|
|
601
599
|
};
|
|
@@ -621,7 +619,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
621
619
|
}
|
|
622
620
|
cmsLogger.error(`GraphQL mutation error:`, error);
|
|
623
621
|
throw new GraphQLError(error.message, {
|
|
624
|
-
extensions: { code: 'BAD_REQUEST'
|
|
622
|
+
extensions: { code: 'BAD_REQUEST' }
|
|
625
623
|
});
|
|
626
624
|
}
|
|
627
625
|
};
|
|
@@ -665,7 +663,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
665
663
|
}
|
|
666
664
|
cmsLogger.error(`GraphQL mutation error:`, error);
|
|
667
665
|
throw new GraphQLError(error.message, {
|
|
668
|
-
extensions: { code: 'BAD_REQUEST'
|
|
666
|
+
extensions: { code: 'BAD_REQUEST' }
|
|
669
667
|
});
|
|
670
668
|
}
|
|
671
669
|
};
|
|
@@ -709,7 +707,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
709
707
|
}
|
|
710
708
|
cmsLogger.error(`GraphQL mutation error:`, error);
|
|
711
709
|
throw new GraphQLError(error.message, {
|
|
712
|
-
extensions: { code: 'BAD_REQUEST'
|
|
710
|
+
extensions: { code: 'BAD_REQUEST' }
|
|
713
711
|
});
|
|
714
712
|
}
|
|
715
713
|
};
|
package/dist/hooks.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { StorageAdapter } from './storage/interfaces/storage.js';
|
|
|
7
7
|
import type { EmailAdapter } from './email/index.js';
|
|
8
8
|
import type { AuthProvider } from './auth/provider.js';
|
|
9
9
|
import type { GraphQLSettings } from './graphql/index.js';
|
|
10
|
+
import type { Logger } from './utils/logger.js';
|
|
10
11
|
import { RolesService } from './services/roles-service.js';
|
|
11
12
|
import { CMSEngine } from './engine.js';
|
|
12
13
|
import { type LocalAPI } from './local-api/index.js';
|
|
@@ -20,6 +21,7 @@ export interface CMSInstances {
|
|
|
20
21
|
cmsEngine: CMSEngine;
|
|
21
22
|
localAPI: LocalAPI;
|
|
22
23
|
rolesService: RolesService;
|
|
24
|
+
logger: Logger;
|
|
23
25
|
auth?: AuthProvider;
|
|
24
26
|
graphqlSettings?: GraphQLSettings | null;
|
|
25
27
|
apiApp: Hono<AphexEnv>;
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAK7C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAIN,KAAK,QAAQ,EACb,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACvB;AAQD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAGrE;AAgBD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA0JvD"}
|
package/dist/hooks.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { handleAuthHook } from './auth/auth-hooks.js';
|
|
2
|
-
import { cmsLogger, setLogLevel } from './utils/logger.js';
|
|
2
|
+
import { cmsLogger, setLogLevel, setLogger } from './utils/logger.js';
|
|
3
3
|
import { createStorageAdapter as createStorageAdapterProvider } from './storage/providers/storage.js';
|
|
4
4
|
import { AssetService as AssetServiceClass } from './services/asset-service.js';
|
|
5
5
|
import { RolesService } from './services/roles-service.js';
|
|
@@ -43,7 +43,8 @@ export function createCMSHook(config) {
|
|
|
43
43
|
throw new Error('[CMS] createCMSHook received an undefined config. ' +
|
|
44
44
|
'If this happens during HMR, the config module may not have re-executed yet.');
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
if (config.logger)
|
|
47
|
+
setLogger(config.logger);
|
|
47
48
|
if (config.logLevel)
|
|
48
49
|
setLogLevel(config.logLevel);
|
|
49
50
|
// Stash the config in module scope so the HMR plugin can replace it via
|
|
@@ -114,6 +115,7 @@ export function createCMSHook(config) {
|
|
|
114
115
|
cmsEngine,
|
|
115
116
|
localAPI,
|
|
116
117
|
rolesService,
|
|
118
|
+
logger: cmsLogger,
|
|
117
119
|
auth: currentConfig.auth?.provider,
|
|
118
120
|
apiApp
|
|
119
121
|
}, currentConfig.schemaTypes, graphqlConfig);
|
|
@@ -145,6 +147,7 @@ export function createCMSHook(config) {
|
|
|
145
147
|
cmsEngine: cmsEngine,
|
|
146
148
|
localAPI: localAPI,
|
|
147
149
|
rolesService,
|
|
150
|
+
logger: cmsLogger,
|
|
148
151
|
auth: currentConfig.auth?.provider,
|
|
149
152
|
graphqlSettings,
|
|
150
153
|
apiApp
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ApiResponse } from './types.js';
|
|
2
|
-
import type { ApiKeyPermission
|
|
2
|
+
import type { ApiKeyPermission } from './schemas/api-keys.js';
|
|
3
3
|
import type { Capability } from '../types/capabilities.js';
|
|
4
4
|
export interface ApiKey {
|
|
5
5
|
id: string;
|
|
@@ -13,7 +13,12 @@ export interface ApiKey {
|
|
|
13
13
|
lastRequest: Date | null;
|
|
14
14
|
expiresAt: Date | null;
|
|
15
15
|
}
|
|
16
|
-
export
|
|
16
|
+
export interface CreateApiKeyData {
|
|
17
|
+
name: string;
|
|
18
|
+
permissions?: ApiKeyPermission[];
|
|
19
|
+
capabilities?: Capability[];
|
|
20
|
+
expiresInDays?: number;
|
|
21
|
+
}
|
|
17
22
|
export interface CreateApiKeyResponse {
|
|
18
23
|
apiKey: ApiKey & {
|
|
19
24
|
key: string;
|
|
@@ -23,7 +28,7 @@ export declare class ApiKeysApi {
|
|
|
23
28
|
/**
|
|
24
29
|
* Create a new API key
|
|
25
30
|
*/
|
|
26
|
-
static create(data:
|
|
31
|
+
static create(data: CreateApiKeyData): Promise<ApiResponse<CreateApiKeyResponse>>;
|
|
27
32
|
/**
|
|
28
33
|
* Delete an API key
|
|
29
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,qBAAa,UAAU;IACtB;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAIvF;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAG3E;AAED,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA6BrC,MAAM,OAAO,UAAU;IACtB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAsB;QACzC,OAAO,SAAS,CAAC,IAAI,CAAuB,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAU;QAC7B,OAAO,SAAS,CAAC,MAAM,CAAuB,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;CACD;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1C,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;CAC1C,CAAC"}
|
|
@@ -72,7 +72,7 @@ export const deleteAssetResponse = z.object({
|
|
|
72
72
|
});
|
|
73
73
|
// ---------- DELETE /assets/bulk ----------
|
|
74
74
|
export const bulkDeleteAssetsRequest = z.object({
|
|
75
|
-
ids: z.array(z.string()).min(1)
|
|
75
|
+
ids: z.array(z.string()).min(1).max(100)
|
|
76
76
|
});
|
|
77
77
|
export const bulkDeleteAssetsResponse = z.object({
|
|
78
78
|
success: z.literal(true),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../../src/lib/api/schemas/assets.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../../src/lib/api/schemas/assets.ts"],"names":[],"mappings":"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"}
|