@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,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newOrUpdatedFolderTrigger = 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 dayjs_1 = tslib_1.__importDefault(require("dayjs"));
10
+ const pieces_common_1 = require("@scopieflows/pieces-common");
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, parentFolderId } = 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 folders = [];
22
+ const endpoint = parentFolderId !== 'root'
23
+ ? `/sites/${siteId}/drive/items/${parentFolderId}/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.folder)
33
+ continue;
34
+ const modifiedMs = (0, dayjs_1.default)(item.lastModifiedDateTime).valueOf();
35
+ if (isTestMode) {
36
+ folders.push(item);
37
+ if (folders.length >= 10) {
38
+ stop = true;
39
+ }
40
+ continue;
41
+ }
42
+ if (modifiedMs < lastFetchEpochMS) {
43
+ stop = true;
44
+ break;
45
+ }
46
+ folders.push(item);
47
+ }
48
+ if (stop || !response['@odata.nextLink'])
49
+ break;
50
+ response = yield client.api(response['@odata.nextLink']).get();
51
+ }
52
+ folders.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 folders.map((folder) => ({
58
+ epochMilliSeconds: (0, dayjs_1.default)(folder.lastModifiedDateTime).valueOf(),
59
+ data: folder,
60
+ }));
61
+ }),
62
+ };
63
+ exports.newOrUpdatedFolderTrigger = (0, pieces_framework_1.createTrigger)({
64
+ auth: __1.microsoftSharePointAuth,
65
+ name: 'new_or_updated_folder',
66
+ displayName: 'New or Updated Folder',
67
+ description: 'Triggers when a folder is created or updated (e.g., name change).',
68
+ props: {
69
+ siteId: common_1.microsoftSharePointCommon.siteId,
70
+ driveId: common_1.microsoftSharePointCommon.driveId,
71
+ parentFolderId: pieces_framework_1.Property.Dropdown({
72
+ auth: __1.microsoftSharePointAuth,
73
+ displayName: 'Parent Folder to Monitor',
74
+ description: 'The folder to watch for new or updated subfolders. Select "Root Folder" to monitor the top-level 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_FOLDER_ID_GOES_HERE',
113
+ name: 'Project Alpha',
114
+ webUrl: 'https://contoso.sharepoint.com/Shared%20Documents/Project%20Alpha',
115
+ size: 0,
116
+ createdDateTime: '2025-09-26T14:50:00Z',
117
+ lastModifiedDateTime: '2025-09-26T14:50:00Z',
118
+ folder: {
119
+ childCount: 0,
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-folder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-or-updated-folder.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/microsoft-sharepoint/src/lib/triggers/new-or-updated-folder.ts"],"names":[],"mappings":";;;;AAAA,8BAAiD;AACjD,oEAMuC;AACvC,sCAAsD;AACtD,8EAA2E;AAE3E,0DAA0B;AAC1B,8DAAoF;AAQpF,MAAM,OAAO,GAAsF;IAClG,QAAQ,EAAE,8BAAc,CAAC,SAAS;IAClC,KAAK,EAAE,KAA+C,EAAE,oDAA1C,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE;QACnD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC;QACvD,MAAM,UAAU,GAAG,gBAAgB,KAAK,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,+BAAM,CAAC,kBAAkB,CAAC;YACxC,YAAY,EAAE;gBACb,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;aACxD;SACD,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,MAAM,QAAQ,GACb,cAAc,KAAK,MAAM;YACxB,CAAC,CAAC,UAAU,MAAM,gBAAgB,cAAc,WAAW;YAC3D,CAAC,CAAC,UAAU,MAAM,WAAW,OAAO,sBAAsB,CAAC;QAE7D,IAAI,QAAQ,GAAmB,MAAM,MAAM;aACzC,GAAG,CAAC,QAAQ,CAAC;aACb,OAAO,CAAC,2BAA2B,CAAC;aACpC,GAAG,EAAE,CAAC;QAER,IAAI,IAAI,GAAG,KAAK,CAAC;QAEjB,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAoB,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAE3B,MAAM,UAAU,GAAG,IAAA,eAAK,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;gBAE9D,IAAI,UAAU,EAAE,CAAC;oBAChB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;wBAC1B,IAAI,GAAG,IAAI,CAAC;oBACb,CAAC;oBACD,SAAS;gBACV,CAAC;gBAED,IAAI,UAAU,GAAG,gBAAgB,EAAE,CAAC;oBACnC,IAAI,GAAG,IAAI,CAAC;oBACZ,MAAM;gBACP,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;YAED,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAAE,MAAM;YAEhD,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/B,iBAAiB,EAAE,IAAA,eAAK,EAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE;YAC/D,IAAI,EAAE,MAAM;SACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAA;CACD,CAAC;AAEW,QAAA,yBAAyB,GAAG,IAAA,gCAAa,EAAC;IACtD,IAAI,EAAE,2BAAuB;IAC7B,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,mEAAmE;IAChF,KAAK,EAAE;QACN,MAAM,EAAE,kCAAyB,CAAC,MAAM;QACxC,OAAO,EAAE,kCAAyB,CAAC,OAAO;QAC1C,cAAc,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACjC,IAAI,EAAE,2BAAuB;YAC7B,WAAW,EAAE,0BAA0B;YACvC,WAAW,EACV,gHAAgH;YACjH,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;YACjC,OAAO,EAAE,KAAkC,EAAE,oDAA7B,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;gBACxC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClC,OAAO;wBACN,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,gCAAgC;wBAC7C,OAAO,EAAE,EAAE;qBACX,CAAC;gBACH,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAA;gBACtB,MAAM,MAAM,GAAG,+BAAM,CAAC,kBAAkB,CAAC;oBACxC,YAAY,EAAE;wBACb,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;qBAC7D;iBACD,CAAC,CAAC;gBACH,MAAM,OAAO,GAA6B,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACpF,IAAI,QAAQ,GAAmB,MAAM,MAAM;qBACzC,GAAG,CACH,UAAU,MAAM,WAAW,OAAO,6DAA6D,CAC/F;qBACA,GAAG,EAAE,CAAC;gBACR,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAoB,EAAE,CAAC;wBAClD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAG,EAAE,CAAC,CAAC;oBACtD,CAAC;oBACD,IAAI,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;wBACjC,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBAChE,CAAC;yBAAM,CAAC;wBACP,MAAM;oBACP,CAAC;gBACF,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACrC,CAAC,CAAA;SACD,CAAC;KACF;IACD,IAAI,EAAE,kCAAe,CAAC,OAAO;IAE7B,UAAU,EAAE;QACX,EAAE,EAAE,6BAA6B;QACjC,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,mEAAmE;QAC3E,IAAI,EAAE,CAAC;QACP,eAAe,EAAE,sBAAsB;QACvC,oBAAoB,EAAE,sBAAsB;QAC5C,MAAM,EAAE;YACP,UAAU,EAAE,CAAC;SACb;QACD,eAAe,EAAE,EAAE,EAAE,EAAE,uBAAuB,EAAE;KAChD;IACK,QAAQ,CAAC,OAAO;;YACrB,MAAM,6BAAa,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACrC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC9B,CAAC,CAAC;QACJ,CAAC;KAAA;IACK,SAAS,CAAC,OAAO;;YACtB,MAAM,6BAAa,CAAC,SAAS,CAAC,OAAO,EAAE;gBACtC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC9B,CAAC,CAAC;QACJ,CAAC;KAAA;IACK,IAAI,CAAC,OAAO;;YACjB,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;KAAA;IACK,GAAG,CAAC,OAAO;;YAChB,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;KAAA;CACD,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { TriggerStrategy } from '@scopieflows/pieces-framework';
2
+ export declare const newOrUpdatedListTrigger: 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,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newOrUpdatedListTrigger = 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
23
+ .api(`/sites/${siteId}/lists`)
24
+ .get();
25
+ let stop = false;
26
+ while (!stop && response.value.length > 0) {
27
+ for (const item of response.value) {
28
+ const modifiedMs = (0, dayjs_1.default)(item.lastModifiedDateTime).valueOf();
29
+ if (isTestMode) {
30
+ lists.push(item);
31
+ if (lists.length >= 10) {
32
+ stop = true;
33
+ }
34
+ continue;
35
+ }
36
+ if (modifiedMs < lastFetchEpochMS) {
37
+ stop = true;
38
+ break;
39
+ }
40
+ lists.push(item);
41
+ }
42
+ if (stop || !response['@odata.nextLink'])
43
+ break;
44
+ response = yield client.api(response['@odata.nextLink']).get();
45
+ }
46
+ lists.sort((a, b) => {
47
+ const aDate = (0, dayjs_1.default)(a.lastModifiedDateTime);
48
+ const bDate = (0, dayjs_1.default)(b.lastModifiedDateTime);
49
+ return bDate.diff(aDate);
50
+ });
51
+ return lists.map((list) => ({
52
+ epochMilliSeconds: (0, dayjs_1.default)(list.lastModifiedDateTime).valueOf(),
53
+ data: list,
54
+ }));
55
+ }),
56
+ };
57
+ exports.newOrUpdatedListTrigger = (0, pieces_framework_1.createTrigger)({
58
+ auth: __1.microsoftSharePointAuth,
59
+ name: 'new_or_updated_list',
60
+ displayName: 'New or Updated List',
61
+ description: 'Triggers when a list is created or updated in a site.',
62
+ props: {
63
+ siteId: common_1.microsoftSharePointCommon.siteId,
64
+ },
65
+ type: pieces_framework_1.TriggerStrategy.POLLING,
66
+ sampleData: {
67
+ id: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
68
+ displayName: 'Projects Tracker',
69
+ description: 'Updated list for tracking all ongoing projects.',
70
+ createdDateTime: '2025-09-26T11:00:00Z',
71
+ lastModifiedDateTime: '2025-09-26T14:55:00Z',
72
+ webUrl: 'https://contoso.sharepoint.com/sites/MySite/Lists/Projects%20Tracker',
73
+ },
74
+ onEnable(context) {
75
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
76
+ yield pieces_common_1.pollingHelper.onEnable(polling, {
77
+ auth: context.auth,
78
+ store: context.store,
79
+ propsValue: context.propsValue,
80
+ });
81
+ });
82
+ },
83
+ onDisable(context) {
84
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
85
+ yield pieces_common_1.pollingHelper.onDisable(polling, {
86
+ auth: context.auth,
87
+ store: context.store,
88
+ propsValue: context.propsValue,
89
+ });
90
+ });
91
+ },
92
+ test(context) {
93
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
94
+ return yield pieces_common_1.pollingHelper.test(polling, context);
95
+ });
96
+ },
97
+ run(context) {
98
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
99
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
100
+ });
101
+ },
102
+ });
103
+ //# sourceMappingURL=new-or-updated-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-or-updated-list.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/microsoft-sharepoint/src/lib/triggers/new-or-updated-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { TriggerStrategy } from '@scopieflows/pieces-framework';
2
+ export declare const updatedListItemTrigger: 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,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updatedListItemTrigger = 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_updated_list_item_trigger';
10
+ exports.updatedListItemTrigger = (0, pieces_framework_1.createTrigger)({
11
+ auth: __1.microsoftSharePointAuth,
12
+ name: 'updated_list_item',
13
+ displayName: 'Updated List Item',
14
+ description: 'Fires when an existing item in a SharePoint list is updated.',
15
+ props: {
16
+ siteId: common_1.microsoftSharePointCommon.siteId,
17
+ listId: common_1.microsoftSharePointCommon.listId,
18
+ },
19
+ type: pieces_framework_1.TriggerStrategy.WEBHOOK,
20
+ sampleData: {
21
+ "id": "2",
22
+ "createdDateTime": "2025-09-26T14:10:00Z",
23
+ "lastModifiedDateTime": "2025-09-26T14:38:00Z",
24
+ "webUrl": "https://contoso.sharepoint.com/sites/MySite/Lists/MyTasks/2_.000",
25
+ "fields": {
26
+ "@odata.etag": "\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,2\"",
27
+ "id": "2",
28
+ "Title": "Complete Project Proposal",
29
+ "Status": "In Progress",
30
+ "Priority": "High",
31
+ "DueDate": "2025-10-05T00:00:00Z"
32
+ }
33
+ },
34
+ onEnable(context) {
35
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
36
+ const { siteId, listId } = context.propsValue;
37
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
38
+ authProvider: {
39
+ getAccessToken: () => Promise.resolve(context.auth.access_token),
40
+ },
41
+ });
42
+ try {
43
+ const expirationDateTime = new Date();
44
+ expirationDateTime.setDate(expirationDateTime.getDate() + 2);
45
+ const subscription = yield client.api('/subscriptions').post({
46
+ changeType: 'updated',
47
+ notificationUrl: context.webhookUrl,
48
+ resource: `/sites/${siteId}/lists/${listId}/items`,
49
+ expirationDateTime: expirationDateTime.toISOString(),
50
+ clientState: clientState,
51
+ });
52
+ yield context.store.put('subscriptionId', subscription.id);
53
+ }
54
+ catch (error) {
55
+ throw new Error(`Failed to create subscription: ${error.message || 'Unknown error'}`);
56
+ }
57
+ });
58
+ },
59
+ onDisable(context) {
60
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
61
+ const subscriptionId = yield context.store.get('subscriptionId');
62
+ if (subscriptionId) {
63
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
64
+ authProvider: {
65
+ getAccessToken: () => Promise.resolve(context.auth.access_token),
66
+ },
67
+ });
68
+ try {
69
+ yield client.api(`/subscriptions/${subscriptionId}`).delete();
70
+ }
71
+ catch (error) {
72
+ console.warn(`Error deleting subscription ${subscriptionId}:`, error);
73
+ }
74
+ }
75
+ yield context.store.delete('subscriptionId');
76
+ });
77
+ },
78
+ run(context) {
79
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
80
+ var _a;
81
+ const notifications = (_a = context.payload.body) === null || _a === void 0 ? void 0 : _a.value;
82
+ if (!notifications || !Array.isArray(notifications)) {
83
+ return [];
84
+ }
85
+ const validNotifications = notifications.filter((notif) => notif.clientState === clientState);
86
+ if (validNotifications.length === 0) {
87
+ return [];
88
+ }
89
+ const client = microsoft_graph_client_1.Client.initWithMiddleware({
90
+ authProvider: {
91
+ getAccessToken: () => Promise.resolve(context.auth.access_token),
92
+ },
93
+ });
94
+ const updatedItemPayloads = [];
95
+ for (const notification of validNotifications) {
96
+ try {
97
+ const updatedItem = yield client.api(notification.resource).expand('fields').get();
98
+ updatedItemPayloads.push(updatedItem);
99
+ }
100
+ catch (error) {
101
+ console.error('Error fetching list item from notification:', error);
102
+ }
103
+ }
104
+ return updatedItemPayloads;
105
+ });
106
+ },
107
+ });
108
+ //# sourceMappingURL=updated-list-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updated-list-item.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/microsoft-sharepoint/src/lib/triggers/updated-list-item.ts"],"names":[],"mappings":"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"}