@dosgato/api 0.0.16 → 0.0.17

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.
Files changed (90) hide show
  1. package/dist/asset/asset.database.d.ts +6 -0
  2. package/dist/asset/asset.database.js +32 -5
  3. package/dist/asset/asset.database.js.map +1 -1
  4. package/dist/asset/asset.model.d.ts +2 -0
  5. package/dist/asset/asset.model.js +12 -4
  6. package/dist/asset/asset.model.js.map +1 -1
  7. package/dist/asset/asset.routes.d.ts +19 -0
  8. package/dist/asset/asset.routes.js +119 -40
  9. package/dist/asset/asset.routes.js.map +1 -1
  10. package/dist/asset/asset.service.js +22 -4
  11. package/dist/asset/asset.service.js.map +1 -1
  12. package/dist/asset/asset.storage.d.ts +10 -2
  13. package/dist/asset/asset.storage.js +16 -3
  14. package/dist/asset/asset.storage.js.map +1 -1
  15. package/dist/assetfolder/assetfolder.database.js +1 -4
  16. package/dist/assetfolder/assetfolder.database.js.map +1 -1
  17. package/dist/assetfolder/assetfolder.model.js +5 -5
  18. package/dist/assetfolder/assetfolder.model.js.map +1 -1
  19. package/dist/assetfolder/assetfolder.resolver.d.ts +1 -1
  20. package/dist/assetfolder/assetfolder.resolver.js +6 -5
  21. package/dist/assetfolder/assetfolder.resolver.js.map +1 -1
  22. package/dist/assetfolder/assetfolder.service.d.ts +1 -1
  23. package/dist/assetfolder/assetfolder.service.js +36 -28
  24. package/dist/assetfolder/assetfolder.service.js.map +1 -1
  25. package/dist/assetrule/assetrule.database.js.map +1 -1
  26. package/dist/assetrule/assetrule.model.js.map +1 -1
  27. package/dist/data/data.database.js.map +1 -1
  28. package/dist/data/data.service.js +6 -3
  29. package/dist/data/data.service.js.map +1 -1
  30. package/dist/datafolder/datafolder.database.js.map +1 -1
  31. package/dist/datafolder/datafolder.service.js +7 -3
  32. package/dist/datafolder/datafolder.service.js.map +1 -1
  33. package/dist/dataroot/dataroot.model.js.map +1 -1
  34. package/dist/datarule/datarule.database.js.map +1 -1
  35. package/dist/globalrule/globalrule.database.js.map +1 -1
  36. package/dist/globalrule/globalrule.service.d.ts +1 -0
  37. package/dist/globalrule/globalrule.service.js +3 -0
  38. package/dist/globalrule/globalrule.service.js.map +1 -1
  39. package/dist/group/group.database.js.map +1 -1
  40. package/dist/group/group.service.js.map +1 -1
  41. package/dist/index.js +2 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/migrations.js +10 -0
  44. package/dist/migrations.js.map +1 -1
  45. package/dist/page/page.database.js.map +1 -1
  46. package/dist/page/page.resolver.d.ts +1 -1
  47. package/dist/page/page.resolver.js +4 -3
  48. package/dist/page/page.resolver.js.map +1 -1
  49. package/dist/page/page.service.d.ts +1 -1
  50. package/dist/page/page.service.js +22 -14
  51. package/dist/page/page.service.js.map +1 -1
  52. package/dist/pagerule/pagerule.database.js.map +1 -1
  53. package/dist/pagerule/pagerule.model.js.map +1 -1
  54. package/dist/pagetree/pagetree.resolver.js +8 -4
  55. package/dist/pagetree/pagetree.resolver.js.map +1 -1
  56. package/dist/role/role.resolver.d.ts +1 -1
  57. package/dist/role/role.resolver.js +4 -3
  58. package/dist/role/role.resolver.js.map +1 -1
  59. package/dist/role/role.service.d.ts +1 -1
  60. package/dist/role/role.service.js +8 -15
  61. package/dist/role/role.service.js.map +1 -1
  62. package/dist/scalars/index.d.ts +1 -0
  63. package/dist/scalars/index.js +1 -0
  64. package/dist/scalars/index.js.map +1 -1
  65. package/dist/scalars/urlsafepath.d.ts +5 -0
  66. package/dist/scalars/urlsafepath.js +27 -0
  67. package/dist/scalars/urlsafepath.js.map +1 -0
  68. package/dist/scalars/urlsafestring.js +1 -3
  69. package/dist/scalars/urlsafestring.js.map +1 -1
  70. package/dist/site/site.database.js.map +1 -1
  71. package/dist/site/site.model.d.ts +0 -5
  72. package/dist/site/site.model.js +2 -20
  73. package/dist/site/site.model.js.map +1 -1
  74. package/dist/site/site.resolver.js +3 -3
  75. package/dist/site/site.resolver.js.map +1 -1
  76. package/dist/site/site.service.js +1 -1
  77. package/dist/site/site.service.js.map +1 -1
  78. package/dist/siterule/siterule.database.js.map +1 -1
  79. package/dist/siterule/siterule.model.js.map +1 -1
  80. package/dist/template/template.service.js.map +1 -1
  81. package/dist/templaterule/templaterule.database.js.map +1 -1
  82. package/dist/templaterule/templaterule.model.js.map +1 -1
  83. package/dist/user/user.service.js.map +1 -1
  84. package/dist/util/index.js +1 -2
  85. package/dist/util/index.js.map +1 -1
  86. package/dist/util/registry.js.map +1 -1
  87. package/dist/versionedservice/service.d.ts +16 -0
  88. package/dist/versionedservice/service.js +33 -0
  89. package/dist/versionedservice/service.js.map +1 -1
  90. package/package.json +2 -1
@@ -8,9 +8,14 @@ export interface AssetInput {
8
8
  size: number;
9
9
  width?: number;
10
10
  height?: number;
11
+ modifiedBy?: string;
12
+ modifiedAt?: string;
11
13
  }
12
14
  export interface CreateAssetInput extends AssetInput {
13
15
  folderId: string;
16
+ legacyId?: string;
17
+ createdBy?: string;
18
+ createdAt?: string;
14
19
  }
15
20
  export interface ReplaceAssetInput extends AssetInput {
16
21
  assetId: string;
@@ -26,5 +31,6 @@ export declare function createAsset(versionedService: VersionedService, userId:
26
31
  export declare function replaceAsset(versionedService: VersionedService, userId: string, args: ReplaceAssetInput): Promise<Asset>;
27
32
  export declare function registerResize(asset: Asset, width: number, shasum: string, mime: string, quality: number, size: number): Promise<number>;
28
33
  export declare function moveAsset(id: number, targetFolder: AssetFolder): Promise<number>;
34
+ export declare function cleanupBinaries(checksums: string[]): Promise<void>;
29
35
  export declare function deleteAsset(id: number, userInternalId: number): Promise<number>;
30
36
  export declare function undeleteAsset(id: number): Promise<number>;
@@ -1,6 +1,6 @@
1
1
  import db from 'mysql2-async/db';
2
- import { isNotNull, pick, stringify } from 'txstate-utils';
3
- import { Asset, AssetResize, AssetFolder } from '../internal.js';
2
+ import { isNotNull, keyby, pick, stringify } from 'txstate-utils';
3
+ import { Asset, AssetResize, AssetFolder, fileHandler } from '../internal.js';
4
4
  import { DateTime } from 'luxon';
5
5
  function processFilters(filter) {
6
6
  const binds = [];
@@ -45,6 +45,13 @@ function processFilters(filter) {
45
45
  if (filter.checksums?.length) {
46
46
  where.push(`binaries.shasum IN (${db.in(binds, filter.checksums)})`);
47
47
  }
48
+ if (isNotNull(filter.bytes)) {
49
+ if (filter.bytes < 0)
50
+ where.push('binaries.bytes < ?');
51
+ else
52
+ where.push('binaries.bytes > ?');
53
+ binds.push(Math.abs(filter.bytes));
54
+ }
48
55
  }
49
56
  return { binds, where, joins };
50
57
  }
@@ -93,7 +100,15 @@ export async function getLatestDownload(asset, resizeBinaryIds) {
93
100
  }
94
101
  export async function createAsset(versionedService, userId, args) {
95
102
  return await db.transaction(async (db) => {
96
- const dataId = await versionedService.create('asset', { shasum: args.checksum }, [], userId, db);
103
+ const indexes = args.legacyId ? [{ name: 'legacyId', values: [args.legacyId] }] : [];
104
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
105
+ const createdBy = args.legacyId ? (args.createdBy || args.modifiedBy || userId) : userId; // || is intended - to catch blanks
106
+ const createdAt = args.legacyId ? (args.createdAt ?? args.modifiedAt ?? undefined) : undefined;
107
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
108
+ const modifiedBy = args.legacyId ? (args.modifiedBy || createdBy || userId) : userId; // || is intended - to catch blanks
109
+ const modifiedAt = args.legacyId ? (args.modifiedAt ?? args.createdAt ?? undefined) : undefined;
110
+ const dataId = await versionedService.create('asset', { legacyId: args.legacyId, shasum: args.checksum }, indexes, createdBy, db);
111
+ await versionedService.setStamps(dataId, { createdAt: createdAt ? new Date(createdAt) : undefined, modifiedAt: modifiedAt ? new Date(modifiedAt) : undefined, modifiedBy: modifiedBy !== userId ? modifiedBy : undefined }, db);
97
112
  const folderInternalId = await db.getval('SELECT id FROM assetfolders WHERE guid = ?', [args.folderId]);
98
113
  await db.insert(`
99
114
  INSERT IGNORE INTO binaries (shasum, mime, meta, bytes)
@@ -112,7 +127,10 @@ export async function replaceAsset(versionedService, userId, args) {
112
127
  await db.insert(`
113
128
  INSERT IGNORE INTO binaries (shasum, mime, meta, bytes)
114
129
  VALUES(?, ?, ?, ?)`, [args.checksum, args.mime, stringify(pick(args, 'width', 'height')), args.size]);
115
- await versionedService.update(args.assetId, { ...data, shasum: args.checksum }, [], { user: userId }, db);
130
+ await versionedService.update(args.assetId, { ...data.data, shasum: args.checksum }, [], { user: userId }, db);
131
+ const modifiedBy = data.data.legacyId ? (args.modifiedBy ?? userId) : userId;
132
+ const modifiedAt = data.data.legacyId ? (args.modifiedAt ?? undefined) : undefined;
133
+ await versionedService.setStamps(args.assetId, { modifiedAt: modifiedAt ? new Date(modifiedAt) : undefined, modifiedBy: modifiedBy !== userId ? modifiedBy : undefined }, db);
116
134
  await db.update('UPDATE assets SET shasum=? WHERE dataId=?', [args.checksum, args.assetId]);
117
135
  return (await getAssets({ ids: [args.assetId] }, db))[0];
118
136
  });
@@ -121,7 +139,7 @@ export async function registerResize(asset, width, shasum, mime, quality, size)
121
139
  const height = asset.box.height * width / asset.box.width;
122
140
  return await db.transaction(async (db) => {
123
141
  const binaryId = await db.insert(`
124
- INSERT IGNORE INTO binaries (shasum, mime, meta, bytes) VALUES (?, ?, ?, ?)
142
+ INSERT INTO binaries (shasum, mime, meta, bytes) VALUES (?, ?, ?, ?) ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id)
125
143
  `, [shasum, mime, stringify({ width, height }), size]);
126
144
  const origBinaryId = await db.getval('SELECT id FROM binaries WHERE shasum=?', [asset.checksum]);
127
145
  await db.insert(`
@@ -140,6 +158,15 @@ export async function moveAsset(id, targetFolder) {
140
158
  return await db.update('UPDATE assets set folderId = ? WHERE id = ?', [targetFolder.internalId, id]);
141
159
  });
142
160
  }
161
+ export async function cleanupBinaries(checksums) {
162
+ const binds = [];
163
+ const binaries = await db.getall(`SELECT shasum FROM binaries WHERE shasum IN (${db.in(binds, checksums)})`, binds);
164
+ const hash = keyby(binaries, 'shasum');
165
+ for (const checksum of checksums) {
166
+ if (!hash[checksum])
167
+ await fileHandler.remove(checksum);
168
+ }
169
+ }
143
170
  export async function deleteAsset(id, userInternalId) {
144
171
  return await db.update('UPDATE assets SET deletedAt = NOW(), deletedBy = ? WHERE id = ?', [userInternalId, id]);
145
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"asset.database.js","sourceRoot":"","sources":["../../src/asset/asset.database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset.database.js","sourceRoot":"","sources":["../../src/asset/asset.database.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export declare class Asset {
28
28
  export declare class AssetFilter {
29
29
  internalIds?: number[];
30
30
  ids?: string[];
31
+ legacyIds?: string[];
31
32
  siteIds?: string[];
32
33
  links?: AssetLinkInput[];
33
34
  checksums?: string[];
@@ -37,6 +38,7 @@ export declare class AssetFilter {
37
38
  paths?: string[];
38
39
  beneath?: string[];
39
40
  parentPaths?: string[];
41
+ bytes?: number;
40
42
  referenced?: boolean;
41
43
  deleted?: boolean;
42
44
  }
@@ -12,7 +12,7 @@ import { isNotBlank, isNotNull } from 'txstate-utils';
12
12
  import { Field, ID, InputType, Int, ObjectType, registerEnumType } from 'type-graphql';
13
13
  import { ValidatedResponse } from '@txstate-mws/graphql-server';
14
14
  import { extension } from 'mime-types';
15
- import { JsonData, UrlSafeString } from '../internal.js';
15
+ import { JsonData, UrlSafePath, UrlSafeString } from '../internal.js';
16
16
  const resizeMimeToExt = {
17
17
  'image/jpg': 'jpg',
18
18
  'image/jpeg': 'jpg',
@@ -115,6 +115,10 @@ __decorate([
115
115
  Field(type => [ID], { nullable: true }),
116
116
  __metadata("design:type", Array)
117
117
  ], AssetFilter.prototype, "ids", void 0);
118
+ __decorate([
119
+ Field(type => [ID], { nullable: true }),
120
+ __metadata("design:type", Array)
121
+ ], AssetFilter.prototype, "legacyIds", void 0);
118
122
  __decorate([
119
123
  Field(type => [ID], { nullable: true }),
120
124
  __metadata("design:type", Array)
@@ -132,17 +136,21 @@ __decorate([
132
136
  __metadata("design:type", Array)
133
137
  ], AssetFilter.prototype, "folderIds", void 0);
134
138
  __decorate([
135
- Field(type => [String], { nullable: true, description: 'Return assets with the given paths.' }),
139
+ Field(type => [UrlSafePath], { nullable: true, description: 'Return assets with the given paths.' }),
136
140
  __metadata("design:type", Array)
137
141
  ], AssetFilter.prototype, "paths", void 0);
138
142
  __decorate([
139
- Field(type => [String], { nullable: true, description: 'Return assets that descend from any of the given paths.' }),
143
+ Field(type => [UrlSafePath], { nullable: true, description: 'Return assets that descend from any of the given paths.' }),
140
144
  __metadata("design:type", Array)
141
145
  ], AssetFilter.prototype, "beneath", void 0);
142
146
  __decorate([
143
- Field(type => [String], { nullable: true, description: 'Return assets that are direct children of any of the given paths.' }),
147
+ Field(type => [UrlSafePath], { nullable: true, description: 'Return assets that are direct children of any of the given paths.' }),
144
148
  __metadata("design:type", Array)
145
149
  ], AssetFilter.prototype, "parentPaths", void 0);
150
+ __decorate([
151
+ Field(type => Int, { nullable: true, description: 'Return assets with filesize greater than the given size, in bytes. Use a negative number for less than.' }),
152
+ __metadata("design:type", Number)
153
+ ], AssetFilter.prototype, "bytes", void 0);
146
154
  __decorate([
147
155
  Field({ nullable: true, description: 'true -> return assets referenced by any page, false -> return assets not referenced by any page, null -> return all assets' }),
148
156
  __metadata("design:type", Boolean)
@@ -1 +1 @@
1
- {"version":3,"file":"asset.model.js","sourceRoot":"","sources":["../../src/asset/asset.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset.model.js","sourceRoot":"","sources":["../../src/asset/asset.model.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,26 @@
1
+ /// <reference types="node" />
1
2
  import type { FastifyInstance } from 'fastify';
2
3
  import { FastifyRequest } from 'fastify';
4
+ import { Readable } from 'stream';
5
+ export declare function placeFile(readStream: Readable, filename: string, mimeGuess: string): Promise<{
6
+ name: string;
7
+ checksum: string;
8
+ mime: string;
9
+ size: number;
10
+ width: number | undefined;
11
+ height: number | undefined;
12
+ }>;
13
+ export declare function handleURLUpload(url: string, auth?: string): Promise<{
14
+ name: string;
15
+ checksum: string;
16
+ mime: string;
17
+ size: number;
18
+ width: number | undefined;
19
+ height: number | undefined;
20
+ }>;
3
21
  export declare function handleUpload(req: FastifyRequest, maxFiles?: number): Promise<{
4
22
  files: {
23
+ fieldname: string;
5
24
  name: string;
6
25
  checksum: string;
7
26
  mime: string;
@@ -5,10 +5,57 @@ import { fileTypeStream } from 'file-type';
5
5
  import { DateTime } from 'luxon';
6
6
  import { lookup } from 'mime-types';
7
7
  import probe from 'probe-image-size';
8
- import { PassThrough } from 'stream';
9
- import { keyby, pLimit } from 'txstate-utils';
10
- import { AssetFolderService, AssetFolderServiceInternal, AssetService, AssetServiceInternal, createAsset, fileHandler, makeSafe, replaceAsset, UserServiceInternal, VersionedService } from '../internal.js';
8
+ import { PassThrough, Readable } from 'stream';
9
+ import { keyby, pLimit, randomid } from 'txstate-utils';
10
+ import { AssetFolderService, AssetFolderServiceInternal, AssetService, AssetServiceInternal, createAsset, fileHandler, GlobalRuleService, makeSafe, replaceAsset, UserServiceInternal, VersionedService } from '../internal.js';
11
11
  const resizeLimiter = pLimit(2);
12
+ export async function placeFile(readStream, filename, mimeGuess) {
13
+ const fileTypePassthru = await fileTypeStream(readStream);
14
+ const probePassthru = new PassThrough();
15
+ const metadataPromise = probe(probePassthru, true);
16
+ const { checksum, size } = await fileHandler.put(fileTypePassthru.pipe(probePassthru));
17
+ let { mime } = fileTypePassthru.fileType ?? { mime: mimeGuess };
18
+ if (mime === 'application/x-cfb' || mime.startsWith('plain/text'))
19
+ mime = mimeGuess; // npm file-type library not good at distinguishing old MS Office formats
20
+ let name = filename;
21
+ const extFromFileName = name.match(/\.(\w+)$/)?.[1];
22
+ if (extFromFileName && lookup(extFromFileName))
23
+ name = name.replace(new RegExp('\\.' + extFromFileName + '$'), '');
24
+ name = makeSafe(name);
25
+ let metadata;
26
+ let width;
27
+ let height;
28
+ if (mime.startsWith('image/')) {
29
+ try {
30
+ metadata = await metadataPromise;
31
+ width = metadata.width;
32
+ height = metadata.height;
33
+ if ((metadata.orientation ?? 1) > 4) {
34
+ width = height;
35
+ height = metadata.width;
36
+ }
37
+ }
38
+ catch (e) {
39
+ console.warn('Unable to read metadata for image', name, 'of type', mime, e);
40
+ }
41
+ }
42
+ return { name, checksum, mime, size, width, height };
43
+ }
44
+ export async function handleURLUpload(url, auth) {
45
+ const resp = await fetch(url, {
46
+ headers: {
47
+ Authorization: auth ?? ''
48
+ }
49
+ });
50
+ if ((resp.status ?? 500) >= 400)
51
+ throw new HttpError(resp.status ?? 500, `Target URL returned status ${resp.status}`);
52
+ const filename = url.split('/').slice(-1)[0] ?? randomid();
53
+ const mimeGuess = resp.headers.get('content-type') ?? (lookup(url) || 'application/octet-stream');
54
+ const readStream = resp.body;
55
+ if (!readStream)
56
+ throw new Error('Unable to read from given URL.');
57
+ return await placeFile(Readable.fromWeb(readStream), filename, mimeGuess);
58
+ }
12
59
  export async function handleUpload(req, maxFiles = 200) {
13
60
  const data = {};
14
61
  const files = [];
@@ -16,34 +63,8 @@ export async function handleUpload(req, maxFiles = 200) {
16
63
  if ('file' in part) {
17
64
  if (files.length >= maxFiles)
18
65
  continue;
19
- const fileTypePassthru = await fileTypeStream(part.file);
20
- const probePassthru = new PassThrough();
21
- const metadataPromise = probe(probePassthru, true);
22
- const checksum = await fileHandler.put(fileTypePassthru.pipe(probePassthru));
23
- const { mime } = fileTypePassthru.fileType ?? { ext: lookup(part.mimetype) || '', mime: part.mimetype };
24
- let name = part.filename;
25
- const extFromFileName = name.match(/\.(\w+)$/)?.[1];
26
- if (extFromFileName && lookup(extFromFileName))
27
- name = name.replace(new RegExp('\\.' + extFromFileName + '$'), '');
28
- name = makeSafe(name);
29
- let metadata;
30
- let width;
31
- let height;
32
- if (mime.startsWith('image/')) {
33
- try {
34
- metadata = await metadataPromise;
35
- width = metadata.width;
36
- height = metadata.height;
37
- if ((metadata.orientation ?? 1) > 4) {
38
- width = height;
39
- height = metadata.width;
40
- }
41
- }
42
- catch (e) {
43
- console.warn('Unable to read metadata for image', name, 'of type', mime, e);
44
- }
45
- }
46
- files.push({ name, checksum, mime, size: part.file.bytesRead, width, height });
66
+ const file = await placeFile(part.file, part.filename, part.mimetype);
67
+ files.push({ ...file, fieldname: part.fieldname });
47
68
  }
48
69
  else {
49
70
  data[part.fieldname] = part.value;
@@ -71,16 +92,50 @@ export async function createAssetRoutes(app) {
71
92
  throw new HttpError(404, 'Specified folder does not exist.');
72
93
  if (!(await ctx.svc(AssetFolderService).mayCreate(folder)))
73
94
  throw new HttpError(403, `Current user is not permitted to add assets to folder ${String(folder.name)}.`);
95
+ if (req.body?.legacyId) {
96
+ const asset = (await ctx.svc(AssetServiceInternal).find({ legacyIds: [req.body.legacyId] }))[0];
97
+ if (asset)
98
+ throw new HttpError(403, 'An asset already exists with the given legacy id. Use /assets/replace/:assetid instead.');
99
+ }
100
+ if (req.body?.createdAt || req.body?.createdBy || req.body?.modifiedAt || req.body?.modifiedBy) {
101
+ if (!req.body.legacyId)
102
+ throw new HttpError(400, 'Only assets being imported from another system may override created/modified attributes.');
103
+ if (!await ctx.svc(GlobalRuleService).mayOverrideStamps())
104
+ throw new HttpError(403, 'You are not allowed to set created/modified stamps on new assets.');
105
+ }
74
106
  const assetService = ctx.svc(AssetService);
75
107
  const versionedService = ctx.svc(VersionedService);
76
- const { files } = await handleUpload(req);
77
- for (const file of files) {
108
+ if (req.isMultipart()) {
109
+ const { files, data } = await handleUpload(req);
110
+ for (const file of files) {
111
+ const asset = await createAsset(versionedService, user.id, {
112
+ ...file,
113
+ legacyId: data[file.fieldname + '_legacyId'],
114
+ folderId: folder.id,
115
+ createdBy: data.createdBy,
116
+ createdAt: data.createdAt,
117
+ modifiedBy: data.modifiedBy,
118
+ modifiedAt: data.modifiedAt
119
+ });
120
+ resizeLimiter(async () => await assetService.createResizes(asset)).catch(console.error);
121
+ }
122
+ }
123
+ else if (req.body?.url) {
124
+ const file = await handleURLUpload(req.body.url, req.body.auth);
78
125
  const asset = await createAsset(versionedService, user.id, {
79
126
  ...file,
80
- folderId: folder.id
127
+ legacyId: req.body.legacyId,
128
+ folderId: folder.id,
129
+ createdBy: req.body.createdBy,
130
+ createdAt: req.body.createdAt,
131
+ modifiedBy: req.body.modifiedBy,
132
+ modifiedAt: req.body.modifiedAt
81
133
  });
82
134
  resizeLimiter(async () => await assetService.createResizes(asset)).catch(console.error);
83
135
  }
136
+ else {
137
+ throw new HttpError(400, 'Asset upload must be multipart or specify a URL to download from.');
138
+ }
84
139
  return 'Success.';
85
140
  });
86
141
  app.post('/assets/replace/:assetid', async (req, res) => {
@@ -89,19 +144,43 @@ export async function createAssetRoutes(app) {
89
144
  const asset = await ctx.svc(AssetServiceInternal).findById(req.params.assetid);
90
145
  if (!asset)
91
146
  throw new HttpError(404, 'Specified asset does not exist.');
92
- if (!(await ctx.svc(AssetService).mayUpdate(asset)))
93
- throw new HttpError(403, `You are not permitted to update asset ${String(asset.name)}.`);
94
147
  const assetService = ctx.svc(AssetService);
95
148
  const versionedService = ctx.svc(VersionedService);
96
- const { files } = await handleUpload(req, 1);
97
- for (const file of files) {
149
+ if (!(await assetService.mayUpdate(asset)))
150
+ throw new HttpError(403, `You are not permitted to update asset ${String(asset.name)}.`);
151
+ if (req.body?.modifiedAt || req.body?.modifiedBy) {
152
+ const data = await versionedService.get(asset.dataId);
153
+ if (!data?.data.legacyId)
154
+ throw new HttpError(400, 'Only assets that were imported from another system may override modified attributes.');
155
+ if (!await ctx.svc(GlobalRuleService).mayOverrideStamps())
156
+ throw new HttpError(403, 'You are not allowed to set modified stamps when updating assets.');
157
+ }
158
+ if (req.isMultipart()) {
159
+ const { files } = await handleUpload(req, 1);
160
+ for (const file of files) {
161
+ const newAsset = await replaceAsset(versionedService, user.id, {
162
+ ...file,
163
+ assetId: asset.id,
164
+ modifiedBy: req.body?.modifiedBy,
165
+ modifiedAt: req.body?.modifiedAt
166
+ });
167
+ ctx.loaders.clear();
168
+ resizeLimiter(async () => await assetService.createResizes(newAsset)).catch(console.error);
169
+ }
170
+ }
171
+ else if (req.body?.url) {
172
+ const file = await handleURLUpload(req.body.url, req.body.auth);
98
173
  const newAsset = await replaceAsset(versionedService, user.id, {
99
174
  ...file,
100
- assetId: asset.id
175
+ assetId: asset.id,
176
+ modifiedBy: req.body.modifiedBy,
177
+ modifiedAt: req.body.modifiedAt
101
178
  });
102
- ctx.loaders.clear();
103
179
  resizeLimiter(async () => await assetService.createResizes(newAsset)).catch(console.error);
104
180
  }
181
+ else {
182
+ throw new HttpError(400, 'Asset upload must be multipart or specify a URL to download from.');
183
+ }
105
184
  return 'Success.';
106
185
  });
107
186
  app.get('/resize/:resizeid/:filename', async (req, res) => {
@@ -1 +1 @@
1
- {"version":3,"file":"asset.routes.js","sourceRoot":"","sources":["../../src/asset/asset.routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset.routes.js","sourceRoot":"","sources":["../../src/asset/asset.routes.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { BaseService } from '@txstate-mws/graphql-server';
2
2
  import { ManyJoinedLoader, OneToManyLoader, PrimaryKeyLoader } from 'dataloader-factory';
3
3
  import { intersect, isNotNull, keyby, roundTo, sortby } from 'txstate-utils';
4
- import { getAssets, AssetFolderService, appendPath, getResizes, SiteService, DosGatoService, getLatestDownload, AssetFolderServiceInternal, AssetResponse, fileHandler, deleteAsset, undeleteAsset, moveAsset, popPath, basename, registerResize, getResizesById } from '../internal.js';
4
+ import { getAssets, AssetFolderService, appendPath, getResizes, SiteService, DosGatoService, getLatestDownload, AssetFolderServiceInternal, AssetResponse, fileHandler, deleteAsset, undeleteAsset, moveAsset, popPath, basename, registerResize, getResizesById, VersionedService, cleanupBinaries } from '../internal.js';
5
5
  import { lookup } from 'mime-types';
6
6
  const thumbnailMimes = new Set(['image/jpg', 'image/jpeg', 'image/gif', 'image/png']);
7
7
  const assetsByIdLoader = new PrimaryKeyLoader({
@@ -96,21 +96,33 @@ export class AssetServiceInternal extends BaseService {
96
96
  return appendPath(await this.svc(AssetFolderServiceInternal).getPath(folder), asset.name);
97
97
  }
98
98
  async processAssetFilters(filter) {
99
+ if (filter?.legacyIds?.length) {
100
+ const ids = await this.svc(VersionedService).find([{ indexName: 'legacyId', in: filter.legacyIds }], 'latest');
101
+ filter.ids = intersect({ skipEmpty: true }, filter.ids, ids);
102
+ if (!filter.ids.length)
103
+ filter.internalIds = [-1];
104
+ }
99
105
  if (filter?.paths?.length) {
100
106
  const folderidpaths = await this.svc(AssetFolderServiceInternal).convertPathsToIDPaths(filter.paths.map(popPath));
101
107
  const folderids = folderidpaths.map(p => +p.split(/\//).slice(-1)[0]);
102
108
  filter.folderInternalIds = intersect({ skipEmpty: true }, filter.folderInternalIds, folderids);
103
109
  filter.names = filter.paths.map(basename);
110
+ if (!folderidpaths.length)
111
+ filter.internalIds = [-1];
104
112
  }
105
113
  if (filter?.beneath?.length) {
106
114
  const folderidpaths = await this.svc(AssetFolderServiceInternal).convertPathsToIDPaths(filter.beneath);
107
115
  const folders = await this.svc(AssetFolderServiceInternal).getChildFoldersByIDPaths(folderidpaths);
108
116
  const ids = [...folders.map(f => f.internalId), ...folderidpaths.map(basename).map(Number)];
109
117
  filter.folderInternalIds = intersect({ skipEmpty: true }, filter.folderInternalIds, ids);
118
+ if (!folderidpaths.length)
119
+ filter.internalIds = [-1];
110
120
  }
111
121
  if (filter?.parentPaths?.length) {
112
122
  const folderidpaths = await this.svc(AssetFolderServiceInternal).convertPathsToIDPaths(filter.parentPaths);
113
123
  filter.folderInternalIds = intersect({ skipEmpty: true }, filter.folderInternalIds, folderidpaths.map(basename).map(Number));
124
+ if (!folderidpaths.length)
125
+ filter.internalIds = [-1];
114
126
  }
115
127
  if (filter?.links?.length) {
116
128
  const assets = await this.findByIds(filter.links.map(l => l.id));
@@ -277,12 +289,18 @@ export class AssetService extends DosGatoService {
277
289
  ? resized.clone().png({ palette: colors <= 256, compressionLevel: 9, progressive: true })
278
290
  : resized.clone().gif({ effort: 10, reoptimize: true, loop: info.loop ?? 0 });
279
291
  const { checksum, info: outputinfo } = await fileHandler.sharpWrite(formatted);
280
- await registerResize(asset, w, checksum, outputmime, outputformat === 'jpg' ? 60 : 0, outputinfo.size);
292
+ if (outputinfo.size > asset.size && ['image/jpeg', 'image/png', 'image/gif'].includes(asset.mime)) {
293
+ // we made a resize that's bigger than the original, abort!
294
+ await cleanupBinaries([checksum]);
295
+ }
296
+ else {
297
+ await registerResize(asset, w, checksum, outputmime, outputformat === 'jpg' ? 60 : 0, outputinfo.size);
298
+ }
281
299
  }
282
300
  if (needwebp) {
283
- const webp = resized.webp({ quality: 65, effort: 6, loop: info.loop ?? 0 });
301
+ const webp = resized.webp({ quality: 75, effort: 6, loop: info.loop ?? 0 });
284
302
  const { checksum: webpsum, info: webpinfo } = await fileHandler.sharpWrite(webp);
285
- await registerResize(asset, w, webpsum, 'image/webp', 65, webpinfo.size);
303
+ await registerResize(asset, w, webpsum, 'image/webp', 75, webpinfo.size);
286
304
  }
287
305
  }
288
306
  }