@antelopejs/dms 0.5.2 → 0.5.3

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 (51) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/attachments/access.d.ts +1 -0
  3. package/dist/attachments/access.js +7 -3
  4. package/dist/attachments/access.js.map +1 -1
  5. package/dist/attachments/constraints.d.ts +4 -0
  6. package/dist/attachments/constraints.js +28 -0
  7. package/dist/attachments/constraints.js.map +1 -0
  8. package/dist/attachments/save.js +23 -12
  9. package/dist/attachments/save.js.map +1 -1
  10. package/dist/attachments/uploads.js +2 -0
  11. package/dist/attachments/uploads.js.map +1 -1
  12. package/dist/implementations/dms-base/search-route.js +3 -4
  13. package/dist/implementations/dms-base/search-route.js.map +1 -1
  14. package/dist/test/attachment-host/native.d.ts +25 -0
  15. package/dist/test/attachment-host/native.js +54 -1
  16. package/dist/test/attachment-host/native.js.map +1 -1
  17. package/dist/test/helpers/attachments.d.ts +1 -1
  18. package/dist/test/helpers/attachments.js +2 -2
  19. package/dist/test/helpers/attachments.js.map +1 -1
  20. package/dist/test/integration/files/field-constraints.test.d.ts +1 -0
  21. package/dist/test/integration/files/field-constraints.test.js +100 -0
  22. package/dist/test/integration/files/field-constraints.test.js.map +1 -0
  23. package/dist/test/integration/files/page-mode-form-files.test.d.ts +1 -0
  24. package/dist/test/integration/files/page-mode-form-files.test.js +114 -0
  25. package/dist/test/integration/files/page-mode-form-files.test.js.map +1 -0
  26. package/dist/test/integration/files/resource-form-files.test.d.ts +1 -0
  27. package/dist/test/integration/files/resource-form-files.test.js +121 -0
  28. package/dist/test/integration/files/resource-form-files.test.js.map +1 -0
  29. package/dist/test/integration/files/shared-controller-files.test.d.ts +1 -0
  30. package/dist/test/integration/files/shared-controller-files.test.js +136 -0
  31. package/dist/test/integration/files/shared-controller-files.test.js.map +1 -0
  32. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.d.ts +1 -0
  33. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js +113 -0
  34. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js.map +1 -0
  35. package/dist/test/unit/interfaces/dms-base/resource-form.test.js +19 -0
  36. package/dist/test/unit/interfaces/dms-base/resource-form.test.js.map +1 -1
  37. package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js +2 -2
  38. package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js.map +1 -1
  39. package/frontend-vue/layers/dms-ui/app/components/form/components/File.vue +50 -21
  40. package/frontend-vue/layers/dms-ui/app/components/form/components/Image.vue +54 -21
  41. package/frontend-vue/layers/dms-ui/app/components/form/components/Relation.vue +4 -3
  42. package/frontend-vue/layers/dms-ui/app/composables/form/useUploadWithProgress.ts +44 -3
  43. package/frontend-vue/layers/dms-ui/app/utils/metadataRetry.ts +47 -0
  44. package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +3 -1
  45. package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +3 -1
  46. package/frontend-vue/tests/file-unavailable.test.ts +107 -0
  47. package/frontend-vue/tests/image-hydration-ids.test.ts +87 -0
  48. package/frontend-vue/tests/image-reference-preservation.test.ts +12 -2
  49. package/frontend-vue/tests/metadata-retry.test.ts +187 -0
  50. package/frontend-vue/tests/upload-forbidden-headers.test.ts +52 -0
  51. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.5.3
4
+
5
+ [compare changes](https://github.com/AntelopeJS/dms/compare/v0.5.2...v0.5.3)
6
+
7
+ ### 🩹 Fixes
8
+
9
+ - **table-view:** Validate file provenance against every TableView sharing a data controller ([#112](https://github.com/AntelopeJS/dms/pull/112))
10
+ - **dms-ui:** Stable SSR ids, forbidden upload headers and missing-file state in upload inputs ([#113](https://github.com/AntelopeJS/dms/pull/113))
11
+ - **attachments:** Enforce field constraints at presign and stop retrying missing stored files ([#114](https://github.com/AntelopeJS/dms/pull/114))
12
+ - **resource-form:** Accept native files submitted from ResourceForm blocks ([#115](https://github.com/AntelopeJS/dms/pull/115))
13
+ - **playground:** Promote, validate and clean profile files through SaveComponentFiles ([#116](https://github.com/AntelopeJS/dms/pull/116))
14
+ - **table-view:** Accept native files from page-mode TableView forms ([#117](https://github.com/AntelopeJS/dms/pull/117))
15
+
16
+ ### 🏡 Chore
17
+
18
+ - **release:** @antelopejs/interface-dms v0.3.4 ([9f115b0](https://github.com/AntelopeJS/dms/commit/9f115b0))
19
+
20
+ ### ❤️ Contributors
21
+
22
+ - Antony Rizzitelli <rizzitelli.antony@pm.me>
23
+
3
24
  ## v0.5.2
4
25
 
5
26
  [compare changes](https://github.com/AntelopeJS/dms/compare/v0.5.1...v0.5.2)
@@ -6,4 +6,5 @@ export declare const RegisterNativeUploadField: {
6
6
  register(registration: NativeUploadFieldRegistration): void;
7
7
  unregister(registration: NativeUploadFieldRegistration): void;
8
8
  };
9
+ export declare function findNativeUploadDeclaration(owner: UploadTokenClaims, write: boolean): NativeUploadFieldRegistration | undefined;
9
10
  export declare function assertNativeFileAccess(context: RequestContext, owner: UploadTokenClaims, write: boolean): Promise<RequestPrincipal>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RegisterNativeUploadField = void 0;
4
+ exports.findNativeUploadDeclaration = findNativeUploadDeclaration;
4
5
  exports.assertNativeFileAccess = assertNativeFileAccess;
5
6
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
6
7
  const page_1 = require("../implementations/dms/page");
@@ -46,10 +47,13 @@ async function hasComponentAccess(principal, registration, memberModel, roleMode
46
47
  required.push(registration.writePermission);
47
48
  return (await Promise.all(required.map((id) => (0, permissions_1.HasPermission)(permissions, id)))).every(Boolean);
48
49
  }
49
- async function assertNativeFileAccess(context, owner, write) {
50
+ function findNativeUploadDeclaration(owner, write) {
50
51
  if (!owner.pageId || !owner.componentId)
51
- (0, registry_1.denyAttachment)();
52
- const registration = [...registrations.values()].find((item) => declarationsMatch(item.declaration, owner, write))?.declaration;
52
+ return undefined;
53
+ return [...registrations.values()].find((item) => declarationsMatch(item.declaration, owner, write))?.declaration;
54
+ }
55
+ async function assertNativeFileAccess(context, owner, write) {
56
+ const registration = findNativeUploadDeclaration(owner, write);
53
57
  if (!registration)
54
58
  (0, registry_1.denyAttachment)();
55
59
  if (write && registration.writePermission === "__native_upload_disabled__")
@@ -1 +1 @@
1
- {"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/attachments/access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/attachments/access.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { FileMetadata, UploadConstraints } from "@antelopejs/interface-file-storage";
2
+ export type ConstrainedFile = Pick<FileMetadata, "size" | "mimetype">;
3
+ export declare function findConstraintViolation(constraints: UploadConstraints | undefined, file: ConstrainedFile): string | undefined;
4
+ export declare function assertUploadSatisfiesField(constraints: UploadConstraints | undefined, file: ConstrainedFile): void;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findConstraintViolation = findConstraintViolation;
4
+ exports.assertUploadSatisfiesField = assertUploadSatisfiesField;
5
+ const interface_api_1 = require("@antelopejs/interface-api");
6
+ const UPLOAD_REJECTED_STATUS = 400;
7
+ const WILDCARD_SUFFIX = "/*";
8
+ function matchesMimetype(mimetype, pattern) {
9
+ if (pattern === mimetype)
10
+ return true;
11
+ return (pattern.endsWith(WILDCARD_SUFFIX) &&
12
+ mimetype.startsWith(pattern.slice(0, -1)));
13
+ }
14
+ function findConstraintViolation(constraints, file) {
15
+ if (constraints?.maxSize !== undefined && file.size > constraints.maxSize)
16
+ return `the file exceeds this field's maximum size of ${constraints.maxSize} bytes`;
17
+ const allowed = constraints?.allowedMimetypes;
18
+ if (allowed?.length &&
19
+ !allowed.some((pattern) => matchesMimetype(file.mimetype, pattern)))
20
+ return `type "${file.mimetype}" is not allowed for this field (allowed: ${allowed.join(", ")})`;
21
+ return undefined;
22
+ }
23
+ function assertUploadSatisfiesField(constraints, file) {
24
+ const violation = findConstraintViolation(constraints, file);
25
+ if (violation)
26
+ throw new interface_api_1.HTTPResult(UPLOAD_REJECTED_STATUS, `Upload rejected: ${violation}.`);
27
+ }
28
+ //# sourceMappingURL=constraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../src/attachments/constraints.ts"],"names":[],"mappings":";;AAoBA,0DAaC;AAGD,gEAUC;AA9CD,6DAAuD;AAMvD,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,eAAe,GAAG,IAAI,CAAC;AAI7B,SAAS,eAAe,CAAC,QAAgB,EAAE,OAAe;IACxD,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;QACjC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC1C,CAAC;AACJ,CAAC;AAGD,SAAgB,uBAAuB,CACrC,WAA0C,EAC1C,IAAqB;IAErB,IAAI,WAAW,EAAE,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO;QACvE,OAAO,iDAAiD,WAAW,CAAC,OAAO,QAAQ,CAAC;IACtF,MAAM,OAAO,GAAG,WAAW,EAAE,gBAAgB,CAAC;IAC9C,IACE,OAAO,EAAE,MAAM;QACf,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEnE,OAAO,SAAS,IAAI,CAAC,QAAQ,6CAA6C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAClG,OAAO,SAAS,CAAC;AACnB,CAAC;AAGD,SAAgB,0BAA0B,CACxC,WAA0C,EAC1C,IAAqB;IAErB,MAAM,SAAS,GAAG,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7D,IAAI,SAAS;QACX,MAAM,IAAI,0BAAU,CAClB,sBAAsB,EACtB,oBAAoB,SAAS,GAAG,CACjC,CAAC;AACN,CAAC"}
@@ -1,20 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SaveComponentFiles = SaveComponentFiles;
4
+ const interface_api_1 = require("@antelopejs/interface-api");
4
5
  const logging_1 = require("@antelopejs/interface-core/logging");
5
6
  const interface_file_storage_1 = require("@antelopejs/interface-file-storage");
6
7
  const access_1 = require("./access");
8
+ const constraints_1 = require("./constraints");
7
9
  const fields_1 = require("./fields");
8
10
  const registry_1 = require("./registry");
11
+ const BAD_REQUEST = 400;
12
+ const FILE_NOT_FOUND_ERROR_NAME = "FileNotFoundError";
13
+ function isFileNotFoundError(error) {
14
+ return error instanceof Error && error.name === FILE_NOT_FOUND_ERROR_NAME;
15
+ }
16
+ async function storedReference(ref) {
17
+ try {
18
+ const key = (0, interface_file_storage_1.isStagedKey)(ref.key)
19
+ ? (await (0, interface_file_storage_1.PromoteFile)(ref.key, ref.field.storage)).resourceKey
20
+ : ref.key;
21
+ return { key, metadata: await (0, interface_file_storage_1.GetFileMetadata)(key, ref.field.storage) };
22
+ }
23
+ catch (error) {
24
+ if (isFileNotFoundError(error))
25
+ throw new interface_api_1.HTTPResult(BAD_REQUEST, "A submitted file was never stored. Upload it again.");
26
+ throw error;
27
+ }
28
+ }
9
29
  function assertConstraints(metadata, reference) {
10
- const constraints = reference.field.constraints;
11
- if (constraints?.maxSize !== undefined && metadata.size > constraints.maxSize)
12
- (0, registry_1.denyAttachment)();
13
- const allowed = constraints?.allowedMimetypes;
14
- if (allowed?.length &&
15
- !allowed.some((pattern) => pattern === metadata.mimetype ||
16
- (pattern.endsWith("/*") &&
17
- metadata.mimetype.startsWith(pattern.slice(0, -1)))))
30
+ if ((0, constraints_1.findConstraintViolation)(reference.field.constraints, metadata))
18
31
  (0, registry_1.denyAttachment)();
19
32
  }
20
33
  async function validateReference(request, ref) {
@@ -52,10 +65,8 @@ async function promoteReferences(request, refs) {
52
65
  for (const field of request.fields) {
53
66
  const mapping = new Map();
54
67
  for (const ref of refs.filter((ref) => ref.field.id === field.id)) {
55
- const key = (0, interface_file_storage_1.isStagedKey)(ref.key)
56
- ? (await (0, interface_file_storage_1.PromoteFile)(ref.key, field.storage)).resourceKey
57
- : ref.key;
58
- assertConstraints(await (0, interface_file_storage_1.GetFileMetadata)(key, field.storage), ref);
68
+ const { key, metadata } = await storedReference(ref);
69
+ assertConstraints(metadata, ref);
59
70
  mapping.set(ref.key, key);
60
71
  }
61
72
  if (field.key in document)
@@ -1 +1 @@
1
- {"version":3,"file":"save.js","sourceRoot":"","sources":["../../src/attachments/save.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"save.js","sourceRoot":"","sources":["../../src/attachments/save.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,11 @@ const interface_file_storage_1 = require("@antelopejs/interface-file-storage");
6
6
  const config_1 = require("../config");
7
7
  const upload_constraints_1 = require("../utils/upload-constraints");
8
8
  const access_1 = require("./access");
9
+ const constraints_1 = require("./constraints");
9
10
  const registry_1 = require("./registry");
10
11
  async function createAttachmentUpload(context, request, claims) {
11
12
  const principal = await (0, access_1.assertNativeFileAccess)(context, claims, true);
13
+ (0, constraints_1.assertUploadSatisfiesField)((0, access_1.findNativeUploadDeclaration)(claims, true)?.constraints, request);
12
14
  const upload = await (0, interface_file_storage_1.CreateUploadUrl)({ ...request, staging: true, visibility: claims.visibility || "private" }, (0, upload_constraints_1.buildUploadConstraints)((0, config_1.getUploadsConfig)()), claims.storage);
13
15
  await (0, registry_1.attachmentTable)()
14
16
  .insert({
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/attachments/uploads.ts"],"names":[],"mappings":";;AAaA,wDAqBC;AAGD,0EAMC;AA1CD,+EAI4C;AAC5C,sCAA6C;AAC7C,oEAAqE;AAErE,qCAAkD;AAClD,yCAA2E;AAGpE,KAAK,UAAU,sBAAsB,CAC1C,OAAuB,EACvB,OAAsB,EACtB,MAAyB;IAEzB,MAAM,SAAS,GAAG,MAAM,IAAA,+BAAsB,EAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,IAAA,wCAAe,EAClC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS,EAAE,EACzE,IAAA,2CAAsB,EAAC,IAAA,yBAAgB,GAAE,CAAC,EAC1C,MAAM,CAAC,OAAO,CACf,CAAC;IACF,MAAM,IAAA,0BAAe,GAAE;SACpB,MAAM,CAAC;QACN,GAAG,EAAE,IAAA,uBAAY,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC;QACrD,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KACnC,CAAC;SACD,GAAG,EAAE,CAAC;IACT,OAAO,MAAM,CAAC;AAChB,CAAC;AAGM,KAAK,UAAU,+BAA+B,CACnD,GAAW,EACX,OAAgB;IAEhB,IAAI,CAAC,CAAC,MAAM,IAAA,yBAAc,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,IAAA,wCAAe,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/attachments/uploads.ts"],"names":[],"mappings":";;AAcA,wDAyBC;AAGD,0EAMC;AA/CD,+EAI4C;AAC5C,sCAA6C;AAC7C,oEAAqE;AAErE,qCAA+E;AAC/E,+CAA2D;AAC3D,yCAA2E;AAGpE,KAAK,UAAU,sBAAsB,CAC1C,OAAuB,EACvB,OAAsB,EACtB,MAAyB;IAEzB,MAAM,SAAS,GAAG,MAAM,IAAA,+BAAsB,EAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACtE,IAAA,wCAA0B,EACxB,IAAA,oCAA2B,EAAC,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,EACtD,OAAO,CACR,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,IAAA,wCAAe,EAClC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS,EAAE,EACzE,IAAA,2CAAsB,EAAC,IAAA,yBAAgB,GAAE,CAAC,EAC1C,MAAM,CAAC,OAAO,CACf,CAAC;IACF,MAAM,IAAA,0BAAe,GAAE;SACpB,MAAM,CAAC;QACN,GAAG,EAAE,IAAA,uBAAY,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC;QACrD,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KACnC,CAAC;SACD,GAAG,EAAE,CAAC;IACT,OAAO,MAAM,CAAC;AAChB,CAAC;AAGM,KAAK,UAAU,+BAA+B,CACnD,GAAW,EACX,OAAgB;IAEhB,IAAI,CAAC,CAAC,MAAM,IAAA,yBAAc,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,IAAA,wCAAe,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC"}
@@ -69,16 +69,15 @@ async function computeEffectivePermissions(reqCtx, user, permissions) {
69
69
  }
70
70
  async function canViewArchived(thisObj, reqCtx, user, permissions) {
71
71
  const tableViewMeta = (0, interface_core_1.GetMetadata)(thisObj.constructor, table_view_1.TableViewMeta);
72
- const action = tableViewMeta?.componentBuilder?.getAction("viewArchived");
73
- const permissionId = action?.permissionId;
74
- if (!permissionId) {
72
+ const permissionIds = tableViewMeta.actionPermissionIds("viewArchived");
73
+ if (permissionIds.length === 0) {
75
74
  return true;
76
75
  }
77
76
  const resolved = await computeEffectivePermissions(reqCtx, user, permissions);
78
77
  if (!resolved) {
79
78
  return false;
80
79
  }
81
- return (0, permissions_1.HasPermission)(resolved, permissionId);
80
+ return (0, permissions_1.HasAnyPermission)(resolved, permissionIds);
82
81
  }
83
82
  async function applyArchiveFilter(thisObj, reqCtx, user, permissions, filters) {
84
83
  const tableViewMeta = (0, interface_core_1.GetMetadata)(thisObj.constructor, table_view_1.TableViewMeta);
@@ -1 +1 @@
1
- {"version":3,"file":"search-route.js","sourceRoot":"","sources":["../../../src/implementations/dms-base/search-route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-route.js","sourceRoot":"","sources":["../../../src/implementations/dms-base/search-route.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,33 @@ declare const NativeFilePage_base: {
7
7
  export declare class NativeFilePage extends NativeFilePage_base {
8
8
  static content: import("@antelopejs/interface-dms").ComponentBuilder<import("@antelopejs/interface-dms/base").TableViewOptionsSerialized>;
9
9
  }
10
+ declare const NativeFileSecondaryPage_base: {
11
+ new (...args: any[]): {};
12
+ extend: <T extends import("@antelopejs/interface-api").ControllerClass>(this: T, location: string) => T;
13
+ location: string;
14
+ };
15
+ export declare class NativeFileSecondaryPage extends NativeFileSecondaryPage_base {
16
+ static content: import("@antelopejs/interface-dms").ComponentBuilder<import("@antelopejs/interface-dms/base").TableViewOptionsSerialized>;
17
+ }
18
+ declare const NativeFileNewFormPage_base: {
19
+ new (...args: any[]): {};
20
+ extend: <T extends import("@antelopejs/interface-api").ControllerClass>(this: T, location: string) => T;
21
+ location: string;
22
+ };
23
+ export declare class NativeFileNewFormPage extends NativeFileNewFormPage_base {
24
+ static content: import("@antelopejs/interface-dms/base").FormBuilder;
25
+ }
26
+ declare const NativeFileEditFormPage_base: {
27
+ new (...args: any[]): {};
28
+ extend: <T extends import("@antelopejs/interface-api").ControllerClass>(this: T, location: string) => T;
29
+ location: string;
30
+ };
31
+ export declare class NativeFileEditFormPage extends NativeFileEditFormPage_base {
32
+ static content: import("@antelopejs/interface-dms/base").FormBuilder;
33
+ }
10
34
  declare const NativeAttachmentFormController_base: import("@antelopejs/interface-api").ControllerClass<object>;
11
35
  export declare class NativeAttachmentFormController extends NativeAttachmentFormController_base {
12
36
  get(_user: User): Promise<import("@antelopejs/interface-dms").ComponentInfoSerialized<import("@antelopejs/interface-dms/base").TableViewOptionsSerialized>>;
37
+ relation(_user: User): Promise<import("@antelopejs/interface-dms").ComponentInfoSerialized>;
13
38
  }
14
39
  export {};
@@ -12,7 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.NativeAttachmentFormController = exports.NativeFilePage = void 0;
15
+ exports.NativeAttachmentFormController = exports.NativeFileEditFormPage = exports.NativeFileNewFormPage = exports.NativeFileSecondaryPage = exports.NativeFilePage = void 0;
16
16
  const interface_api_1 = require("@antelopejs/interface-api");
17
17
  const interface_core_1 = require("@antelopejs/interface-core");
18
18
  const interface_data_api_1 = require("@antelopejs/interface-data-api");
@@ -49,6 +49,10 @@ __decorate([
49
49
  (0, interface_database_decorators_1.Field)("any"),
50
50
  __metadata("design:type", Object)
51
51
  ], NativeDocument.prototype, "image", void 0);
52
+ __decorate([
53
+ (0, interface_database_decorators_1.Field)("any"),
54
+ __metadata("design:type", Array)
55
+ ], NativeDocument.prototype, "gallery", void 0);
52
56
  NativeDocument = __decorate([
53
57
  (0, interface_database_decorators_1.RegisterTable)(TABLE, constants_1.CORE_SCHEMA_NAME)
54
58
  ], NativeDocument);
@@ -58,6 +62,7 @@ let NativeDocumentController = class NativeDocumentController extends (0, interf
58
62
  new: table_view_1.TableViewRoutes.New,
59
63
  edit: table_view_1.TableViewRoutes.Edit,
60
64
  get: table_view_1.TableViewRoutes.Get,
65
+ select: table_view_1.TableViewRoutes.Select,
61
66
  delete: table_view_1.TableViewRoutes.Delete,
62
67
  }, (0, interface_api_1.Controller)(LOCATION)) {
63
68
  };
@@ -116,6 +121,17 @@ __decorate([
116
121
  (0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
117
122
  __metadata("design:type", Object)
118
123
  ], NativeDocumentController.prototype, "image", void 0);
124
+ __decorate([
125
+ (0, table_view_1.Column)({
126
+ name: "Gallery",
127
+ type: new default_types_1.DefaultDataTypes.ImageType({
128
+ multiple: true,
129
+ constraints: { allowedMimetypes: ["image/png"], maxSize: 64 },
130
+ }),
131
+ }),
132
+ (0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
133
+ __metadata("design:type", Array)
134
+ ], NativeDocumentController.prototype, "gallery", void 0);
119
135
  NativeDocumentController = __decorate([
120
136
  (0, interface_data_api_1.RegisterDataController)()
121
137
  ], NativeDocumentController);
@@ -142,10 +158,40 @@ exports.NativeFilePage = NativeFilePage;
142
158
  exports.NativeFilePage = NativeFilePage = __decorate([
143
159
  (0, page_1.RegisterPage)()
144
160
  ], NativeFilePage);
161
+ const secondaryTable = (0, table_view_1.TableView)(NativeDocumentController, {
162
+ rowIdKey: "id",
163
+ rowActions: { add: true, edit: true, details: true },
164
+ });
165
+ let NativeFileSecondaryPage = class NativeFileSecondaryPage extends (0, page_1.RootPageController)("nativefiles-secondary", { displayName: "Native files (secondary)" }) {
166
+ static content = secondaryTable;
167
+ };
168
+ exports.NativeFileSecondaryPage = NativeFileSecondaryPage;
169
+ exports.NativeFileSecondaryPage = NativeFileSecondaryPage = __decorate([
170
+ (0, page_1.RegisterPage)()
171
+ ], NativeFileSecondaryPage);
172
+ let NativeFileNewFormPage = class NativeFileNewFormPage extends (0, page_1.RootPageController)("nativefiles-new-form", { displayName: "Native files (new form)" }) {
173
+ static content = (0, table_view_1.ResourceForm)(NativeDocumentController, { mode: "new" });
174
+ };
175
+ exports.NativeFileNewFormPage = NativeFileNewFormPage;
176
+ exports.NativeFileNewFormPage = NativeFileNewFormPage = __decorate([
177
+ (0, page_1.RegisterPage)()
178
+ ], NativeFileNewFormPage);
179
+ let NativeFileEditFormPage = class NativeFileEditFormPage extends (0, page_1.RootPageController)("nativefiles-edit-form", { displayName: "Native files (edit form)" }) {
180
+ static content = (0, table_view_1.ResourceForm)(NativeDocumentController, { mode: "edit" });
181
+ };
182
+ exports.NativeFileEditFormPage = NativeFileEditFormPage;
183
+ exports.NativeFileEditFormPage = NativeFileEditFormPage = __decorate([
184
+ (0, page_1.RegisterPage)()
185
+ ], NativeFileEditFormPage);
145
186
  class NativeAttachmentFormController extends (0, interface_api_1.Controller)(`${LOCATION}/form`) {
146
187
  async get(_user) {
147
188
  return form.serialize();
148
189
  }
190
+ async relation(_user) {
191
+ return new default_types_1.DefaultDataTypes.RelationType({
192
+ dataApiController: NativeDocumentController,
193
+ }).inputComponent();
194
+ }
149
195
  }
150
196
  exports.NativeAttachmentFormController = NativeAttachmentFormController;
151
197
  __decorate([
@@ -155,4 +201,11 @@ __decorate([
155
201
  __metadata("design:paramtypes", [Function]),
156
202
  __metadata("design:returntype", Promise)
157
203
  ], NativeAttachmentFormController.prototype, "get", null);
204
+ __decorate([
205
+ (0, interface_api_1.Get)("/relation"),
206
+ __param(0, (0, guards_1.AuthTenantMember)()),
207
+ __metadata("design:type", Function),
208
+ __metadata("design:paramtypes", [Function]),
209
+ __metadata("design:returntype", Promise)
210
+ ], NativeAttachmentFormController.prototype, "relation", null);
158
211
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/test/attachment-host/native.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAKmC;AACnC,+DAAyD;AACzD,uEAGwC;AACxC,sEAMiD;AACjD,6FAQmD;AACnD,mEAAuE;AACvE,6DAAoE;AACpE,yDAGwC;AACxC,yDAA8E;AAE9E,2FAA2F;AAC3F,0EAImD;AAEnD,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAC3C,MAAM,KAAK,GAAG,6BAA6B,CAAC;AAG5C,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,qCAAK,CAAC,IAAI,CAAC,oDAAoB,CAAC;CAM5D,CAAA;AAL0B;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;gDAA0B;AACjB;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;kDAA4B;AACjB;IAA1B,IAAA,qCAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;;6CAAyB;AAClB;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;kDAA4B;AACT;IAAlC,IAAA,yCAAS,GAAE;IAAE,IAAA,qCAAK,EAAC,KAAK,CAAC;;6CAA4C;AALlE,cAAc;IADnB,IAAA,6CAAa,EAAC,KAAK,EAAE,4BAAgB,CAAC;GACjC,cAAc,CAMnB;AAED,MAAM,mBAAoB,SAAQ,IAAA,8CAAc,EAAC,cAAc,EAAE,KAAK,CAAC;CAAG;AAG1E,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,IAAA,mCAAc,EACnD,cAAc,EACd;IACE,GAAG,EAAE,4BAAe,CAAC,GAAG;IACxB,IAAI,EAAE,4BAAe,CAAC,IAAI;IAC1B,GAAG,EAAE,4BAAe,CAAC,GAAG;IACxB,MAAM,EAAE,4BAAe,CAAC,MAAM;CAC/B,EACD,IAAA,0BAAU,EAAC,QAAQ,CAAC,CACrB;CAgCA,CAAA;AA/B6B;IAA3B,IAAA,yBAAgB,GAAE;;sDAAoB;AAG/B;IAFP,IAAA,yBAAc,GAAE;IAChB,IAAA,qCAAK,EAAC,mBAAmB,CAAC;8BACZ,mBAAmB;uDAAC;AAG3B;IAFP,IAAA,yBAAS,EAAC,oBAAoB,EAAE,QAAQ,CAAC;IACzC,IAAA,sBAAW,EAAC,oDAAoB,CAAC;;0DACT;AACY;IAApC,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;;qDAAqB;AACZ;IAApC,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;;oDAAoB;AACV;IAArC,IAAA,iBAAM,EAAC,qBAAU,CAAC,SAAS,CAAC;;0DAA0B;AAM/C;IALP,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,IAAI,gCAAgB,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;KACtE,CAAC;IACD,IAAA,iBAAM,EAAC,qBAAU,CAAC,SAAS,CAAC;;sDACR;AAMb;IALP,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,IAAI,gCAAgB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KACxD,CAAC;IACD,IAAA,iBAAM,EAAC,qBAAU,CAAC,SAAS,CAAC;;uDACL;AAMhB;IALP,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,IAAI,gCAAgB,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;KAC9D,CAAC;IACD,IAAA,iBAAM,EAAC,qBAAU,CAAC,SAAS,CAAC;;4DACF;AAGnB;IAFP,IAAA,mBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,gCAAgB,CAAC,SAAS,EAAE,EAAE,CAAC;IACjE,IAAA,iBAAM,EAAC,qBAAU,CAAC,SAAS,CAAC;;uDACc;AAxCvC,wBAAwB;IAD7B,IAAA,2CAAsB,GAAE;GACnB,wBAAwB,CAyC7B;AAED,IAAA,4BAAW,EAAC,wBAAwB,EAAE,sBAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;IACnE,YAAY,CAAC;AACf,IAAA,4BAAW,EAAC,wBAAwB,EAAE,sBAAW,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5E,MAAM,IAAI,GAAG,IAAA,sBAAS,EAAC,wBAAwB,EAAE;IAC/C,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACpD,MAAM,EAAE;QACN,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,MAAM,IAAA,mCAA4B,EAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG;gBACzC,MAAM,IAAI,0BAAU,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QACnD,CAAC;KACF;CACF,CAAC,CAAC;AAGI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,IAAA,yBAAkB,EAAC,aAAa,EAAE;IACpE,WAAW,EAAE,cAAc;CAC5B,CAAC;IACA,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;;AAHX,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAY,GAAE;GACF,cAAc,CAI1B;AAED,MAAa,8BAA+B,SAAQ,IAAA,0BAAU,EAC5D,GAAG,QAAQ,OAAO,CACnB;IAEO,AAAN,KAAK,CAAC,GAAG,CAAqB,KAAW;QACvC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;CACF;AAPD,wEAOC;AAHO;IADL,IAAA,mBAAG,EAAC,GAAG,CAAC;IACE,WAAA,IAAA,yBAAgB,GAAE,CAAA;;;;yDAE5B"}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/test/attachment-host/native.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type AxiosInstance } from "axios";
2
2
  import { type UploadTokenClaims } from "../../utils/upload-token";
3
- export declare function nativeUploadToken(client: AxiosInstance, field?: string, mode?: string): Promise<string>;
3
+ export declare function nativeUploadToken(client: AxiosInstance, field?: string, mode?: string, slug?: string): Promise<string>;
4
4
  export declare function findUploadToken(value: unknown, field: string): string | undefined;
5
5
  export interface UploadedAttachment {
6
6
  key: string;
@@ -11,9 +11,9 @@ const chai_1 = require("chai");
11
11
  const upload_token_1 = require("../../utils/upload-token");
12
12
  const PRESIGN_URL = "/api/files/presign";
13
13
  const HTTP_OK = 200;
14
- async function nativeUploadToken(client, field = "file", mode = "new") {
14
+ async function nativeUploadToken(client, field = "file", mode = "new", slug = "/nativefiles") {
15
15
  const response = await client.get("/dms/pagelayout", {
16
- params: { slug: "/nativefiles" },
16
+ params: { slug },
17
17
  });
18
18
  (0, chai_1.expect)(response.status, JSON.stringify(response.data)).to.equal(HTTP_OK);
19
19
  const form = response.data.components.content.options.formComponents[mode];
@@ -1 +1 @@
1
- {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../../src/test/helpers/attachments.ts"],"names":[],"mappings":";;;;;AAWA,8CAaC;AAED,0CAWC;AAiBD,4CA8BC;AApFD,kDAAkD;AAClD,+BAA8B;AAC9B,2DAGkC;AAElC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,OAAO,GAAG,GAAG,CAAC;AAGb,KAAK,UAAU,iBAAiB,CACrC,MAAqB,EACrB,KAAK,GAAG,MAAM,EACd,IAAI,GAAG,KAAK;IAEZ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE;QACnD,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;KACjC,CAAC,CAAC;IACH,IAAA,aAAM,EAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,eAAe,CAC7B,KAAc,EACd,KAAa;IAEb,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QACxE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;SACvB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC7C,IAAI,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC;AAiBM,KAAK,UAAU,gBAAgB,CACpC,OAAgC;IAEhC,MAAM,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,GAAG,gBAAgB,EAC3B,KAAK,GACN,GAAG,OAAO,CAAC;IACZ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;QAC9C,QAAQ;QACR,IAAI,EAAE,OAAO,CAAC,UAAU;QACxB,QAAQ;QACR,WAAW,EAAE,KAAK,IAAI,IAAA,8BAAe,EAAC,MAAM,CAAC;KAC9C,CAAC,CAAC;IACH,IAAA,aAAM,EAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAoD,CAAC;IAC7E,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;QAC1D,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;QAC1B,gBAAgB,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;KACnC,CAAC,CAAC;IACH,IAAA,aAAM,EAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzE,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,WAAW;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../../src/test/helpers/attachments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const attachments_1 = require("../../helpers/attachments");
5
+ const auth_1 = require("../../helpers/auth");
6
+ const db_1 = require("../../helpers/db");
7
+ const PRESIGN_URL = "/api/files/presign";
8
+ const LOCATION = "/api/native-attachments";
9
+ const PROFILE_SLUG = "/settings/user/profile";
10
+ const AVATAR_FIELD = "profile-avatar#avatar";
11
+ const FIELD_MAX_SIZE = 64;
12
+ const HTTP_OK = 200;
13
+ const HTTP_BAD_REQUEST = 400;
14
+ const HTTP_FORBIDDEN = 403;
15
+ async function ownerClient() {
16
+ const user = await (0, auth_1.registerUser)({ owner: true });
17
+ return (0, auth_1.authorizedClient)(user.accessToken);
18
+ }
19
+ async function presign(client, uploadToken, { mimetype, size }) {
20
+ return client.post(PRESIGN_URL, {
21
+ filename: "upload.bin",
22
+ size,
23
+ mimetype,
24
+ uploadToken,
25
+ });
26
+ }
27
+ async function presignTableField(client, request) {
28
+ return presign(client, await (0, attachments_1.nativeUploadToken)(client, request.field), request);
29
+ }
30
+ async function avatarToken(client) {
31
+ const layout = await client.get("/dms/pagelayout", {
32
+ params: { slug: PROFILE_SLUG },
33
+ });
34
+ (0, chai_1.expect)(layout.status, JSON.stringify(layout.data)).to.equal(HTTP_OK);
35
+ const token = (0, attachments_1.findUploadToken)(layout.data, AVATAR_FIELD);
36
+ if (!token)
37
+ throw new Error("No upload token for the profile avatar");
38
+ return token;
39
+ }
40
+ const ACCEPTED = [
41
+ { field: "file", mimetype: "text/plain", size: FIELD_MAX_SIZE },
42
+ { field: "files", mimetype: "application/pdf", size: 1024 },
43
+ { field: "image", mimetype: "image/jpeg", size: 1024 },
44
+ { field: "gallery", mimetype: "image/png", size: FIELD_MAX_SIZE },
45
+ ];
46
+ const REJECTED = [
47
+ { field: "file", mimetype: "text/plain", size: FIELD_MAX_SIZE + 1 },
48
+ { field: "image", mimetype: "text/plain", size: 16 },
49
+ { field: "gallery", mimetype: "image/jpeg", size: 16 },
50
+ { field: "gallery", mimetype: "image/png", size: FIELD_MAX_SIZE + 1 },
51
+ ];
52
+ describe("[integration] native field constraints at presign", () => {
53
+ beforeEach(db_1.resetDatabase);
54
+ it("presigns uploads that satisfy the table-view column constraints", async () => {
55
+ const client = await ownerClient();
56
+ for (const request of ACCEPTED) {
57
+ const response = await presignTableField(client, request);
58
+ (0, chai_1.expect)(response.status, JSON.stringify(request)).to.equal(HTTP_OK);
59
+ }
60
+ });
61
+ it("rejects uploads that break the table-view column constraints with 400", async () => {
62
+ const client = await ownerClient();
63
+ for (const request of REJECTED) {
64
+ const response = await presignTableField(client, request);
65
+ (0, chai_1.expect)(response.status, JSON.stringify(request)).to.equal(HTTP_BAD_REQUEST);
66
+ (0, chai_1.expect)(String(response.data)).to.match(/^Upload rejected: /);
67
+ }
68
+ });
69
+ it("applies a standalone form field's own constraints", async () => {
70
+ const client = await ownerClient();
71
+ const token = await avatarToken(client);
72
+ const accepted = await presign(client, token, {
73
+ mimetype: "image/png",
74
+ size: 16,
75
+ });
76
+ (0, chai_1.expect)(accepted.status, JSON.stringify(accepted.data)).to.equal(HTTP_OK);
77
+ const rejected = await presign(client, token, {
78
+ mimetype: "text/plain",
79
+ size: 16,
80
+ });
81
+ (0, chai_1.expect)(rejected.status).to.equal(HTTP_BAD_REQUEST);
82
+ (0, chai_1.expect)(String(rejected.data)).to.contain("image/png");
83
+ });
84
+ it("still rejects at promotion a key staged through a laxer field", async () => {
85
+ const client = await ownerClient();
86
+ const upload = await (0, attachments_1.uploadAttachment)({
87
+ client,
88
+ content: Buffer.from("not an image"),
89
+ mimetype: "text/plain",
90
+ claims: {},
91
+ filename: "note.txt",
92
+ token: await (0, attachments_1.nativeUploadToken)(client, "files"),
93
+ });
94
+ const saved = await client.post(`${LOCATION}/new`, {
95
+ gallery: [{ key: upload.key }],
96
+ });
97
+ (0, chai_1.expect)(saved.status, JSON.stringify(saved.data)).to.equal(HTTP_FORBIDDEN);
98
+ });
99
+ });
100
+ //# sourceMappingURL=field-constraints.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-constraints.test.js","sourceRoot":"","sources":["../../../../src/test/integration/files/field-constraints.test.ts"],"names":[],"mappings":"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"}