@divyacon/piece-google-cloud-storage 0.0.0-stage → 0.1.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.
Files changed (93) hide show
  1. package/LICENSE.MIT-AP +24 -0
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +50 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/actions/clone-object.d.ts +9 -0
  7. package/dist/lib/actions/clone-object.d.ts.map +1 -0
  8. package/dist/lib/actions/clone-object.js +77 -0
  9. package/dist/lib/actions/clone-object.js.map +1 -0
  10. package/dist/lib/actions/create-bucket-acl.d.ts +7 -0
  11. package/dist/lib/actions/create-bucket-acl.d.ts.map +1 -0
  12. package/dist/lib/actions/create-bucket-acl.js +60 -0
  13. package/dist/lib/actions/create-bucket-acl.js.map +1 -0
  14. package/dist/lib/actions/create-bucket-default-object-acl.d.ts +7 -0
  15. package/dist/lib/actions/create-bucket-default-object-acl.d.ts.map +1 -0
  16. package/dist/lib/actions/create-bucket-default-object-acl.js +60 -0
  17. package/dist/lib/actions/create-bucket-default-object-acl.js.map +1 -0
  18. package/dist/lib/actions/create-bucket.d.ts +10 -0
  19. package/dist/lib/actions/create-bucket.d.ts.map +1 -0
  20. package/dist/lib/actions/create-bucket.js +80 -0
  21. package/dist/lib/actions/create-bucket.js.map +1 -0
  22. package/dist/lib/actions/create-object-acl.d.ts +9 -0
  23. package/dist/lib/actions/create-object-acl.d.ts.map +1 -0
  24. package/dist/lib/actions/create-object-acl.js +72 -0
  25. package/dist/lib/actions/create-object-acl.js.map +1 -0
  26. package/dist/lib/actions/delete-bucket-acl.d.ts +6 -0
  27. package/dist/lib/actions/delete-bucket-acl.d.ts.map +1 -0
  28. package/dist/lib/actions/delete-bucket-acl.js +56 -0
  29. package/dist/lib/actions/delete-bucket-acl.js.map +1 -0
  30. package/dist/lib/actions/delete-bucket-default-object-acl.d.ts +6 -0
  31. package/dist/lib/actions/delete-bucket-default-object-acl.d.ts.map +1 -0
  32. package/dist/lib/actions/delete-bucket-default-object-acl.js +56 -0
  33. package/dist/lib/actions/delete-bucket-default-object-acl.js.map +1 -0
  34. package/dist/lib/actions/delete-empty-bucket.d.ts +5 -0
  35. package/dist/lib/actions/delete-empty-bucket.d.ts.map +1 -0
  36. package/dist/lib/actions/delete-empty-bucket.js +50 -0
  37. package/dist/lib/actions/delete-empty-bucket.js.map +1 -0
  38. package/dist/lib/actions/delete-object-acl.d.ts +8 -0
  39. package/dist/lib/actions/delete-object-acl.d.ts.map +1 -0
  40. package/dist/lib/actions/delete-object-acl.js +71 -0
  41. package/dist/lib/actions/delete-object-acl.js.map +1 -0
  42. package/dist/lib/actions/delete-object.d.ts +7 -0
  43. package/dist/lib/actions/delete-object.d.ts.map +1 -0
  44. package/dist/lib/actions/delete-object.js +66 -0
  45. package/dist/lib/actions/delete-object.js.map +1 -0
  46. package/dist/lib/actions/search-buckets.d.ts +9 -0
  47. package/dist/lib/actions/search-buckets.d.ts.map +1 -0
  48. package/dist/lib/actions/search-buckets.js +96 -0
  49. package/dist/lib/actions/search-buckets.js.map +1 -0
  50. package/dist/lib/actions/search-objects.d.ts +12 -0
  51. package/dist/lib/actions/search-objects.d.ts.map +1 -0
  52. package/dist/lib/actions/search-objects.js +105 -0
  53. package/dist/lib/actions/search-objects.js.map +1 -0
  54. package/dist/lib/common/auth.d.ts +2 -0
  55. package/dist/lib/common/auth.d.ts.map +1 -0
  56. package/dist/lib/common/auth.js +20 -0
  57. package/dist/lib/common/auth.js.map +1 -0
  58. package/dist/lib/common/client.d.ts +9 -0
  59. package/dist/lib/common/client.d.ts.map +1 -0
  60. package/dist/lib/common/client.js +48 -0
  61. package/dist/lib/common/client.js.map +1 -0
  62. package/dist/lib/common/props.d.ts +12 -0
  63. package/dist/lib/common/props.d.ts.map +1 -0
  64. package/dist/lib/common/props.js +231 -0
  65. package/dist/lib/common/props.js.map +1 -0
  66. package/dist/lib/triggers/new-object-created.d.ts +19 -0
  67. package/dist/lib/triggers/new-object-created.d.ts.map +1 -0
  68. package/dist/lib/triggers/new-object-created.js +127 -0
  69. package/dist/lib/triggers/new-object-created.js.map +1 -0
  70. package/dist/lib/triggers/object-updated.d.ts +19 -0
  71. package/dist/lib/triggers/object-updated.d.ts.map +1 -0
  72. package/dist/lib/triggers/object-updated.js +127 -0
  73. package/dist/lib/triggers/object-updated.js.map +1 -0
  74. package/package.json +43 -3
  75. package/src/index.ts +46 -0
  76. package/src/lib/actions/clone-object.ts +75 -0
  77. package/src/lib/actions/create-bucket-acl.ts +58 -0
  78. package/src/lib/actions/create-bucket-default-object-acl.ts +58 -0
  79. package/src/lib/actions/create-bucket.ts +75 -0
  80. package/src/lib/actions/create-object-acl.ts +81 -0
  81. package/src/lib/actions/delete-bucket-acl.ts +52 -0
  82. package/src/lib/actions/delete-bucket-default-object-acl.ts +52 -0
  83. package/src/lib/actions/delete-empty-bucket.ts +42 -0
  84. package/src/lib/actions/delete-object-acl.ts +64 -0
  85. package/src/lib/actions/delete-object.ts +59 -0
  86. package/src/lib/actions/search-buckets.ts +92 -0
  87. package/src/lib/actions/search-objects.ts +101 -0
  88. package/src/lib/common/auth.ts +15 -0
  89. package/src/lib/common/client.ts +63 -0
  90. package/src/lib/common/props.ts +249 -0
  91. package/src/lib/triggers/new-object-created.ts +174 -0
  92. package/src/lib/triggers/object-updated.ts +174 -0
  93. package/README.md +0 -3
@@ -0,0 +1,9 @@
1
+ import { HttpMethod } from '@agnocon/pieces-common';
2
+ export declare const gcsCommon: {
3
+ gcsBaseUrl: string;
4
+ pubsubBaseUrl: string;
5
+ makeGCSRequest(method: HttpMethod, path: string, accessToken: string, body?: any): Promise<any>;
6
+ makePubSubRequest(method: HttpMethod, path: string, accessToken: string, body?: any): Promise<any>;
7
+ makeRequest(method: HttpMethod, path: string, accessToken: string, body?: any): Promise<any>;
8
+ };
9
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/lib/common/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAEX,MAAM,wBAAwB,CAAC;AAGhC,eAAO,MAAM,SAAS;;;2BAKV,UAAU,QACZ,MAAM,eACC,MAAM,SACZ,GAAG,GACT,OAAO,CAAC,GAAG,CAAC;8BAiBL,UAAU,QACZ,MAAM,eACC,MAAM,SACZ,GAAG,GACT,OAAO,CAAC,GAAG,CAAC;wBAkBL,UAAU,QACZ,MAAM,eACC,MAAM,SACZ,GAAG,GACT,OAAO,CAAC,GAAG,CAAC;CAGhB,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gcsCommon = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // Vendored from Activepieces packages/pieces/community/google-cloud-storage/src/lib/common/client.ts (MIT).
6
+ // Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
7
+ const pieces_common_1 = require("@agnocon/pieces-common");
8
+ exports.gcsCommon = {
9
+ gcsBaseUrl: 'https://www.googleapis.com/storage/v1',
10
+ pubsubBaseUrl: 'https://pubsub.googleapis.com/v1',
11
+ makeGCSRequest(method, path, accessToken, body) {
12
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ const url = path.startsWith('http') ? path : `${this.gcsBaseUrl}${path}`;
14
+ const response = yield pieces_common_1.httpClient.sendRequest({
15
+ method,
16
+ url,
17
+ authentication: {
18
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
19
+ token: accessToken,
20
+ },
21
+ body,
22
+ });
23
+ return response.body;
24
+ });
25
+ },
26
+ makePubSubRequest(method, path, accessToken, body) {
27
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
28
+ const url = path.startsWith('http') ? path : `${this.pubsubBaseUrl}${path}`;
29
+ const response = yield pieces_common_1.httpClient.sendRequest({
30
+ method,
31
+ url,
32
+ authentication: {
33
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
34
+ token: accessToken,
35
+ },
36
+ body,
37
+ });
38
+ return response.body;
39
+ });
40
+ },
41
+ // For backward compatibility
42
+ makeRequest(method, path, accessToken, body) {
43
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
44
+ return this.makeGCSRequest(method, path, accessToken, body);
45
+ });
46
+ },
47
+ };
48
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/common/client.ts"],"names":[],"mappings":";;;;AAAA,4GAA4G;AAC5G,qEAAqE;AACrE,0DAIgC;AAGnB,QAAA,SAAS,GAAG;IACvB,UAAU,EAAE,uCAAuC;IACnD,aAAa,EAAE,kCAAkC;IAE3C,cAAc,CAClB,MAAkB,EAClB,IAAY,EACZ,WAAmB,EACnB,IAAU;;YAEV,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;YAEzE,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC5C,MAAM;gBACN,GAAG;gBACH,cAAc,EAAE;oBACd,IAAI,EAAE,kCAAkB,CAAC,YAAY;oBACrC,KAAK,EAAE,WAAW;iBACnB;gBACD,IAAI;aACL,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;KAAA;IAEK,iBAAiB,CACrB,MAAkB,EAClB,IAAY,EACZ,WAAmB,EACnB,IAAU;;YAEV,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,CAAC;YAE5E,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC5C,MAAM;gBACN,GAAG;gBACH,cAAc,EAAE;oBACd,IAAI,EAAE,kCAAkB,CAAC,YAAY;oBACrC,KAAK,EAAE,WAAW;iBACnB;gBACD,IAAI;aACL,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;KAAA;IAED,6BAA6B;IACvB,WAAW,CACf,MAAkB,EAClB,IAAY,EACZ,WAAmB,EACnB,IAAU;;YAEV,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC;KAAA;CACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const bucketDropdown: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
2
+ export declare const objectDropdown: (bucketProperty: string) => import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
3
+ export declare const projectIdProperty: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
4
+ export declare const bucketNameProperty: import("@agnocon/pieces-framework").ShortTextProperty<true>;
5
+ export declare const objectNameProperty: import("@agnocon/pieces-framework").ShortTextProperty<true>;
6
+ export declare const locationProperty: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
7
+ export declare const storageClassProperty: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
8
+ export declare const aclEntityProperty: import("@agnocon/pieces-framework").ShortTextProperty<true>;
9
+ export declare const aclRoleProperty: import("@agnocon/pieces-framework").StaticDropdownProperty<string, true>;
10
+ export declare const bucketAclRoleProperty: import("@agnocon/pieces-framework").StaticDropdownProperty<string, true>;
11
+ export declare const objectAclRoleProperty: import("@agnocon/pieces-framework").StaticDropdownProperty<string, true>;
12
+ //# sourceMappingURL=props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/lib/common/props.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,yKAwCzB,CAAC;AAEH,eAAO,MAAM,cAAc,mBAAoB,MAAM,4KAyCjD,CAAC;AAEL,eAAO,MAAM,iBAAiB,yKAsC5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,6DAI7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,6DAG7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,2EAgD3B,CAAC;AAEH,eAAO,MAAM,oBAAoB,2EAc/B,CAAC;AAEH,eAAO,MAAM,iBAAiB,6DAI5B,CAAC;AAEH,eAAO,MAAM,eAAe,0EAU1B,CAAC;AAGH,eAAO,MAAM,qBAAqB,0EAUhC,CAAC;AAGH,eAAO,MAAM,qBAAqB,0EAShC,CAAC"}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.objectAclRoleProperty = exports.bucketAclRoleProperty = exports.aclRoleProperty = exports.aclEntityProperty = exports.storageClassProperty = exports.locationProperty = exports.objectNameProperty = exports.bucketNameProperty = exports.projectIdProperty = exports.objectDropdown = exports.bucketDropdown = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // Vendored from Activepieces packages/pieces/community/google-cloud-storage/src/lib/common/props.ts (MIT).
6
+ // Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
7
+ const pieces_framework_1 = require("@agnocon/pieces-framework");
8
+ const client_1 = require("./client");
9
+ const pieces_common_1 = require("@agnocon/pieces-common");
10
+ const auth_1 = require("./auth");
11
+ exports.bucketDropdown = pieces_framework_1.Property.Dropdown({
12
+ displayName: 'Bucket',
13
+ required: true,
14
+ refreshers: ['projectId'],
15
+ auth: auth_1.googleCloudStorageAuth,
16
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, projectId }) {
17
+ var _b;
18
+ if (!auth || !projectId) {
19
+ return {
20
+ disabled: true,
21
+ options: [],
22
+ placeholder: projectId
23
+ ? 'Please connect your account first'
24
+ : 'Please enter project ID first',
25
+ };
26
+ }
27
+ try {
28
+ const authValue = auth;
29
+ const response = yield client_1.gcsCommon.makeRequest(pieces_common_1.HttpMethod.GET, `/b?project=${projectId}`, authValue.access_token);
30
+ return {
31
+ disabled: false,
32
+ options: ((_b = response.items) === null || _b === void 0 ? void 0 : _b.map((bucket) => ({
33
+ label: bucket.name,
34
+ value: bucket.name,
35
+ }))) || [],
36
+ };
37
+ }
38
+ catch (error) {
39
+ return {
40
+ disabled: true,
41
+ options: [],
42
+ placeholder: 'Failed to load buckets',
43
+ };
44
+ }
45
+ }),
46
+ });
47
+ const objectDropdown = (bucketProperty) => pieces_framework_1.Property.Dropdown({
48
+ displayName: 'Object',
49
+ required: true,
50
+ auth: auth_1.googleCloudStorageAuth,
51
+ refreshers: [bucketProperty],
52
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, [bucketProperty]: bucket }) {
53
+ var _b;
54
+ if (!auth || !bucket) {
55
+ return {
56
+ disabled: true,
57
+ options: [],
58
+ placeholder: bucket
59
+ ? 'Please connect your account first'
60
+ : 'Please select a bucket first',
61
+ };
62
+ }
63
+ try {
64
+ const authValue = auth;
65
+ const response = yield client_1.gcsCommon.makeRequest(pieces_common_1.HttpMethod.GET, `/b/${bucket}/o?maxResults=100`, authValue.access_token);
66
+ return {
67
+ disabled: false,
68
+ options: ((_b = response.items) === null || _b === void 0 ? void 0 : _b.map((object) => ({
69
+ label: object.name,
70
+ value: object.name,
71
+ }))) || [],
72
+ };
73
+ }
74
+ catch (error) {
75
+ return {
76
+ disabled: true,
77
+ options: [],
78
+ placeholder: 'Failed to load objects',
79
+ };
80
+ }
81
+ }),
82
+ });
83
+ exports.objectDropdown = objectDropdown;
84
+ exports.projectIdProperty = pieces_framework_1.Property.Dropdown({
85
+ displayName: 'Project',
86
+ required: true,
87
+ auth: auth_1.googleCloudStorageAuth,
88
+ refreshers: [],
89
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
90
+ var _b;
91
+ if (!auth) {
92
+ return {
93
+ disabled: true,
94
+ options: [],
95
+ placeholder: 'Please connect your account first',
96
+ };
97
+ }
98
+ try {
99
+ const authValue = auth;
100
+ // Use Google Cloud Resource Manager API to list projects
101
+ const response = yield client_1.gcsCommon.makeRequest(pieces_common_1.HttpMethod.GET, 'https://cloudresourcemanager.googleapis.com/v1/projects?filter=lifecycleState:ACTIVE', authValue.access_token);
102
+ return {
103
+ disabled: false,
104
+ options: ((_b = response.projects) === null || _b === void 0 ? void 0 : _b.map((project) => ({
105
+ label: `${project.displayName || project.name} (${project.projectId})`,
106
+ value: project.projectId,
107
+ }))) || [],
108
+ };
109
+ }
110
+ catch (error) {
111
+ return {
112
+ disabled: true,
113
+ options: [],
114
+ placeholder: 'Failed to load projects. Check your permissions.',
115
+ };
116
+ }
117
+ }),
118
+ });
119
+ exports.bucketNameProperty = pieces_framework_1.Property.ShortText({
120
+ displayName: 'Bucket Name',
121
+ description: 'Unique name for your bucket (must be globally unique, 3-63 characters)',
122
+ required: true,
123
+ });
124
+ exports.objectNameProperty = pieces_framework_1.Property.ShortText({
125
+ displayName: 'Object Name',
126
+ required: true,
127
+ });
128
+ exports.locationProperty = pieces_framework_1.Property.StaticDropdown({
129
+ displayName: 'Location',
130
+ required: false,
131
+ options: {
132
+ options: [
133
+ // Multi-region
134
+ { label: 'US (Multi-region)', value: 'US' },
135
+ { label: 'EU (Multi-region)', value: 'EU' },
136
+ { label: 'ASIA (Multi-region)', value: 'ASIA' },
137
+ // US regions
138
+ { label: 'us-central1 (Iowa)', value: 'us-central1' },
139
+ { label: 'us-east1 (South Carolina)', value: 'us-east1' },
140
+ { label: 'us-east4 (Northern Virginia)', value: 'us-east4' },
141
+ { label: 'us-west1 (Oregon)', value: 'us-west1' },
142
+ { label: 'us-west2 (Los Angeles)', value: 'us-west2' },
143
+ { label: 'us-west3 (Salt Lake City)', value: 'us-west3' },
144
+ { label: 'us-west4 (Las Vegas)', value: 'us-west4' },
145
+ { label: 'us-south1 (Dallas)', value: 'us-south1' },
146
+ // Europe regions
147
+ { label: 'europe-central2 (Warsaw)', value: 'europe-central2' },
148
+ { label: 'europe-north1 (Finland)', value: 'europe-north1' },
149
+ { label: 'europe-southwest1 (Madrid)', value: 'europe-southwest1' },
150
+ { label: 'europe-west1 (Belgium)', value: 'europe-west1' },
151
+ { label: 'europe-west2 (London)', value: 'europe-west2' },
152
+ { label: 'europe-west3 (Frankfurt)', value: 'europe-west3' },
153
+ { label: 'europe-west4 (Netherlands)', value: 'europe-west4' },
154
+ { label: 'europe-west6 (Zurich)', value: 'europe-west6' },
155
+ { label: 'europe-west8 (Milan)', value: 'europe-west8' },
156
+ { label: 'europe-west9 (Paris)', value: 'europe-west9' },
157
+ // Asia regions
158
+ { label: 'asia-east1 (Taiwan)', value: 'asia-east1' },
159
+ { label: 'asia-east2 (Hong Kong)', value: 'asia-east2' },
160
+ { label: 'asia-northeast1 (Tokyo)', value: 'asia-northeast1' },
161
+ { label: 'asia-northeast2 (Osaka)', value: 'asia-northeast2' },
162
+ { label: 'asia-northeast3 (Seoul)', value: 'asia-northeast3' },
163
+ { label: 'asia-south1 (Mumbai)', value: 'asia-south1' },
164
+ { label: 'asia-south2 (Delhi)', value: 'asia-south2' },
165
+ { label: 'asia-southeast1 (Singapore)', value: 'asia-southeast1' },
166
+ { label: 'asia-southeast2 (Jakarta)', value: 'asia-southeast2' },
167
+ // Other regions
168
+ { label: 'australia-southeast1 (Sydney)', value: 'australia-southeast1' },
169
+ { label: 'australia-southeast2 (Melbourne)', value: 'australia-southeast2' },
170
+ { label: 'northamerica-northeast1 (Montreal)', value: 'northamerica-northeast1' },
171
+ { label: 'northamerica-northeast2 (Toronto)', value: 'northamerica-northeast2' },
172
+ { label: 'southamerica-east1 (São Paulo)', value: 'southamerica-east1' },
173
+ { label: 'southamerica-west1 (Santiago)', value: 'southamerica-west1' },
174
+ ],
175
+ },
176
+ });
177
+ exports.storageClassProperty = pieces_framework_1.Property.StaticDropdown({
178
+ displayName: 'Storage Class',
179
+ required: false,
180
+ options: {
181
+ options: [
182
+ { label: 'Standard', value: 'STANDARD' },
183
+ { label: 'Nearline', value: 'NEARLINE' },
184
+ { label: 'Coldline', value: 'COLDLINE' },
185
+ { label: 'Archive', value: 'ARCHIVE' },
186
+ { label: 'Multi-regional', value: 'MULTI_REGIONAL' },
187
+ { label: 'Regional', value: 'REGIONAL' },
188
+ { label: 'Durable Reduced Availability', value: 'DURABLE_REDUCED_AVAILABILITY' },
189
+ ],
190
+ },
191
+ });
192
+ exports.aclEntityProperty = pieces_framework_1.Property.ShortText({
193
+ displayName: 'Entity',
194
+ description: 'The entity to grant access to. Must include the entity type prefix. Format: user-emailAddress, group-groupId, group-emailAddress, domain-domainName, project-team-projectId, allUsers, or allAuthenticatedUsers. Examples: user-liz@example.com, group-mygroup@googlegroups.com, domain-example.com, allUsers',
195
+ required: true,
196
+ });
197
+ exports.aclRoleProperty = pieces_framework_1.Property.StaticDropdown({
198
+ displayName: 'Role',
199
+ required: true,
200
+ options: {
201
+ options: [
202
+ { label: 'Reader', value: 'READER' },
203
+ { label: 'Writer', value: 'WRITER' },
204
+ { label: 'Owner', value: 'OWNER' },
205
+ ],
206
+ },
207
+ });
208
+ // For bucket ACLs - supports OWNER, WRITER, READER
209
+ exports.bucketAclRoleProperty = pieces_framework_1.Property.StaticDropdown({
210
+ displayName: 'Role',
211
+ required: true,
212
+ options: {
213
+ options: [
214
+ { label: 'Reader', value: 'READER' },
215
+ { label: 'Writer', value: 'WRITER' },
216
+ { label: 'Owner', value: 'OWNER' },
217
+ ],
218
+ },
219
+ });
220
+ // For object ACLs - supports OWNER, READER only
221
+ exports.objectAclRoleProperty = pieces_framework_1.Property.StaticDropdown({
222
+ displayName: 'Role',
223
+ required: true,
224
+ options: {
225
+ options: [
226
+ { label: 'Reader', value: 'READER' },
227
+ { label: 'Owner', value: 'OWNER' },
228
+ ],
229
+ },
230
+ });
231
+ //# sourceMappingURL=props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../src/lib/common/props.ts"],"names":[],"mappings":";;;;AAAA,2GAA2G;AAC3G,qEAAqE;AACrE,gEAA0E;AAC1E,qCAAqC;AACrC,0DAAoD;AACpD,iCAAgD;AAEnC,QAAA,cAAc,GAAG,2BAAQ,CAAC,QAAQ,CAA4C;IACzF,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,IAAI,EAAE,6BAAsB;IAC5B,OAAO,EAAE,KAA4B,EAAE,oDAAvB,EAAE,IAAI,EAAE,SAAS,EAAE;;QACjC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,SAAS;oBACpB,CAAC,CAAC,mCAAmC;oBACrC,CAAC,CAAC,+BAA+B;aACpC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAA2B,CAAC;YAC9C,MAAM,QAAQ,GAAG,MAAM,kBAAS,CAAC,WAAW,CAC1C,0BAAU,CAAC,GAAG,EACd,cAAc,SAAS,EAAE,EACzB,SAAS,CAAC,YAAY,CACvB,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EACL,CAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;oBACpC,KAAK,EAAE,MAAM,CAAC,IAAI;oBAClB,KAAK,EAAE,MAAM,CAAC,IAAI;iBACnB,CAAC,CAAC,KAAI,EAAE;aACZ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,wBAAwB;aACtC,CAAC;QACJ,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC;AAEI,MAAM,cAAc,GAAG,CAAC,cAAsB,EAAE,EAAE,CACvD,2BAAQ,CAAC,QAAQ,CAA4C;IAC3D,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,6BAAsB;IAC5B,UAAU,EAAE,CAAC,cAAc,CAAC;IAC5B,OAAO,EAAE,KAA2C,EAAE,oDAAtC,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE;;QAChD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,MAAM;oBACjB,CAAC,CAAC,mCAAmC;oBACrC,CAAC,CAAC,8BAA8B;aACnC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAA2B,CAAC;YAC9C,MAAM,QAAQ,GAAG,MAAM,kBAAS,CAAC,WAAW,CAC1C,0BAAU,CAAC,GAAG,EACd,MAAM,MAAM,mBAAmB,EAC/B,SAAS,CAAC,YAAY,CACvB,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EACL,CAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;oBACpC,KAAK,EAAE,MAAM,CAAC,IAAI;oBAClB,KAAK,EAAE,MAAM,CAAC,IAAI;iBACnB,CAAC,CAAC,KAAI,EAAE;aACZ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,wBAAwB;aACtC,CAAC;QACJ,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC;AAzCQ,QAAA,cAAc,kBAyCtB;AAEQ,QAAA,iBAAiB,GAAG,2BAAQ,CAAC,QAAQ,CAA4C;IAC5F,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,6BAAsB;IAC5B,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,mCAAmC;aACjD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAA2B,CAAC;YAC9C,yDAAyD;YACzD,MAAM,QAAQ,GAAG,MAAM,kBAAS,CAAC,WAAW,CAC1C,0BAAU,CAAC,GAAG,EACd,sFAAsF,EACtF,SAAS,CAAC,YAAY,CACvB,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC;oBACjD,KAAK,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,GAAG;oBACtE,KAAK,EAAE,OAAO,CAAC,SAAS;iBACzB,CAAC,CAAC,KAAI,EAAE;aACV,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,kDAAkD;aAChE,CAAC;QACJ,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,2BAAQ,CAAC,SAAS,CAAC;IACnD,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,wEAAwE;IACrF,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,2BAAQ,CAAC,SAAS,CAAC;IACnD,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,2BAAQ,CAAC,cAAc,CAAC;IACtD,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE;YACP,eAAe;YACf,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE;YAC3C,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE;YAC3C,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE;YAC/C,aAAa;YACb,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE;YACrD,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,UAAU,EAAE;YACzD,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,UAAU,EAAE;YAC5D,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE;YACjD,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,UAAU,EAAE;YACtD,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,UAAU,EAAE;YACzD,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,UAAU,EAAE;YACpD,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE;YACnD,iBAAiB;YACjB,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC/D,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,eAAe,EAAE;YAC5D,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACnE,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,cAAc,EAAE;YAC1D,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,cAAc,EAAE;YACzD,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,cAAc,EAAE;YAC5D,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,cAAc,EAAE;YAC9D,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,cAAc,EAAE;YACzD,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,cAAc,EAAE;YACxD,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,cAAc,EAAE;YACxD,eAAe;YACf,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,YAAY,EAAE;YACrD,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE;YACxD,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC9D,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC9D,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC9D,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,aAAa,EAAE;YACvD,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa,EAAE;YACtD,EAAE,KAAK,EAAE,6BAA6B,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAClE,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAChE,gBAAgB;YAChB,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,sBAAsB,EAAE;YACzE,EAAE,KAAK,EAAE,kCAAkC,EAAE,KAAK,EAAE,sBAAsB,EAAE;YAC5E,EAAE,KAAK,EAAE,oCAAoC,EAAE,KAAK,EAAE,yBAAyB,EAAE;YACjF,EAAE,KAAK,EAAE,mCAAmC,EAAE,KAAK,EAAE,yBAAyB,EAAE;YAChF,EAAE,KAAK,EAAE,gCAAgC,EAAE,KAAK,EAAE,oBAAoB,EAAE;YACxE,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,oBAAoB,EAAE;SACxE;KACF;CACF,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,2BAAQ,CAAC,cAAc,CAAC;IAC1D,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACxC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACxC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACxC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACtC,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACpD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACxC,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,8BAA8B,EAAE;SACjF;KACF;CACF,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,2BAAQ,CAAC,SAAS,CAAC;IAClD,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,+SAA+S;IAC5T,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,2BAAQ,CAAC,cAAc,CAAC;IACrD,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE;QACP,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SACnC;KACF;CACF,CAAC,CAAC;AAEH,mDAAmD;AACtC,QAAA,qBAAqB,GAAG,2BAAQ,CAAC,cAAc,CAAC;IAC3D,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE;QACP,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SACnC;KACF;CACF,CAAC,CAAC;AAEH,gDAAgD;AACnC,QAAA,qBAAqB,GAAG,2BAAQ,CAAC,cAAc,CAAC;IAC3D,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE;QACP,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SACnC;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { TriggerStrategy } from '@agnocon/pieces-framework';
2
+ export declare const newObjectCreated: import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>, {
3
+ projectId: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
4
+ bucket: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
5
+ prefix: import("@agnocon/pieces-framework").ShortTextProperty<false>;
6
+ }> | import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>, {
7
+ projectId: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
8
+ bucket: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
9
+ prefix: import("@agnocon/pieces-framework").ShortTextProperty<false>;
10
+ }> | import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>, {
11
+ projectId: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
12
+ bucket: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
13
+ prefix: import("@agnocon/pieces-framework").ShortTextProperty<false>;
14
+ }> | import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>, {
15
+ projectId: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
16
+ bucket: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
17
+ prefix: import("@agnocon/pieces-framework").ShortTextProperty<false>;
18
+ }>;
19
+ //# sourceMappingURL=new-object-created.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-object-created.d.ts","sourceRoot":"","sources":["../../../src/lib/triggers/new-object-created.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,eAAe,EAAY,MAAM,2BAA2B,CAAC;AAYrF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;EAiK3B,CAAC"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newObjectCreated = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // Vendored from Activepieces packages/pieces/community/google-cloud-storage/src/lib/triggers/new-object-created.ts (MIT).
6
+ // Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
7
+ const pieces_framework_1 = require("@agnocon/pieces-framework");
8
+ const auth_1 = require("../common/auth");
9
+ const client_1 = require("../common/client");
10
+ const props_1 = require("../common/props");
11
+ const pieces_common_1 = require("@agnocon/pieces-common");
12
+ exports.newObjectCreated = (0, pieces_framework_1.createTrigger)({
13
+ auth: auth_1.googleCloudStorageAuth,
14
+ name: 'new_object_created',
15
+ displayName: 'New Object Created',
16
+ description: 'Triggers when a new object is created in a bucket',
17
+ aiMetadata: {
18
+ description: 'Fires when a new object is finalized (fully written) in the configured bucket, optionally limited to objects whose name starts with a given prefix. Represents a newly created/uploaded file; delivered via a Cloud Pub/Sub push notification (OBJECT_FINALIZE event).',
19
+ },
20
+ props: {
21
+ projectId: props_1.projectIdProperty,
22
+ bucket: props_1.bucketDropdown,
23
+ prefix: pieces_framework_1.Property.ShortText({
24
+ displayName: 'Prefix Filter',
25
+ description: 'Only trigger for objects with this prefix',
26
+ required: false,
27
+ }),
28
+ },
29
+ type: pieces_framework_1.TriggerStrategy.WEBHOOK,
30
+ sampleData: {
31
+ kind: 'storage#object',
32
+ id: 'example-bucket/example-object/1234567890',
33
+ name: 'example-object.txt',
34
+ bucket: 'example-bucket',
35
+ generation: '1234567890',
36
+ contentType: 'text/plain',
37
+ timeCreated: '2023-01-01T00:00:00.000Z',
38
+ updated: '2023-01-01T00:00:00.000Z',
39
+ size: '1024',
40
+ },
41
+ onEnable: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
42
+ const { projectId, bucket, prefix } = context.propsValue;
43
+ const auth = context.auth;
44
+ // Generate unique names for this trigger instance
45
+ const triggerId = `ap-gcs-${bucket}-${Date.now()}`;
46
+ const topicName = `projects/${projectId}/topics/${triggerId}`;
47
+ const subscriptionName = `projects/${projectId}/subscriptions/${triggerId}`;
48
+ try {
49
+ // 1. Create Pub/Sub topic
50
+ yield client_1.gcsCommon.makePubSubRequest(pieces_common_1.HttpMethod.PUT, `/projects/${projectId}/topics/${triggerId}`, auth.access_token);
51
+ // 2. Create GCS notification configuration
52
+ const notificationConfig = {
53
+ topic: topicName,
54
+ payload_format: 'JSON_API_V1',
55
+ event_types: ['OBJECT_FINALIZE'],
56
+ };
57
+ if (prefix) {
58
+ notificationConfig.object_name_prefix = prefix;
59
+ }
60
+ const notificationResponse = yield client_1.gcsCommon.makeGCSRequest(pieces_common_1.HttpMethod.POST, `/b/${bucket}/notificationConfigs`, auth.access_token, notificationConfig);
61
+ // 3. Create Pub/Sub subscription with webhook push
62
+ const subscriptionConfig = {
63
+ topic: topicName,
64
+ pushConfig: {
65
+ pushEndpoint: context.webhookUrl,
66
+ },
67
+ ackDeadlineSeconds: 60,
68
+ };
69
+ yield client_1.gcsCommon.makePubSubRequest(pieces_common_1.HttpMethod.PUT, `/projects/${projectId}/subscriptions/${triggerId}`, auth.access_token, subscriptionConfig);
70
+ // Store trigger data for cleanup
71
+ yield context.store.put('_trigger', {
72
+ topicName: triggerId,
73
+ subscriptionName: triggerId,
74
+ notificationId: notificationResponse.id,
75
+ });
76
+ }
77
+ catch (error) {
78
+ // Cleanup on failure
79
+ try {
80
+ yield client_1.gcsCommon.makePubSubRequest(pieces_common_1.HttpMethod.DELETE, `/projects/${projectId}/subscriptions/${triggerId}`, auth.access_token);
81
+ }
82
+ catch (e) { /* ignore */ }
83
+ try {
84
+ yield client_1.gcsCommon.makePubSubRequest(pieces_common_1.HttpMethod.DELETE, `/projects/${projectId}/topics/${triggerId}`, auth.access_token);
85
+ }
86
+ catch (e) { /* ignore */ }
87
+ throw new Error(`Failed to setup Pub/Sub notifications: ${(error === null || error === void 0 ? void 0 : error.message) || 'Unknown error'}`);
88
+ }
89
+ }),
90
+ onDisable: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
91
+ const triggerData = yield context.store.get('_trigger');
92
+ if (!triggerData)
93
+ return;
94
+ const { projectId } = context.propsValue;
95
+ const { bucket } = context.propsValue;
96
+ const auth = context.auth;
97
+ // Clean up in reverse order
98
+ try {
99
+ // Delete subscription
100
+ yield client_1.gcsCommon.makePubSubRequest(pieces_common_1.HttpMethod.DELETE, `/projects/${projectId}/subscriptions/${triggerData.subscriptionName}`, auth.access_token);
101
+ }
102
+ catch (e) { /* ignore */ }
103
+ try {
104
+ // Delete notification config
105
+ yield client_1.gcsCommon.makeGCSRequest(pieces_common_1.HttpMethod.DELETE, `/b/${bucket}/notificationConfigs/${triggerData.notificationId}`, auth.access_token);
106
+ }
107
+ catch (e) { /* ignore */ }
108
+ try {
109
+ // Delete topic
110
+ yield client_1.gcsCommon.makePubSubRequest(pieces_common_1.HttpMethod.DELETE, `/projects/${projectId}/topics/${triggerData.topicName}`, auth.access_token);
111
+ }
112
+ catch (e) { /* ignore */ }
113
+ }),
114
+ run: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
115
+ var _a;
116
+ const payload = context.payload.body;
117
+ if (!((_a = payload === null || payload === void 0 ? void 0 : payload.message) === null || _a === void 0 ? void 0 : _a.data)) {
118
+ return [];
119
+ }
120
+ // Decode Pub/Sub message
121
+ const messageData = JSON.parse(Buffer.from(payload.message.data, 'base64').toString());
122
+ // Extract GCS object from notification payload
123
+ const gcsObject = messageData;
124
+ return [gcsObject];
125
+ }),
126
+ });
127
+ //# sourceMappingURL=new-object-created.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-object-created.js","sourceRoot":"","sources":["../../../src/lib/triggers/new-object-created.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { TriggerStrategy } from '@agnocon/pieces-framework';
2
+ export declare const objectUpdated: import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>, {
3
+ projectId: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
4
+ bucket: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
5
+ prefix: import("@agnocon/pieces-framework").ShortTextProperty<false>;
6
+ }> | import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>, {
7
+ projectId: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
8
+ bucket: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
9
+ prefix: import("@agnocon/pieces-framework").ShortTextProperty<false>;
10
+ }> | import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>, {
11
+ projectId: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
12
+ bucket: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
13
+ prefix: import("@agnocon/pieces-framework").ShortTextProperty<false>;
14
+ }> | import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>, {
15
+ projectId: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
16
+ bucket: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props>>;
17
+ prefix: import("@agnocon/pieces-framework").ShortTextProperty<false>;
18
+ }>;
19
+ //# sourceMappingURL=object-updated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-updated.d.ts","sourceRoot":"","sources":["../../../src/lib/triggers/object-updated.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,eAAe,EAAY,MAAM,2BAA2B,CAAC;AAYrF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;EAiKxB,CAAC"}