@memberjunction/actions-apollo 6.1.0-edge.4 → 6.1.0-edge.5

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 (46) hide show
  1. package/README.md +79 -0
  2. package/dist/__tests__/apollo-lists.test.d.ts +2 -0
  3. package/dist/__tests__/apollo-lists.test.d.ts.map +1 -0
  4. package/dist/__tests__/apollo-lists.test.js +957 -0
  5. package/dist/__tests__/apollo-lists.test.js.map +1 -0
  6. package/dist/config.d.ts +10 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +10 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/generic/apollo-lists.types.d.ts +246 -0
  11. package/dist/generic/apollo-lists.types.d.ts.map +1 -0
  12. package/dist/generic/apollo-lists.types.js +42 -0
  13. package/dist/generic/apollo-lists.types.js.map +1 -0
  14. package/dist/index.d.ts +8 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +11 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/lists/ApolloListActions.d.ts +49 -0
  19. package/dist/lists/ApolloListActions.d.ts.map +1 -0
  20. package/dist/lists/ApolloListActions.js +135 -0
  21. package/dist/lists/ApolloListActions.js.map +1 -0
  22. package/dist/lists/ApolloMoveActions.d.ts +33 -0
  23. package/dist/lists/ApolloMoveActions.d.ts.map +1 -0
  24. package/dist/lists/ApolloMoveActions.js +272 -0
  25. package/dist/lists/ApolloMoveActions.js.map +1 -0
  26. package/dist/lists/ApolloRESTBaseAction.d.ts +49 -0
  27. package/dist/lists/ApolloRESTBaseAction.d.ts.map +1 -0
  28. package/dist/lists/ApolloRESTBaseAction.js +70 -0
  29. package/dist/lists/ApolloRESTBaseAction.js.map +1 -0
  30. package/dist/lists/ApolloRESTClient.d.ts +136 -0
  31. package/dist/lists/ApolloRESTClient.d.ts.map +1 -0
  32. package/dist/lists/ApolloRESTClient.js +561 -0
  33. package/dist/lists/ApolloRESTClient.js.map +1 -0
  34. package/dist/lists/ApolloSearchActions.d.ts +64 -0
  35. package/dist/lists/ApolloSearchActions.d.ts.map +1 -0
  36. package/dist/lists/ApolloSearchActions.js +239 -0
  37. package/dist/lists/ApolloSearchActions.js.map +1 -0
  38. package/dist/lists/credentials.d.ts +57 -0
  39. package/dist/lists/credentials.d.ts.map +1 -0
  40. package/dist/lists/credentials.js +161 -0
  41. package/dist/lists/credentials.js.map +1 -0
  42. package/dist/lists/params.d.ts +61 -0
  43. package/dist/lists/params.d.ts.map +1 -0
  44. package/dist/lists/params.js +113 -0
  45. package/dist/lists/params.js.map +1 -0
  46. package/package.json +8 -7
@@ -0,0 +1,113 @@
1
+ /** Look up a param's raw value, unconverted. */
2
+ export function getParamRaw(params, name) {
3
+ const lowered = name.trim().toLowerCase();
4
+ const found = params.Params?.find((p) => p.Name?.trim().toLowerCase() === lowered);
5
+ return found?.Value;
6
+ }
7
+ /**
8
+ * Look up a param as a trimmed non-empty string, or null.
9
+ *
10
+ * Returns null for whitespace as well as for absent, so a required-field check
11
+ * treats `' '` the way the caller meant it rather than passing a blank list
12
+ * name into a label lookup.
13
+ */
14
+ export function getParam(params, name) {
15
+ const raw = getParamRaw(params, name);
16
+ if (typeof raw !== 'string') {
17
+ return raw === null || raw === undefined ? null : String(raw).trim() || null;
18
+ }
19
+ return raw.trim() || null;
20
+ }
21
+ /**
22
+ * Normalize an optional array-of-strings param. Accepts a real array, a JSON
23
+ * array string, or a bare comma-separated string. Absent or empty yields
24
+ * `undefined` with no error — "not supplied" is a valid state for every filter
25
+ * that uses this.
26
+ */
27
+ export function parseStringArrayParam(raw, name) {
28
+ if (raw === null || raw === undefined || raw === '') {
29
+ return { value: undefined, error: null };
30
+ }
31
+ let value = raw;
32
+ if (typeof value === 'string') {
33
+ const trimmed = value.trim();
34
+ if (trimmed.startsWith('[')) {
35
+ try {
36
+ value = JSON.parse(trimmed);
37
+ }
38
+ catch (error) {
39
+ const msg = error instanceof Error ? error.message : String(error);
40
+ return { value: undefined, error: `${name} must be a JSON array of strings — got an unparseable string (${msg})` };
41
+ }
42
+ }
43
+ else {
44
+ // The comma-separated convenience form, e.g. "owner, founder".
45
+ value = trimmed.split(',').map((s) => s.trim()).filter((s) => s.length > 0);
46
+ }
47
+ }
48
+ if (!Array.isArray(value) || !value.every((v) => typeof v === 'string')) {
49
+ return { value: undefined, error: `${name} must be a JSON array of strings (e.g. ["VP of Marketing"])` };
50
+ }
51
+ const cleaned = value.map((s) => s.trim()).filter((s) => s.length > 0);
52
+ return { value: cleaned.length > 0 ? cleaned : undefined, error: null };
53
+ }
54
+ /**
55
+ * Normalize an optional integer param. Accepts a number or a numeric string.
56
+ * Rejects non-integers rather than rounding: a page of 1.5 is a caller mistake,
57
+ * and silently reading page 1 would return plausible wrong data.
58
+ */
59
+ export function parseOptionalIntegerParam(raw, name, options) {
60
+ if (raw === null || raw === undefined || raw === '') {
61
+ return { value: undefined, error: null };
62
+ }
63
+ let value;
64
+ if (typeof raw === 'number') {
65
+ value = raw;
66
+ }
67
+ else if (typeof raw === 'string') {
68
+ value = Number(raw.trim());
69
+ }
70
+ else {
71
+ return { value: undefined, error: `${name} must be a number (got ${typeof raw})` };
72
+ }
73
+ if (!Number.isInteger(value)) {
74
+ return { value: undefined, error: `${name} must be an integer (got '${String(raw)}')` };
75
+ }
76
+ const min = options?.min;
77
+ if (min !== undefined && value < min) {
78
+ return { value: undefined, error: `${name} must be >= ${min} (got ${value})` };
79
+ }
80
+ const max = options?.max;
81
+ if (max !== undefined && value > max) {
82
+ return { value: undefined, error: `${name} must be <= ${max} (got ${value})` };
83
+ }
84
+ return { value, error: null };
85
+ }
86
+ /**
87
+ * Normalize an optional boolean param. Accepts a real boolean or the strings
88
+ * 'true'/'false', case-insensitive. Anything else is an error rather than a
89
+ * truthiness coercion — `'false'` is truthy in JavaScript, and treating it as
90
+ * `true` on a verify flag would be a silent, expensive surprise.
91
+ */
92
+ export function parseOptionalBooleanParam(raw, name) {
93
+ if (raw === null || raw === undefined || raw === '') {
94
+ return { value: undefined, error: null };
95
+ }
96
+ if (typeof raw === 'boolean') {
97
+ return { value: raw, error: null };
98
+ }
99
+ if (typeof raw === 'string') {
100
+ const lowered = raw.trim().toLowerCase();
101
+ if (lowered === 'true')
102
+ return { value: true, error: null };
103
+ if (lowered === 'false')
104
+ return { value: false, error: null };
105
+ }
106
+ return { value: undefined, error: `${name} must be a boolean (true or false) — got '${String(raw)}'` };
107
+ }
108
+ /**
109
+ * The remediation tail appended whenever a list name does not resolve. Kept in
110
+ * one place so every action points the caller at the same next step.
111
+ */
112
+ export const LIST_NOT_FOUND_HINT = 'Run the Apollo Get Lists action to see the exact label names this Apollo account has.';
113
+ //# sourceMappingURL=params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/lists/params.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/actions-apollo",
3
3
  "type": "module",
4
- "version": "6.1.0-edge.4",
4
+ "version": "6.1.0-edge.5",
5
5
  "description": "Action classes that wrap the Apollo.io data enrichment API for contacts and accounts",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -15,12 +15,13 @@
15
15
  "typescript": "^5.9.3"
16
16
  },
17
17
  "dependencies": {
18
- "@memberjunction/actions": "6.1.0-edge.4",
19
- "@memberjunction/actions-base": "6.1.0-edge.4",
20
- "@memberjunction/core": "6.1.0-edge.4",
21
- "@memberjunction/core-entities": "6.1.0-edge.4",
22
- "@memberjunction/global": "6.1.0-edge.4",
23
- "@memberjunction/network-utils": "6.1.0-edge.4"
18
+ "@memberjunction/actions": "6.1.0-edge.5",
19
+ "@memberjunction/actions-base": "6.1.0-edge.5",
20
+ "@memberjunction/core": "6.1.0-edge.5",
21
+ "@memberjunction/core-entities": "6.1.0-edge.5",
22
+ "@memberjunction/credentials": "6.1.0-edge.5",
23
+ "@memberjunction/global": "6.1.0-edge.5",
24
+ "@memberjunction/network-utils": "6.1.0-edge.5"
24
25
  },
25
26
  "repository": {
26
27
  "type": "git",