@foxtware/mineral 0.1.26 → 0.1.28

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 (119) hide show
  1. package/.creds.yml.sample +22 -4
  2. package/AGENTS.md +17 -0
  3. package/api/fastsimon/.gitkeep +0 -0
  4. package/api/fastsimon/docs.md +14 -0
  5. package/api/fastsimon/fastsimon.constants.js +18 -0
  6. package/api/fastsimon/fastsimon.utils.js +246 -0
  7. package/api/fastsimon/fastsimonSearch.js +84 -0
  8. package/api/figma/docs.md +3 -3
  9. package/api/figma/figma.constants.js +1 -1
  10. package/api/figma/figma.utils.js +13 -2
  11. package/api/figma/figmaActivityLogsGet.js +44 -0
  12. package/api/figma/figmaAiUsageDailyGet.js +44 -0
  13. package/api/figma/figmaComponentGet.js +48 -0
  14. package/api/figma/figmaComponentSetGet.js +48 -0
  15. package/api/figma/figmaDevResourcesCreate.js +47 -0
  16. package/api/figma/figmaDevResourcesUpdate.js +47 -0
  17. package/api/figma/figmaDeveloperLogsCreate.js +47 -0
  18. package/api/figma/figmaDiscoveryGet.js +44 -0
  19. package/api/figma/figmaFileCommentCreate.js +50 -0
  20. package/api/figma/figmaFileCommentDelete.js +51 -0
  21. package/api/figma/figmaFileCommentReactionCreate.js +53 -0
  22. package/api/figma/figmaFileCommentReactionDelete.js +51 -0
  23. package/api/figma/figmaFileCommentReactionsGet.js +51 -0
  24. package/api/figma/figmaFileCommentsGet.js +48 -0
  25. package/api/figma/figmaFileComponentSetsGet.js +48 -0
  26. package/api/figma/figmaFileComponentsGet.js +48 -0
  27. package/api/figma/figmaFileDevResourceDelete.js +51 -0
  28. package/api/figma/figmaFileDevResourcesGet.js +48 -0
  29. package/api/figma/figmaFileGet.js +48 -0
  30. package/api/figma/figmaFileImageFillsGet.js +48 -0
  31. package/api/figma/figmaFileImagesGet.js +48 -0
  32. package/api/figma/figmaFileMetaGet.js +48 -0
  33. package/api/figma/figmaFileNodesGet.js +48 -0
  34. package/api/figma/figmaFileStylesGet.js +48 -0
  35. package/api/figma/figmaFileVersionsGet.js +48 -0
  36. package/api/figma/figmaFolderFilesGet.js +48 -0
  37. package/api/figma/figmaFolderFoldersGet.js +48 -0
  38. package/api/figma/figmaFolderMetaGet.js +48 -0
  39. package/api/figma/figmaGet.js +15 -63
  40. package/api/figma/figmaMeGet.js +53 -0
  41. package/api/figma/figmaOembedGet.js +44 -0
  42. package/api/figma/figmaPaymentsGet.js +44 -0
  43. package/api/figma/figmaProjectFilesGet.js +48 -0
  44. package/api/figma/figmaProjectMetaGet.js +48 -0
  45. package/api/figma/figmaStyleGet.js +48 -0
  46. package/api/figma/figmaTeamComponentSetsGet.js +48 -0
  47. package/api/figma/figmaTeamComponentsGet.js +48 -0
  48. package/api/figma/figmaTeamFoldersGet.js +48 -0
  49. package/api/figma/figmaTeamProjectsGet.js +48 -0
  50. package/api/figma/figmaTeamStylesGet.js +48 -0
  51. package/api/figma/figmaTeamWebhooksGet.js +47 -0
  52. package/api/figma/figmaVariablesLocalGet.js +48 -0
  53. package/api/figma/figmaVariablesPublishedGet.js +48 -0
  54. package/api/figma/figmaVariablesUpdate.js +50 -0
  55. package/api/figma/figmaWebhookCreate.js +47 -0
  56. package/api/figma/figmaWebhookDelete.js +48 -0
  57. package/api/figma/figmaWebhookGet.js +46 -0
  58. package/api/figma/figmaWebhookRequestsGet.js +47 -0
  59. package/api/figma/figmaWebhookUpdate.js +50 -0
  60. package/api/figma/figmaWebhooksGet.js +47 -0
  61. package/api/gorgias/gorgiasTicketCreate.js +1 -1
  62. package/api/gorgias/gorgiasTicketMessageCreate.js +1 -1
  63. package/api/gorgias/gorgiasTicketUpdate.js +1 -1
  64. package/api/linear/linearAttachmentCreate.js +1 -1
  65. package/api/linear/linearCommentCreate.js +1 -1
  66. package/api/linear/linearCommentUpdate.js +1 -1
  67. package/api/linear/linearIssueLabelCreate.js +1 -1
  68. package/api/linear/linearIssueUpdate.js +1 -1
  69. package/api/linear/linearProjectCreate.js +1 -1
  70. package/api/linear/linearProjectUpdate.js +1 -1
  71. package/api/linear/linearWebhookCreate.js +1 -1
  72. package/api/salesforce/salesforce.constants.js +13 -0
  73. package/api/salesforce/salesforce.utils.js +61 -0
  74. package/api/salesforce/salesforceAuthGet.js +115 -0
  75. package/api/salesforce/salesforceComposite.js +79 -0
  76. package/api/salesforce/salesforceCompositeBatch.js +73 -0
  77. package/api/salesforce/salesforceLimitsGet.js +55 -0
  78. package/api/salesforce/salesforceQuery.js +69 -0
  79. package/api/salesforce/salesforceQueryAll.js +62 -0
  80. package/api/salesforce/salesforceQueryMore.js +75 -0
  81. package/api/salesforce/salesforceRecentItemsGet.js +63 -0
  82. package/api/salesforce/salesforceResourcesGet.js +55 -0
  83. package/api/salesforce/salesforceSearch.js +62 -0
  84. package/api/salesforce/salesforceSobjectBasicInfoGet.js +81 -0
  85. package/api/salesforce/salesforceSobjectBlobGet.js +67 -0
  86. package/api/salesforce/salesforceSobjectCollectionCreate.js +78 -0
  87. package/api/salesforce/salesforceSobjectCollectionDelete.js +70 -0
  88. package/api/salesforce/salesforceSobjectCollectionGet.js +75 -0
  89. package/api/salesforce/salesforceSobjectCollectionUpdate.js +74 -0
  90. package/api/salesforce/salesforceSobjectCreate.js +66 -0
  91. package/api/salesforce/salesforceSobjectDelete.js +86 -0
  92. package/api/salesforce/salesforceSobjectDeleteByExternalId.js +91 -0
  93. package/api/salesforce/salesforceSobjectDeletedGet.js +71 -0
  94. package/api/salesforce/salesforceSobjectDescribe.js +81 -0
  95. package/api/salesforce/salesforceSobjectDescribeLayouts.js +64 -0
  96. package/api/salesforce/salesforceSobjectGet.js +93 -0
  97. package/api/salesforce/salesforceSobjectGetByExternalId.js +98 -0
  98. package/api/salesforce/salesforceSobjectTreeCreate.js +79 -0
  99. package/api/salesforce/salesforceSobjectUpdate.js +94 -0
  100. package/api/salesforce/salesforceSobjectUpdatedGet.js +71 -0
  101. package/api/salesforce/salesforceSobjectUpsert.js +74 -0
  102. package/api/salesforce/salesforceSobjectsDescribeGlobal.js +55 -0
  103. package/api/salesforce/salesforceVersionsGet.js +62 -0
  104. package/api/shopify/shopifyMetaobjectCreate.js +72 -0
  105. package/api/tableau/tableau.constants.js +8 -0
  106. package/api/tableau/tableau.utils.js +93 -0
  107. package/api/tableau/tableauGet.js +174 -0
  108. package/api/tableau/tableauUserAdd.js +16 -94
  109. package/api/tableau/tableauUsersGet.js +46 -134
  110. package/api/tagalys/docs.md +2 -2
  111. package/api/tagalys/tagalys.constants.js +17 -0
  112. package/api/tagalys/tagalys.utils.js +125 -0
  113. package/api/tagalys/tagalysAnalyticsEventSend.js +125 -0
  114. package/api/tagalys/tagalysCollectionGet.js +100 -0
  115. package/api/tagalys/tagalysPopularSearchesGet.js +60 -0
  116. package/api/tagalys/tagalysRecommendationGet.js +109 -0
  117. package/api/tagalys/tagalysSearch.js +82 -0
  118. package/api/tagalys/tagalysSearchSuggestionsGet.js +76 -0
  119. package/package.json +2 -1
@@ -0,0 +1,93 @@
1
+ // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_sobject_retrieve.htm
2
+
3
+ const { ArgsWarden, actionSingleOrMultiple, valueProvided } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { salesforceClient } = require('../salesforce/salesforce.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['sobjectType'],
10
+ ['id'],
11
+ ]);
12
+
13
+ const salesforceSobjectGetSingle = async (
14
+ credsPayload,
15
+ sobjectType,
16
+ id,
17
+ {
18
+ fields,
19
+ apiVersion,
20
+ inspect = false,
21
+ fetchClient = salesforceClient,
22
+ } = {},
23
+ ) => {
24
+
25
+ const params = {};
26
+ if (fields) {
27
+ params.fields = Array.isArray(fields) ? fields.join(',') : fields;
28
+ }
29
+
30
+ return fetchClient.fetch({
31
+ requestPayload: {
32
+ method: 'get',
33
+ url: `/sobjects/${ sobjectType }/${ id }`,
34
+ params,
35
+ },
36
+ context: {
37
+ credsPayload,
38
+ apiVersion,
39
+ },
40
+ inspect,
41
+ });
42
+ };
43
+
44
+ const salesforceSobjectGet = async (
45
+ credsPayload,
46
+ sobjectType,
47
+ id,
48
+ {
49
+ queueRunOptions,
50
+ ...options
51
+ } = {},
52
+ ) => {
53
+
54
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
55
+ credsPayload,
56
+ sobjectType,
57
+ id,
58
+ });
59
+ if (rejectResponse) {
60
+ return rejectResponse;
61
+ }
62
+
63
+ return actionSingleOrMultiple(
64
+ id,
65
+ salesforceSobjectGetSingle,
66
+ (idItem) => ({
67
+ args: [credsPayload, sobjectType, idItem, options],
68
+ }),
69
+ {
70
+ ...(queueRunOptions ? { queueRunOptions } : {}),
71
+ },
72
+ );
73
+ };
74
+
75
+ const funcApiConfig = {
76
+ argsWarden,
77
+ };
78
+
79
+ module.exports = {
80
+ salesforceSobjectGet,
81
+ salesforceSobjectGetSingle,
82
+ funcApiConfig,
83
+ };
84
+
85
+ /*
86
+ curl -X POST "http://localhost:8000/salesforceSobjectGet" \
87
+ -H "Content-Type: application/json" \
88
+ -d '{
89
+ "credsPayload": { "credsPath": "salesforce" },
90
+ "sobjectType": "Account",
91
+ "id": "001xx000003DGb2AAG"
92
+ }'
93
+ */
@@ -0,0 +1,98 @@
1
+ // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_sobject_upsert.htm
2
+
3
+ const { ArgsWarden, actionSingleOrMultiple, valueProvided } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { salesforceClient } = require('../salesforce/salesforce.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['sobjectType'],
10
+ ['externalIdField'],
11
+ ['externalId'],
12
+ ]);
13
+
14
+ const salesforceSobjectGetByExternalIdSingle = async (
15
+ credsPayload,
16
+ sobjectType,
17
+ externalIdField,
18
+ externalId,
19
+ {
20
+ fields,
21
+ apiVersion,
22
+ inspect = false,
23
+ fetchClient = salesforceClient,
24
+ } = {},
25
+ ) => {
26
+
27
+ const params = {};
28
+ if (fields) {
29
+ params.fields = Array.isArray(fields) ? fields.join(',') : fields;
30
+ }
31
+
32
+ return fetchClient.fetch({
33
+ requestPayload: {
34
+ method: 'get',
35
+ url: `/sobjects/${ sobjectType }/${ externalIdField }/${ encodeURIComponent(externalId) }`,
36
+ params,
37
+ },
38
+ context: {
39
+ credsPayload,
40
+ apiVersion,
41
+ },
42
+ inspect,
43
+ });
44
+ };
45
+
46
+ const salesforceSobjectGetByExternalId = async (
47
+ credsPayload,
48
+ sobjectType,
49
+ externalIdField,
50
+ externalId,
51
+ {
52
+ queueRunOptions,
53
+ ...options
54
+ } = {},
55
+ ) => {
56
+
57
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
58
+ credsPayload,
59
+ sobjectType,
60
+ externalIdField,
61
+ externalId,
62
+ });
63
+ if (rejectResponse) {
64
+ return rejectResponse;
65
+ }
66
+
67
+ return actionSingleOrMultiple(
68
+ externalId,
69
+ salesforceSobjectGetByExternalIdSingle,
70
+ (externalIdItem) => ({
71
+ args: [credsPayload, sobjectType, externalIdField, externalIdItem, options],
72
+ }),
73
+ {
74
+ ...(queueRunOptions ? { queueRunOptions } : {}),
75
+ },
76
+ );
77
+ };
78
+
79
+ const funcApiConfig = {
80
+ argsWarden,
81
+ };
82
+
83
+ module.exports = {
84
+ salesforceSobjectGetByExternalId,
85
+ salesforceSobjectGetByExternalIdSingle,
86
+ funcApiConfig,
87
+ };
88
+
89
+ /*
90
+ curl -X POST "http://localhost:8000/salesforceSobjectGetByExternalId" \
91
+ -H "Content-Type: application/json" \
92
+ -d '{
93
+ "credsPayload": { "credsPath": "salesforce" },
94
+ "sobjectType": "Account",
95
+ "externalIdField": "External_Id__c",
96
+ "externalId": "ext-123"
97
+ }'
98
+ */
@@ -0,0 +1,79 @@
1
+ // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_composite_sobject_tree.htm
2
+
3
+ const { ArgsWarden, valueProvided } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { salesforceClient } = require('../salesforce/salesforce.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['sobjectType'],
10
+ ['records'],
11
+ ]);
12
+
13
+ const salesforceSobjectTreeCreate = async (
14
+ credsPayload,
15
+ sobjectType,
16
+ records,
17
+ {
18
+ apiVersion,
19
+ inspect = false,
20
+ fetchClient = salesforceClient,
21
+ } = {},
22
+ ) => {
23
+
24
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
25
+ credsPayload,
26
+ sobjectType,
27
+ records,
28
+ });
29
+ if (rejectResponse) {
30
+ return rejectResponse;
31
+ }
32
+
33
+ return fetchClient.fetch({
34
+ requestPayload: {
35
+ method: 'post',
36
+ url: `/composite/tree/${ sobjectType }`,
37
+ body: {
38
+ records,
39
+ },
40
+ },
41
+ context: {
42
+ credsPayload,
43
+ apiVersion,
44
+ },
45
+ inspect,
46
+ });
47
+ };
48
+
49
+ const funcApiConfig = {
50
+ argsWarden,
51
+ };
52
+
53
+ module.exports = {
54
+ salesforceSobjectTreeCreate,
55
+ funcApiConfig,
56
+ };
57
+
58
+ /*
59
+ curl -X POST "http://localhost:8000/salesforceSobjectTreeCreate" \
60
+ -H "Content-Type: application/json" \
61
+ -d '{
62
+ "credsPayload": { "credsPath": "salesforce" },
63
+ "sobjectType": "Account",
64
+ "records": [
65
+ {
66
+ "attributes": { "type": "Account", "referenceId": "ref1" },
67
+ "Name": "Tree Account",
68
+ "Contacts": {
69
+ "records": [
70
+ {
71
+ "attributes": { "type": "Contact", "referenceId": "ref2" },
72
+ "LastName": "Tree Contact"
73
+ }
74
+ ]
75
+ }
76
+ }
77
+ ]
78
+ }'
79
+ */
@@ -0,0 +1,94 @@
1
+ // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_sobject_retrieve.htm
2
+
3
+ const { ArgsWarden, actionSingleOrMultiple, valueProvided } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { salesforceClient } = require('../salesforce/salesforce.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['sobjectType'],
10
+ ['id'],
11
+ ['record'],
12
+ ]);
13
+
14
+ const salesforceSobjectUpdateSingle = async (
15
+ credsPayload,
16
+ sobjectType,
17
+ id,
18
+ record,
19
+ {
20
+ apiVersion,
21
+ inspect = false,
22
+ fetchClient = salesforceClient,
23
+ } = {},
24
+ ) => {
25
+
26
+ return fetchClient.fetch({
27
+ requestPayload: {
28
+ method: 'patch',
29
+ url: `/sobjects/${ sobjectType }/${ id }`,
30
+ body: record,
31
+ },
32
+ context: {
33
+ credsPayload,
34
+ apiVersion,
35
+ },
36
+ inspect,
37
+ });
38
+ };
39
+
40
+ const salesforceSobjectUpdate = async (
41
+ credsPayload,
42
+ sobjectType,
43
+ id,
44
+ record,
45
+ {
46
+ queueRunOptions,
47
+ ...options
48
+ } = {},
49
+ ) => {
50
+
51
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
52
+ credsPayload,
53
+ sobjectType,
54
+ id,
55
+ record,
56
+ });
57
+ if (rejectResponse) {
58
+ return rejectResponse;
59
+ }
60
+
61
+ return actionSingleOrMultiple(
62
+ id,
63
+ salesforceSobjectUpdateSingle,
64
+ (idItem) => ({
65
+ args: [credsPayload, sobjectType, idItem, record, options],
66
+ }),
67
+ {
68
+ ...(queueRunOptions ? { queueRunOptions } : {}),
69
+ },
70
+ );
71
+ };
72
+
73
+ const funcApiConfig = {
74
+ argsWarden,
75
+ };
76
+
77
+ module.exports = {
78
+ salesforceSobjectUpdate,
79
+ salesforceSobjectUpdateSingle,
80
+ funcApiConfig,
81
+ };
82
+
83
+ /*
84
+ curl -X POST "http://localhost:8000/salesforceSobjectUpdate" \
85
+ -H "Content-Type: application/json" \
86
+ -d '{
87
+ "credsPayload": { "credsPath": "salesforce" },
88
+ "sobjectType": "Account",
89
+ "id": "001xx000003DGb2AAG",
90
+ "record": {
91
+ "Name": "Updated Account"
92
+ }
93
+ }'
94
+ */
@@ -0,0 +1,71 @@
1
+ // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_getupdated.htm
2
+
3
+ const { ArgsWarden, valueProvided } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { salesforceClient } = require('../salesforce/salesforce.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['sobjectType'],
10
+ ['start'],
11
+ ['end'],
12
+ ]);
13
+
14
+ const salesforceSobjectUpdatedGet = async (
15
+ credsPayload,
16
+ sobjectType,
17
+ start,
18
+ end,
19
+ {
20
+ apiVersion,
21
+ inspect = false,
22
+ fetchClient = salesforceClient,
23
+ } = {},
24
+ ) => {
25
+
26
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
27
+ credsPayload,
28
+ sobjectType,
29
+ start,
30
+ end,
31
+ });
32
+ if (rejectResponse) {
33
+ return rejectResponse;
34
+ }
35
+
36
+ return fetchClient.fetch({
37
+ requestPayload: {
38
+ method: 'get',
39
+ url: `/sobjects/${ sobjectType }/updated`,
40
+ params: {
41
+ start,
42
+ end,
43
+ },
44
+ },
45
+ context: {
46
+ credsPayload,
47
+ apiVersion,
48
+ },
49
+ inspect,
50
+ });
51
+ };
52
+
53
+ const funcApiConfig = {
54
+ argsWarden,
55
+ };
56
+
57
+ module.exports = {
58
+ salesforceSobjectUpdatedGet,
59
+ funcApiConfig,
60
+ };
61
+
62
+ /*
63
+ curl -X POST "http://localhost:8000/salesforceSobjectUpdatedGet" \
64
+ -H "Content-Type: application/json" \
65
+ -d '{
66
+ "credsPayload": { "credsPath": "salesforce" },
67
+ "sobjectType": "Account",
68
+ "start": "2026-01-01T00:00:00+00:00",
69
+ "end": "2026-01-02T00:00:00+00:00"
70
+ }'
71
+ */
@@ -0,0 +1,74 @@
1
+ // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_sobject_upsert.htm
2
+
3
+ const { ArgsWarden, valueProvided } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { salesforceClient } = require('../salesforce/salesforce.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['sobjectType'],
10
+ ['externalIdField'],
11
+ ['externalId'],
12
+ ['record'],
13
+ ]);
14
+
15
+ const salesforceSobjectUpsert = async (
16
+ credsPayload,
17
+ sobjectType,
18
+ externalIdField,
19
+ externalId,
20
+ record,
21
+ {
22
+ apiVersion,
23
+ inspect = false,
24
+ fetchClient = salesforceClient,
25
+ } = {},
26
+ ) => {
27
+
28
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
29
+ credsPayload,
30
+ sobjectType,
31
+ externalIdField,
32
+ externalId,
33
+ record,
34
+ });
35
+ if (rejectResponse) {
36
+ return rejectResponse;
37
+ }
38
+
39
+ return fetchClient.fetch({
40
+ requestPayload: {
41
+ method: 'patch',
42
+ url: `/sobjects/${ sobjectType }/${ externalIdField }/${ encodeURIComponent(externalId) }`,
43
+ body: record,
44
+ },
45
+ context: {
46
+ credsPayload,
47
+ apiVersion,
48
+ },
49
+ inspect,
50
+ });
51
+ };
52
+
53
+ const funcApiConfig = {
54
+ argsWarden,
55
+ };
56
+
57
+ module.exports = {
58
+ salesforceSobjectUpsert,
59
+ funcApiConfig,
60
+ };
61
+
62
+ /*
63
+ curl -X POST "http://localhost:8000/salesforceSobjectUpsert" \
64
+ -H "Content-Type: application/json" \
65
+ -d '{
66
+ "credsPayload": { "credsPath": "salesforce" },
67
+ "sobjectType": "Account",
68
+ "externalIdField": "External_Id__c",
69
+ "externalId": "ext-123",
70
+ "record": {
71
+ "Name": "Upserted Account"
72
+ }
73
+ }'
74
+ */
@@ -0,0 +1,55 @@
1
+ // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_describeGlobal.htm
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { salesforceClient } = require('../salesforce/salesforce.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ]);
10
+
11
+ const salesforceSobjectsDescribeGlobal = async (
12
+ credsPayload,
13
+ {
14
+ apiVersion,
15
+ inspect = false,
16
+ fetchClient = salesforceClient,
17
+ } = {},
18
+ ) => {
19
+
20
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
21
+ credsPayload,
22
+ });
23
+ if (rejectResponse) {
24
+ return rejectResponse;
25
+ }
26
+
27
+ return fetchClient.fetch({
28
+ requestPayload: {
29
+ method: 'get',
30
+ url: '/sobjects',
31
+ },
32
+ context: {
33
+ credsPayload,
34
+ apiVersion,
35
+ },
36
+ inspect,
37
+ });
38
+ };
39
+
40
+ const funcApiConfig = {
41
+ argsWarden,
42
+ };
43
+
44
+ module.exports = {
45
+ salesforceSobjectsDescribeGlobal,
46
+ funcApiConfig,
47
+ };
48
+
49
+ /*
50
+ curl -X POST "http://localhost:8000/salesforceSobjectsDescribeGlobal" \
51
+ -H "Content-Type: application/json" \
52
+ -d '{
53
+ "credsPayload": { "credsPath": "salesforce" }
54
+ }'
55
+ */
@@ -0,0 +1,62 @@
1
+ // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_versions.htm
2
+
3
+ const {
4
+ ArgsWarden,
5
+ appendUrlToBase,
6
+ customFetch,
7
+ } = require('../utils');
8
+ const { credsValidator } = require('../validators');
9
+ const { salesforceAuthGet } = require('../salesforce/salesforceAuthGet');
10
+
11
+ const argsWarden = new ArgsWarden([
12
+ ['credsPayload', credsValidator],
13
+ ]);
14
+
15
+ // Versions live at {instance}/services/data/ (no vXX.X segment).
16
+ const salesforceVersionsGet = async (
17
+ credsPayload,
18
+ ) => {
19
+
20
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
21
+ credsPayload,
22
+ });
23
+ if (rejectResponse) {
24
+ return rejectResponse;
25
+ }
26
+
27
+ const authResponse = await salesforceAuthGet(credsPayload);
28
+ if (!authResponse.ok) {
29
+ return authResponse;
30
+ }
31
+
32
+ const {
33
+ access_token,
34
+ instance_url,
35
+ } = authResponse.data;
36
+
37
+ const url = appendUrlToBase(instance_url, '/services/data');
38
+
39
+ return customFetch(url, {
40
+ method: 'get',
41
+ headers: {
42
+ Authorization: `Bearer ${ access_token }`,
43
+ },
44
+ });
45
+ };
46
+
47
+ const funcApiConfig = {
48
+ argsWarden,
49
+ };
50
+
51
+ module.exports = {
52
+ salesforceVersionsGet,
53
+ funcApiConfig,
54
+ };
55
+
56
+ /*
57
+ curl -X POST "http://localhost:8000/salesforceVersionsGet" \
58
+ -H "Content-Type: application/json" \
59
+ -d '{
60
+ "credsPayload": { "credsPath": "salesforce" }
61
+ }'
62
+ */
@@ -0,0 +1,72 @@
1
+ // https://shopify.dev/docs/api/admin-graphql/latest/mutations/metaobjectCreate
2
+
3
+ const { credsValidator } = require('../validators');
4
+ const { ArgsWarden } = require('../utils');
5
+ const { shopifyMutationDo } = require('../shopify/shopifyMutationDo');
6
+
7
+ const metaobjectInputValidator = (metaobjectInput) => Boolean(metaobjectInput?.type);
8
+
9
+ const argsWarden = new ArgsWarden([
10
+ ['credsPayload', credsValidator],
11
+ ['metaobjectInput', metaobjectInputValidator],
12
+ ]);
13
+
14
+ const defaultReturnMetaobjectAttrs = 'id handle type updatedAt';
15
+
16
+ const shopifyMetaobjectCreate = async (
17
+ credsPayload,
18
+ metaobjectInput,
19
+ {
20
+ apiVersion,
21
+ returnMetaobjectAttrs = defaultReturnMetaobjectAttrs,
22
+ } = {},
23
+ ) => {
24
+
25
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
26
+ credsPayload,
27
+ metaobjectInput,
28
+ });
29
+ if (rejectResponse) {
30
+ return rejectResponse;
31
+ }
32
+
33
+ return shopifyMutationDo(
34
+ credsPayload,
35
+ 'metaobjectCreate',
36
+ {
37
+ mutationVariables: {
38
+ metaobject: {
39
+ type: 'MetaobjectCreateInput!',
40
+ value: metaobjectInput,
41
+ },
42
+ },
43
+ returnSchema: `metaobject { ${ returnMetaobjectAttrs } }`,
44
+ apiVersion,
45
+ },
46
+ );
47
+ };
48
+
49
+ const funcApiConfig = {
50
+ argsWarden,
51
+ };
52
+
53
+ module.exports = {
54
+ shopifyMetaobjectCreate,
55
+ funcApiConfig,
56
+ };
57
+
58
+ /*
59
+ curl -X POST "http://localhost:8000/shopifyMetaobjectCreate" \
60
+ -H "Content-Type: application/json" \
61
+ -d '{
62
+ "credsPayload": { "credsPath": "shopify.white-fox-us-dev-radial" },
63
+ "metaobjectInput": {
64
+ "type": "your_metaobject_type",
65
+ "handle": "optional-unique-handle",
66
+ "fields": [
67
+ { "key": "title", "value": "Example" },
68
+ { "key": "body", "value": "Some content" }
69
+ ]
70
+ }
71
+ }'
72
+ */
@@ -0,0 +1,8 @@
1
+ const DEFAULT_API_VERSION = '3.22';
2
+ // Tableau's max page size for list endpoints
3
+ const MAX_PER_PAGE = 1000;
4
+
5
+ module.exports = {
6
+ DEFAULT_API_VERSION,
7
+ MAX_PER_PAGE,
8
+ };