@scopieflows/app-microsoft-sharepoint 0.2.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 (84) hide show
  1. package/README.md +2 -0
  2. package/package.json +31 -0
  3. package/src/i18n/de.json +131 -0
  4. package/src/i18n/es.json +131 -0
  5. package/src/i18n/fr.json +131 -0
  6. package/src/i18n/ja.json +131 -0
  7. package/src/i18n/nl.json +131 -0
  8. package/src/i18n/pt.json +131 -0
  9. package/src/i18n/ru.json +49 -0
  10. package/src/i18n/translation.json +131 -0
  11. package/src/i18n/vi.json +49 -0
  12. package/src/i18n/zh.json +131 -0
  13. package/src/index.d.ts +2 -0
  14. package/src/index.js +121 -0
  15. package/src/index.js.map +1 -0
  16. package/src/lib/actions/copy-item-within-site.d.ts +8 -0
  17. package/src/lib/actions/copy-item-within-site.js +155 -0
  18. package/src/lib/actions/copy-item-within-site.js.map +1 -0
  19. package/src/lib/actions/copy-item.d.ts +10 -0
  20. package/src/lib/actions/copy-item.js +118 -0
  21. package/src/lib/actions/copy-item.js.map +1 -0
  22. package/src/lib/actions/create-folder.d.ts +6 -0
  23. package/src/lib/actions/create-folder.js +44 -0
  24. package/src/lib/actions/create-folder.js.map +1 -0
  25. package/src/lib/actions/create-list-item.d.ts +5 -0
  26. package/src/lib/actions/create-list-item.js +43 -0
  27. package/src/lib/actions/create-list-item.js.map +1 -0
  28. package/src/lib/actions/create-list.d.ts +5 -0
  29. package/src/lib/actions/create-list.js +41 -0
  30. package/src/lib/actions/create-list.js.map +1 -0
  31. package/src/lib/actions/delete-list-item.d.ts +5 -0
  32. package/src/lib/actions/delete-list-item.js +33 -0
  33. package/src/lib/actions/delete-list-item.js.map +1 -0
  34. package/src/lib/actions/find-file.d.ts +8 -0
  35. package/src/lib/actions/find-file.js +133 -0
  36. package/src/lib/actions/find-file.js.map +1 -0
  37. package/src/lib/actions/get-folder-contents.d.ts +9 -0
  38. package/src/lib/actions/get-folder-contents.js +108 -0
  39. package/src/lib/actions/get-folder-contents.js.map +1 -0
  40. package/src/lib/actions/get-site-information.d.ts +4 -0
  41. package/src/lib/actions/get-site-information.js +38 -0
  42. package/src/lib/actions/get-site-information.js.map +1 -0
  43. package/src/lib/actions/move-file.d.ts +7 -0
  44. package/src/lib/actions/move-file.js +151 -0
  45. package/src/lib/actions/move-file.js.map +1 -0
  46. package/src/lib/actions/publish-page.d.ts +4 -0
  47. package/src/lib/actions/publish-page.js +52 -0
  48. package/src/lib/actions/publish-page.js.map +1 -0
  49. package/src/lib/actions/search-list-item.d.ts +5 -0
  50. package/src/lib/actions/search-list-item.js +40 -0
  51. package/src/lib/actions/search-list-item.js.map +1 -0
  52. package/src/lib/actions/update-list-item.d.ts +6 -0
  53. package/src/lib/actions/update-list-item.js +42 -0
  54. package/src/lib/actions/update-list-item.js.map +1 -0
  55. package/src/lib/actions/upload-file.d.ts +7 -0
  56. package/src/lib/actions/upload-file.js +49 -0
  57. package/src/lib/actions/upload-file.js.map +1 -0
  58. package/src/lib/common/index.d.ts +14 -0
  59. package/src/lib/common/index.js +394 -0
  60. package/src/lib/common/index.js.map +1 -0
  61. package/src/lib/triggers/new-file-in-folder.d.ts +18 -0
  62. package/src/lib/triggers/new-file-in-folder.js +155 -0
  63. package/src/lib/triggers/new-file-in-folder.js.map +1 -0
  64. package/src/lib/triggers/new-file-in-subfolders.d.ts +18 -0
  65. package/src/lib/triggers/new-file-in-subfolders.js +151 -0
  66. package/src/lib/triggers/new-file-in-subfolders.js.map +1 -0
  67. package/src/lib/triggers/new-list-item.d.ts +14 -0
  68. package/src/lib/triggers/new-list-item.js +95 -0
  69. package/src/lib/triggers/new-list-item.js.map +1 -0
  70. package/src/lib/triggers/new-list.d.ts +10 -0
  71. package/src/lib/triggers/new-list.js +89 -0
  72. package/src/lib/triggers/new-list.js.map +1 -0
  73. package/src/lib/triggers/new-or-updated-file.d.ts +18 -0
  74. package/src/lib/triggers/new-or-updated-file.js +152 -0
  75. package/src/lib/triggers/new-or-updated-file.js.map +1 -0
  76. package/src/lib/triggers/new-or-updated-folder.d.ts +18 -0
  77. package/src/lib/triggers/new-or-updated-folder.js +152 -0
  78. package/src/lib/triggers/new-or-updated-folder.js.map +1 -0
  79. package/src/lib/triggers/new-or-updated-list.d.ts +10 -0
  80. package/src/lib/triggers/new-or-updated-list.js +103 -0
  81. package/src/lib/triggers/new-or-updated-list.js.map +1 -0
  82. package/src/lib/triggers/updated-list-item.d.ts +14 -0
  83. package/src/lib/triggers/updated-list-item.js +108 -0
  84. package/src/lib/triggers/updated-list-item.js.map +1 -0
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newFileInSubfoldersTrigger = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const __1 = require("../../");
6
+ const pieces_framework_1 = require("@scopieflows/pieces-framework");
7
+ const common_1 = require("../common");
8
+ const microsoft_graph_client_1 = require("@microsoft/microsoft-graph-client");
9
+ const clientState = 'scopieflows_sharepoint_subfolder_trigger';
10
+ exports.newFileInSubfoldersTrigger = (0, pieces_framework_1.createTrigger)({
11
+ auth: __1.microsoftSharePointAuth,
12
+ name: 'new_file_in_subfolders',
13
+ displayName: 'New File in Subfolders',
14
+ description: 'Fires when a new file is added anywhere in the first-level subfolders of a folder. Note: This trigger will not monitor subfolders created after the flow is activated.',
15
+ props: {
16
+ siteId: common_1.microsoftSharePointCommon.siteId,
17
+ driveId: common_1.microsoftSharePointCommon.driveId,
18
+ parentFolderId: pieces_framework_1.Property.Dropdown({
19
+ auth: __1.microsoftSharePointAuth,
20
+ displayName: 'Parent Folder',
21
+ description: 'The parent folder whose subfolders you want to monitor.',
22
+ required: true,
23
+ refreshers: ['siteId', 'driveId'],
24
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, siteId, driveId }) {
25
+ if (!auth || !siteId || !driveId) {
26
+ return {
27
+ disabled: true,
28
+ placeholder: 'Select a site and drive first.',
29
+ options: [],
30
+ };
31
+ }
32
+ const authValue = auth;
33
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
34
+ authProvider: {
35
+ getAccessToken: () => Promise.resolve(authValue.access_token),
36
+ },
37
+ });
38
+ const options = [
39
+ { label: 'Root Folder', value: 'root' },
40
+ ];
41
+ let response = yield client
42
+ .api(`/drives/${driveId}/root/children?$filter=folder ne null&$select=id,name`)
43
+ .get();
44
+ while (response.value.length > 0) {
45
+ for (const item of response.value) {
46
+ options.push({ label: item.name, value: item.id });
47
+ }
48
+ if (response['@odata.nextLink']) {
49
+ response = yield client.api(response['@odata.nextLink']).get();
50
+ }
51
+ else {
52
+ break;
53
+ }
54
+ }
55
+ return { disabled: false, options };
56
+ }),
57
+ }),
58
+ },
59
+ type: pieces_framework_1.TriggerStrategy.WEBHOOK,
60
+ sampleData: {
61
+ "id": "01DRYVE_ID_GOES_HERE",
62
+ "name": "New-File-In-Subfolder.pdf",
63
+ "webUrl": "https://contoso.sharepoint.com/Shared%20Documents/SubfolderA/New-File-In-Subfolder.pdf",
64
+ "size": 54321,
65
+ "createdDateTime": "2025-09-26T14:30:00Z",
66
+ "lastModifiedDateTime": "2025-09-26T14:30:00Z",
67
+ "file": { "mimeType": "application/pdf" },
68
+ "parentReference": { "id": "SUBFOLDER_ID_HERE" }
69
+ },
70
+ onEnable(context) {
71
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
72
+ const { siteId, driveId, parentFolderId } = context.propsValue;
73
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
74
+ authProvider: {
75
+ getAccessToken: () => Promise.resolve(context.auth.access_token),
76
+ },
77
+ });
78
+ try {
79
+ const effectiveParentId = parentFolderId === 'root'
80
+ ? (yield client.api(`/drives/${driveId}/root`).get()).id
81
+ : parentFolderId;
82
+ const subfoldersResponse = yield client.api(`/drives/${driveId}/items/${effectiveParentId}/children?$filter=folder ne null&$select=id`).get();
83
+ const subfolders = subfoldersResponse.value;
84
+ const expirationDateTime = new Date();
85
+ expirationDateTime.setDate(expirationDateTime.getDate() + 2);
86
+ const subscriptionPromises = subfolders.map(folder => client.api('/subscriptions').post({
87
+ changeType: 'created',
88
+ notificationUrl: context.webhookUrl,
89
+ resource: `/sites/${siteId}/drive/items/${folder.id}/children`,
90
+ expirationDateTime: expirationDateTime.toISOString(),
91
+ clientState: clientState,
92
+ }));
93
+ const settledSubscriptions = yield Promise.allSettled(subscriptionPromises);
94
+ const subscriptionIds = settledSubscriptions
95
+ .filter(res => res.status === 'fulfilled')
96
+ .map(res => res.value.id);
97
+ yield context.store.put('subscriptionIds', subscriptionIds);
98
+ }
99
+ catch (error) {
100
+ throw new Error(`Failed to create subscriptions: ${error.message || 'Unknown error'}`);
101
+ }
102
+ });
103
+ },
104
+ onDisable(context) {
105
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
106
+ const subscriptionIds = yield context.store.get('subscriptionIds');
107
+ if (subscriptionIds && subscriptionIds.length > 0) {
108
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
109
+ authProvider: {
110
+ getAccessToken: () => Promise.resolve(context.auth.access_token),
111
+ },
112
+ });
113
+ const deletionPromises = subscriptionIds.map(id => client.api(`/subscriptions/${id}`).delete().catch(err => console.error(`Failed to delete subscription ${id}:`, err)));
114
+ yield Promise.allSettled(deletionPromises);
115
+ }
116
+ yield context.store.delete('subscriptionIds');
117
+ });
118
+ },
119
+ run(context) {
120
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
121
+ var _a;
122
+ const notifications = (_a = context.payload.body) === null || _a === void 0 ? void 0 : _a.value;
123
+ if (!notifications || !Array.isArray(notifications)) {
124
+ return [];
125
+ }
126
+ const validNotifications = notifications.filter((notif) => notif.clientState === clientState);
127
+ if (validNotifications.length === 0) {
128
+ return [];
129
+ }
130
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
131
+ authProvider: {
132
+ getAccessToken: () => Promise.resolve(context.auth.access_token),
133
+ },
134
+ });
135
+ const newFilePayloads = [];
136
+ for (const notification of validNotifications) {
137
+ try {
138
+ const newFile = yield client.api(notification.resource).get();
139
+ if (newFile.file) {
140
+ newFilePayloads.push(newFile);
141
+ }
142
+ }
143
+ catch (error) {
144
+ console.error('Error fetching file from notification:', error);
145
+ }
146
+ }
147
+ return newFilePayloads;
148
+ });
149
+ },
150
+ });
151
+ //# sourceMappingURL=new-file-in-subfolders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-file-in-subfolders.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/microsoft-sharepoint/src/lib/triggers/new-file-in-subfolders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { TriggerStrategy } from '@scopieflows/pieces-framework';
2
+ export declare const newListItemTrigger: import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
3
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
4
+ listId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
5
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
6
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
7
+ listId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
8
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
9
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
10
+ listId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
11
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
12
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
13
+ listId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
14
+ }>;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newListItemTrigger = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const __1 = require("../../");
6
+ const pieces_framework_1 = require("@scopieflows/pieces-framework");
7
+ const common_1 = require("../common");
8
+ const microsoft_graph_client_1 = require("@microsoft/microsoft-graph-client");
9
+ const pieces_common_1 = require("@scopieflows/pieces-common");
10
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
11
+ const polling = {
12
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
13
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, propsValue, lastFetchEpochMS }) {
14
+ const { siteId, listId } = propsValue;
15
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
16
+ authProvider: {
17
+ getAccessToken: () => Promise.resolve(auth.access_token),
18
+ },
19
+ });
20
+ const items = [];
21
+ const filter = lastFetchEpochMS === 0 ? `$filter=createdDateTime gt ${(0, dayjs_1.default)().toISOString()}` : '$top=10';
22
+ let response = yield client
23
+ .api(`/sites/${siteId}/lists/${listId}/items?${filter}`)
24
+ .expand('fields')
25
+ .get();
26
+ if (lastFetchEpochMS === 0) {
27
+ for (const message of response.value) {
28
+ items.push(message);
29
+ }
30
+ }
31
+ else {
32
+ while (response.value.length > 0) {
33
+ for (const message of response.value) {
34
+ items.push(message);
35
+ }
36
+ if (response['@odata.nextLink']) {
37
+ response = yield client.api(response['@odata.nextLink']).get();
38
+ }
39
+ else {
40
+ break;
41
+ }
42
+ }
43
+ }
44
+ items.sort((a, b) => {
45
+ const aDate = (0, dayjs_1.default)(a.createdDateTime);
46
+ const bDate = (0, dayjs_1.default)(b.createdDateTime);
47
+ return bDate.diff(aDate);
48
+ });
49
+ return items.map((item) => ({
50
+ epochMilliSeconds: (0, dayjs_1.default)(item.createdDateTime).valueOf(),
51
+ data: item,
52
+ }));
53
+ }),
54
+ };
55
+ exports.newListItemTrigger = (0, pieces_framework_1.createTrigger)({
56
+ auth: __1.microsoftSharePointAuth,
57
+ name: 'new_list_item',
58
+ displayName: 'New List Item',
59
+ description: 'Triggers when a new item is created in a SharePoint list.',
60
+ props: {
61
+ siteId: common_1.microsoftSharePointCommon.siteId,
62
+ listId: common_1.microsoftSharePointCommon.listId,
63
+ },
64
+ type: pieces_framework_1.TriggerStrategy.POLLING,
65
+ sampleData: undefined,
66
+ onEnable(context) {
67
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
68
+ yield pieces_common_1.pollingHelper.onEnable(polling, {
69
+ auth: context.auth,
70
+ store: context.store,
71
+ propsValue: context.propsValue,
72
+ });
73
+ });
74
+ },
75
+ onDisable(context) {
76
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
77
+ yield pieces_common_1.pollingHelper.onDisable(polling, {
78
+ auth: context.auth,
79
+ store: context.store,
80
+ propsValue: context.propsValue,
81
+ });
82
+ });
83
+ },
84
+ test(context) {
85
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
86
+ return yield pieces_common_1.pollingHelper.test(polling, context);
87
+ });
88
+ },
89
+ run(context) {
90
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
91
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
92
+ });
93
+ },
94
+ });
95
+ //# sourceMappingURL=new-list-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-list-item.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/microsoft-sharepoint/src/lib/triggers/new-list-item.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { TriggerStrategy } from '@scopieflows/pieces-framework';
2
+ export declare const newListTrigger: import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
3
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
4
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
5
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
6
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
7
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
8
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
9
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
10
+ }>;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newListTrigger = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const __1 = require("../../");
6
+ const pieces_framework_1 = require("@scopieflows/pieces-framework");
7
+ const common_1 = require("../common");
8
+ const microsoft_graph_client_1 = require("@microsoft/microsoft-graph-client");
9
+ const pieces_common_1 = require("@scopieflows/pieces-common");
10
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
11
+ const polling = {
12
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
13
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, propsValue, lastFetchEpochMS }) {
14
+ const { siteId } = propsValue;
15
+ const isTestMode = lastFetchEpochMS === 0;
16
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
17
+ authProvider: {
18
+ getAccessToken: () => Promise.resolve(auth.access_token),
19
+ },
20
+ });
21
+ const lists = [];
22
+ let response = yield client.api(`/sites/${siteId}/lists`).get();
23
+ let stop = false;
24
+ while (!stop && response.value.length > 0) {
25
+ for (const item of response.value) {
26
+ if (isTestMode) {
27
+ lists.push(item);
28
+ if (lists.length >= 10) {
29
+ stop = true;
30
+ }
31
+ continue;
32
+ }
33
+ lists.push(item);
34
+ }
35
+ if (stop || !response['@odata.nextLink'])
36
+ break;
37
+ response = yield client.api(response['@odata.nextLink']).get();
38
+ }
39
+ lists.sort((a, b) => {
40
+ const aDate = (0, dayjs_1.default)(a.createdDateTime);
41
+ const bDate = (0, dayjs_1.default)(b.createdDateTime);
42
+ return bDate.diff(aDate);
43
+ });
44
+ return lists.map((list) => ({
45
+ epochMilliSeconds: (0, dayjs_1.default)(list.createdDateTime).valueOf(),
46
+ data: list,
47
+ }));
48
+ }),
49
+ };
50
+ exports.newListTrigger = (0, pieces_framework_1.createTrigger)({
51
+ auth: __1.microsoftSharePointAuth,
52
+ name: 'new_list',
53
+ displayName: 'New List',
54
+ description: 'Triggers when a new list is created in a site.',
55
+ props: {
56
+ siteId: common_1.microsoftSharePointCommon.siteId,
57
+ },
58
+ type: pieces_framework_1.TriggerStrategy.POLLING,
59
+ sampleData: undefined,
60
+ onEnable(context) {
61
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
62
+ yield pieces_common_1.pollingHelper.onEnable(polling, {
63
+ auth: context.auth,
64
+ store: context.store,
65
+ propsValue: context.propsValue,
66
+ });
67
+ });
68
+ },
69
+ onDisable(context) {
70
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
71
+ yield pieces_common_1.pollingHelper.onDisable(polling, {
72
+ auth: context.auth,
73
+ store: context.store,
74
+ propsValue: context.propsValue,
75
+ });
76
+ });
77
+ },
78
+ test(context) {
79
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
80
+ return yield pieces_common_1.pollingHelper.test(polling, context);
81
+ });
82
+ },
83
+ run(context) {
84
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
85
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
86
+ });
87
+ },
88
+ });
89
+ //# sourceMappingURL=new-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-list.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/microsoft-sharepoint/src/lib/triggers/new-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { TriggerStrategy } from '@scopieflows/pieces-framework';
2
+ export declare const newOrUpdatedFileTrigger: import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
3
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
4
+ driveId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
5
+ folderId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
6
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
7
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
8
+ driveId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
9
+ folderId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
10
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
11
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
12
+ driveId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
13
+ folderId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
14
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
15
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
16
+ driveId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
17
+ folderId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
18
+ }>;
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newOrUpdatedFileTrigger = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const __1 = require("../../");
6
+ const pieces_framework_1 = require("@scopieflows/pieces-framework");
7
+ const common_1 = require("../common");
8
+ const microsoft_graph_client_1 = require("@microsoft/microsoft-graph-client");
9
+ const pieces_common_1 = require("@scopieflows/pieces-common");
10
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
11
+ const polling = {
12
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
13
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, propsValue, lastFetchEpochMS }) {
14
+ const { siteId, driveId, folderId } = propsValue;
15
+ const isTestMode = lastFetchEpochMS === 0;
16
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
17
+ authProvider: {
18
+ getAccessToken: () => Promise.resolve(auth.access_token),
19
+ },
20
+ });
21
+ const files = [];
22
+ const endpoint = folderId !== 'root'
23
+ ? `/sites/${siteId}/drive/items/${folderId}/children`
24
+ : `/sites/${siteId}/drives/${driveId}/items/root/children`;
25
+ let response = yield client
26
+ .api(endpoint)
27
+ .orderby('lastModifiedDateTime desc')
28
+ .get();
29
+ let stop = false;
30
+ while (!stop && response.value.length > 0) {
31
+ for (const item of response.value) {
32
+ if (!item.file)
33
+ continue;
34
+ const modifiedMs = (0, dayjs_1.default)(item.lastModifiedDateTime).valueOf();
35
+ if (isTestMode) {
36
+ files.push(item);
37
+ if (files.length >= 10) {
38
+ stop = true;
39
+ }
40
+ continue;
41
+ }
42
+ if (modifiedMs < lastFetchEpochMS) {
43
+ stop = true;
44
+ break;
45
+ }
46
+ files.push(item);
47
+ }
48
+ if (stop || !response['@odata.nextLink'])
49
+ break;
50
+ response = yield client.api(response['@odata.nextLink']).get();
51
+ }
52
+ files.sort((a, b) => {
53
+ const aDate = (0, dayjs_1.default)(a.lastModifiedDateTime);
54
+ const bDate = (0, dayjs_1.default)(b.lastModifiedDateTime);
55
+ return bDate.diff(aDate);
56
+ });
57
+ return files.map((file) => ({
58
+ epochMilliSeconds: (0, dayjs_1.default)(file.lastModifiedDateTime).valueOf(),
59
+ data: file,
60
+ }));
61
+ }),
62
+ };
63
+ exports.newOrUpdatedFileTrigger = (0, pieces_framework_1.createTrigger)({
64
+ auth: __1.microsoftSharePointAuth,
65
+ name: 'new_or_updated_file',
66
+ displayName: 'New or Updated File',
67
+ description: 'Triggers when a file is created or updated in a given folder.',
68
+ props: {
69
+ siteId: common_1.microsoftSharePointCommon.siteId,
70
+ driveId: common_1.microsoftSharePointCommon.driveId,
71
+ folderId: pieces_framework_1.Property.Dropdown({
72
+ auth: __1.microsoftSharePointAuth,
73
+ displayName: 'Folder to Monitor',
74
+ description: 'The folder to watch for new or updated files. Select "Root Folder" for the top-level folder of the drive.',
75
+ required: true,
76
+ refreshers: ['siteId', 'driveId'],
77
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, siteId, driveId }) {
78
+ if (!auth || !siteId || !driveId) {
79
+ return {
80
+ disabled: true,
81
+ placeholder: 'Select a site and drive first.',
82
+ options: [],
83
+ };
84
+ }
85
+ const authValue = auth;
86
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
87
+ authProvider: {
88
+ getAccessToken: () => Promise.resolve(authValue.access_token),
89
+ },
90
+ });
91
+ const options = [{ label: 'Root Folder', value: 'root' }];
92
+ let response = yield client
93
+ .api(`/sites/${siteId}/drives/${driveId}/items/root/children?$filter=folder ne null&$select=id,name`)
94
+ .get();
95
+ while (response.value.length > 0) {
96
+ for (const item of response.value) {
97
+ options.push({ label: item.name, value: item.id });
98
+ }
99
+ if (response['@odata.nextLink']) {
100
+ response = yield client.api(response['@odata.nextLink']).get();
101
+ }
102
+ else {
103
+ break;
104
+ }
105
+ }
106
+ return { disabled: false, options };
107
+ }),
108
+ }),
109
+ },
110
+ type: pieces_framework_1.TriggerStrategy.POLLING,
111
+ sampleData: {
112
+ id: '01DRYVE_ID_GOES_HERE',
113
+ name: 'Updated-Financials.xlsx',
114
+ webUrl: 'https://contoso.sharepoint.com/Shared%20Documents/Updated-Financials.xlsx',
115
+ size: 65432,
116
+ createdDateTime: '2025-09-26T10:00:00Z',
117
+ lastModifiedDateTime: '2025-09-26T14:34:00Z',
118
+ file: {
119
+ mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
120
+ },
121
+ parentReference: { id: 'PARENT_FOLDER_ID_HERE' },
122
+ },
123
+ onEnable(context) {
124
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
125
+ yield pieces_common_1.pollingHelper.onEnable(polling, {
126
+ auth: context.auth,
127
+ store: context.store,
128
+ propsValue: context.propsValue,
129
+ });
130
+ });
131
+ },
132
+ onDisable(context) {
133
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
134
+ yield pieces_common_1.pollingHelper.onDisable(polling, {
135
+ auth: context.auth,
136
+ store: context.store,
137
+ propsValue: context.propsValue,
138
+ });
139
+ });
140
+ },
141
+ test(context) {
142
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
143
+ return yield pieces_common_1.pollingHelper.test(polling, context);
144
+ });
145
+ },
146
+ run(context) {
147
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
148
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
149
+ });
150
+ },
151
+ });
152
+ //# sourceMappingURL=new-or-updated-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-or-updated-file.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/microsoft-sharepoint/src/lib/triggers/new-or-updated-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { TriggerStrategy } from '@scopieflows/pieces-framework';
2
+ export declare const newOrUpdatedFolderTrigger: import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
3
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
4
+ driveId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
5
+ parentFolderId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
6
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
7
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
8
+ driveId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
9
+ parentFolderId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
10
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
11
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
12
+ driveId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
13
+ parentFolderId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
14
+ }> | import("@scopieflows/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>, {
15
+ siteId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
16
+ driveId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
17
+ parentFolderId: import("@scopieflows/pieces-framework").DropdownProperty<string, true, import("@scopieflows/pieces-framework").OAuth2Property<import("@scopieflows/pieces-framework").OAuth2Props>>;
18
+ }>;