@tulip-systems/drive 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/google/server.d.mts +2 -2
  2. package/dist/google/server.mjs +2 -2
  3. package/dist/google.d.mts +2 -2
  4. package/dist/google.mjs +2 -2
  5. package/dist/local/server.d.mts +2 -2
  6. package/dist/local/server.mjs +2 -2
  7. package/dist/local.d.mts +2 -2
  8. package/dist/local.mjs +2 -2
  9. package/dist/providers/google/lib/router.server.d.mts +107 -147
  10. package/dist/providers/google/lib/router.server.mjs +27 -33
  11. package/dist/providers/google/lib/service.server.d.mts +1 -1
  12. package/dist/providers/google/lib/validators.d.mts +76 -1
  13. package/dist/providers/google/lib/validators.mjs +22 -1
  14. package/dist/providers/local/lib/route-handler.server.d.mts +5 -3
  15. package/dist/providers/local/lib/route-handler.server.mjs +1 -1
  16. package/dist/providers/local/lib/router.server.d.mts +1202 -41226
  17. package/dist/providers/local/lib/router.server.mjs +35 -42
  18. package/dist/providers/local/lib/schema.mjs +1 -1
  19. package/dist/providers/local/lib/service.server.d.mts +31 -8
  20. package/dist/providers/local/lib/upload.client.d.mts +4 -4
  21. package/dist/providers/local/lib/upload.client.mjs +1 -1
  22. package/dist/providers/local/lib/validators.d.mts +1385 -9
  23. package/dist/providers/local/lib/validators.mjs +38 -3
  24. package/package.json +3 -3
  25. package/src/providers/google/lib/router.server.ts +55 -51
  26. package/src/providers/google/lib/service.server.ts +1 -1
  27. package/src/providers/google/lib/validators.ts +23 -0
  28. package/src/providers/local/lib/route-handler.server.ts +12 -10
  29. package/src/providers/local/lib/router.server.ts +211 -117
  30. package/src/providers/local/lib/schema.ts +1 -1
  31. package/src/providers/local/lib/service.server.ts +1 -1
  32. package/src/providers/local/lib/upload.client.ts +6 -6
  33. package/src/providers/local/lib/validators.ts +58 -5
@@ -1,10 +1,10 @@
1
1
  import stream from "node:stream/consumers";
2
- import type { TDatabaseSchema } from "@tulip-systems/core/config";
3
2
  import type { TableQueryResponse } from "@tulip-systems/core/data-tables/server";
4
3
  import {
5
4
  convertSearchToQueryParams,
6
5
  createTableQueryResponse,
7
6
  } from "@tulip-systems/core/data-tables/server";
7
+ import type { TDatabaseSchema } from "@tulip-systems/core/database";
8
8
  import type { Database } from "@tulip-systems/core/database/server";
9
9
  import { ServerError } from "@tulip-systems/core/router/server";
10
10
  import { type ObjectBodyInput, storageAssets } from "@tulip-systems/core/storage";
@@ -1,6 +1,6 @@
1
- import { generateDefaultUUID } from "@tulip-systems/core/config";
1
+ import { generateDefaultUUID } from "@tulip-systems/core/database";
2
2
  import type { BulkActionSchema } from "@tulip-systems/core/router";
3
- import type { StorageAsset } from "@tulip-systems/core/storage";
3
+ import type { SelectStorageAssetSchema } from "@tulip-systems/core/storage";
4
4
  import type {
5
5
  LocalDriveFileNode,
6
6
  LocalDriveNode,
@@ -20,13 +20,13 @@ export type LocalDriveUploadFileRequest = PresignLocalDriveFileInput & { file: F
20
20
  export type LocalDriveUploadHooks = {
21
21
  beforePresign?: (input: LocalDriveUploadFileRequest) => Promise<void> | void;
22
22
  afterPresign?: (presignResult: {
23
- asset: Omit<StorageAsset, "presignedUrl">;
23
+ asset: SelectStorageAssetSchema;
24
24
  node: LocalDriveFileNode;
25
25
  uploadId: string;
26
26
  presignedUrl: string;
27
27
  }) => Promise<void> | void;
28
28
  beforeConfirm?: (presignResult: {
29
- asset: Omit<StorageAsset, "presignedUrl">;
29
+ asset: SelectStorageAssetSchema;
30
30
  node: LocalDriveFileNode;
31
31
  uploadId: string;
32
32
  presignedUrl: string;
@@ -53,7 +53,7 @@ export type LocalDriveUploadClient = {
53
53
  type CreateLocalDriveUploadClientProps = {
54
54
  endpoints: {
55
55
  presignUpload: (input: PresignLocalDriveFileInput) => Promise<{
56
- asset: Omit<StorageAsset, "presignedUrl">;
56
+ asset: SelectStorageAssetSchema;
57
57
  node: LocalDriveFileNode;
58
58
  uploadId: string;
59
59
  presignedUrl: string;
@@ -92,7 +92,7 @@ export function createLocalDriveUploadClient(
92
92
  hooks?: LocalDriveUploadHooks,
93
93
  ): Promise<LocalDriveFileNode> {
94
94
  let presignResult: {
95
- asset: Omit<StorageAsset, "presignedUrl">;
95
+ asset: SelectStorageAssetSchema;
96
96
  node: LocalDriveFileNode;
97
97
  uploadId: string;
98
98
  presignedUrl: string;
@@ -1,7 +1,12 @@
1
- import { resolveFiltersSchema, tableQuerySchema } from "@tulip-systems/core/data-tables";
1
+ import {
2
+ resolveFiltersSchema,
3
+ tableQueryPaginationResponseSchema,
4
+ tableQuerySchema,
5
+ } from "@tulip-systems/core/data-tables";
2
6
  import {
3
7
  getAssetURLSchema,
4
- type StorageAsset,
8
+ type SelectStorageAssetSchema,
9
+ selectStorageAssetSchema,
5
10
  storageAssetVisibilitySchema,
6
11
  } from "@tulip-systems/core/storage";
7
12
  import { z } from "zod";
@@ -26,11 +31,59 @@ export const localDriveNodeSchema = driveNodeSchema.extend({
26
31
  assetId: z.string().nullable(),
27
32
  });
28
33
 
34
+ /**
35
+ * File node & folder node
36
+ */
37
+ export const localDriveFileNodeSchema = localDriveNodeSchema.extend({
38
+ type: z.literal("file"),
39
+ });
40
+
41
+ export const localDriveFolderNodeSchema = localDriveNodeSchema.extend({
42
+ type: z.literal("folder"),
43
+ });
44
+
29
45
  export type LocalDriveNode = z.infer<typeof localDriveNodeSchema>;
30
- export type LocalDriveFileNode = LocalDriveNode & { type: "file" };
31
- export type LocalDriveFolderNode = LocalDriveNode & { type: "folder" };
46
+ export type LocalDriveFileNode = z.infer<typeof localDriveFileNodeSchema>;
47
+ export type LocalDriveFolderNode = z.infer<typeof localDriveFolderNodeSchema>;
32
48
  export type LocalDriveNodeChild = DriveNodeChild<LocalDriveNode>;
33
- export type LocalDriveNodeWithAsset = LocalDriveNode & { asset: StorageAsset | null };
49
+ export type LocalDriveNodeWithAsset = LocalDriveNode & { asset: SelectStorageAssetSchema | null };
50
+
51
+ /**
52
+ * Node with asset
53
+ */
54
+ export const localDriveNodeWithAssetSchema = localDriveNodeSchema.extend({
55
+ asset: selectStorageAssetSchema.nullable(),
56
+ });
57
+
58
+ /**
59
+ * Presign upload response
60
+ */
61
+ export const localDrivePresignUploadOutputSchema = z.object({
62
+ uploadId: z.string(),
63
+ presignedUrl: z.string(),
64
+ node: localDriveFileNodeSchema,
65
+ asset: selectStorageAssetSchema,
66
+ });
67
+
68
+ /**
69
+ * Node parent
70
+ */
71
+ export const localDriveNodeParentSchema = z.object({
72
+ id: z.string(),
73
+ name: z.string(),
74
+ parentId: z.string().nullable(),
75
+ depth: z.number(),
76
+ });
77
+
78
+ /**
79
+ * Tree response
80
+ */
81
+ export const localDriveTreeResponseSchema = z.object({
82
+ data: z.array(localDriveNodeWithAssetSchema),
83
+ pagination: tableQueryPaginationResponseSchema,
84
+ });
85
+
86
+ export const localDriveFlatResponseSchema = localDriveTreeResponseSchema;
34
87
 
35
88
  /**
36
89
  * Node with children