@sailpoint/connector-sdk 1.1.19 → 1.1.21
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.
- package/dist/bin/spcx.js +1 -1
- package/dist/bin/spcx.js.map +1 -1
- package/dist/lib/filter.d.ts +6 -2
- package/dist/lib/filter.d.ts.map +1 -1
- package/dist/lib/filter.js +77 -82
- package/dist/lib/filter.js.map +1 -1
- package/dist/lib/fuzz-test.d.ts +2 -0
- package/dist/lib/fuzz-test.d.ts.map +1 -0
- package/dist/lib/fuzz-test.js +79 -0
- package/dist/lib/fuzz-test.js.map +1 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/unescape.d.ts +3 -0
- package/dist/lib/unescape.d.ts.map +1 -0
- package/dist/lib/unescape.js +54 -0
- package/dist/lib/unescape.js.map +1 -0
- package/package.json +1 -1
package/dist/bin/spcx.js
CHANGED
|
@@ -92,7 +92,7 @@ function runDev() {
|
|
|
92
92
|
};
|
|
93
93
|
const app = (0, express_1.default)()
|
|
94
94
|
.use(express_1.default.json({ strict: true }))
|
|
95
|
-
.post('
|
|
95
|
+
.post('/', async (req, res) => {
|
|
96
96
|
try {
|
|
97
97
|
res.type('application/x-ndjson');
|
|
98
98
|
const cmd = req.body;
|
package/dist/bin/spcx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spcx.js","sourceRoot":"","sources":["../../bin/spcx.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"spcx.js","sourceRoot":"","sources":["../../bin/spcx.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/filter.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
type data = {
|
|
2
|
+
[key: string]: boolean | string | string[] | number | number[] | any;
|
|
3
|
+
};
|
|
1
4
|
export declare class Filter {
|
|
2
5
|
private data;
|
|
3
|
-
constructor(data:
|
|
6
|
+
constructor(data: data);
|
|
4
7
|
matcher(filterString: string): boolean;
|
|
5
8
|
private applyBinaryExpressionFilter;
|
|
6
9
|
private isNullorEmpty;
|
|
7
10
|
private applyCallExpressionFilter;
|
|
8
|
-
private
|
|
11
|
+
private applyFilter;
|
|
9
12
|
}
|
|
13
|
+
export {};
|
|
10
14
|
//# sourceMappingURL=filter.d.ts.map
|
package/dist/lib/filter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../lib/filter.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IACjB,OAAO,CAAC,IAAI,CAAM;gBAEN,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../lib/filter.ts"],"names":[],"mappings":"AAEA,KAAK,IAAI,GAAG;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,CAAA;CACpE,CAAA;AACD,qBAAa,MAAM;IACjB,OAAO,CAAC,IAAI,CAAM;gBAEN,IAAI,EAAE,IAAI;IAKf,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAa7C,OAAO,CAAC,2BAA2B;IA6BnC,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,yBAAyB;IA2EjC,OAAO,CAAC,WAAW;CA6BpB"}
|
package/dist/lib/filter.js
CHANGED
|
@@ -1,25 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.Filter = void 0;
|
|
4
|
-
const
|
|
7
|
+
const jsep_1 = __importDefault(require("jsep"));
|
|
5
8
|
class Filter {
|
|
6
9
|
constructor(data) {
|
|
7
10
|
this.data = data;
|
|
8
11
|
}
|
|
9
12
|
// matcher decides which operation to be performed based on resource object based on the provided filter object
|
|
10
13
|
matcher(filterString) {
|
|
11
|
-
|
|
12
|
-
switch (true) {
|
|
13
|
-
case (filter.type === 'BinaryExpression' && filter.operator !== '&&' && filter.operator !== '||'):
|
|
14
|
-
return this.applyBinaryExpressionFilter(filter);
|
|
15
|
-
case (filter.type === 'CallExpression' && filter.operator !== '&&' && filter.operator !== '||'):
|
|
16
|
-
return this.applyCallExpressionFilter(filter);
|
|
17
|
-
case (filter.operator === '!'):
|
|
18
|
-
return !this.applyBinaryExpressionFilter(filter.argument);
|
|
19
|
-
case (filter.operator === '&&') || (filter.operator === '||'):
|
|
20
|
-
return this.applyAndOrComplexFilter(filter);
|
|
21
|
-
}
|
|
22
|
-
return true;
|
|
14
|
+
return this.applyFilter((0, jsep_1.default)(filterString));
|
|
23
15
|
}
|
|
24
16
|
// filterString Example: (age > 20)
|
|
25
17
|
// Filter evaluter Example :
|
|
@@ -31,33 +23,31 @@ class Filter {
|
|
|
31
23
|
//};
|
|
32
24
|
// applyBinaryExpressionFilter applies binarry filters on an objects
|
|
33
25
|
applyBinaryExpressionFilter(filter) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
26
|
+
const binaryExpression = filter; // type assertion
|
|
27
|
+
const left = binaryExpression.left;
|
|
28
|
+
const right = binaryExpression.right;
|
|
29
|
+
const operator = binaryExpression.operator;
|
|
30
|
+
const leftValue = left.type === 'Identifier' ? this.data[`${left.name}`] : left.value;
|
|
31
|
+
const rightValue = right.type === 'Identifier' ? this.data[`${right.name}`] : right.value;
|
|
32
|
+
switch (operator) {
|
|
33
|
+
case '==':
|
|
34
|
+
return leftValue == rightValue;
|
|
35
|
+
case '===':
|
|
36
|
+
return leftValue === rightValue;
|
|
37
|
+
case '>':
|
|
38
|
+
return leftValue > rightValue;
|
|
39
|
+
case '<':
|
|
40
|
+
return leftValue < rightValue;
|
|
41
|
+
case '>=':
|
|
42
|
+
return leftValue >= rightValue;
|
|
43
|
+
case '<=':
|
|
44
|
+
return leftValue <= rightValue;
|
|
45
|
+
case '!=':
|
|
46
|
+
return leftValue != rightValue;
|
|
47
|
+
default:
|
|
48
|
+
return true;
|
|
57
49
|
}
|
|
58
|
-
return true;
|
|
59
50
|
}
|
|
60
|
-
// a mock of the isNull method that could be attached to an object like 'email' 'name' etc..
|
|
61
51
|
isNullorEmpty(value) {
|
|
62
52
|
return value === null || value === undefined || value === '';
|
|
63
53
|
}
|
|
@@ -76,44 +66,43 @@ class Filter {
|
|
|
76
66
|
// applyCallExpressionFilte applies filter based on CallExpression
|
|
77
67
|
applyCallExpressionFilter(filter) {
|
|
78
68
|
// check if the filter is a CallExpression
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
69
|
+
const callExpression = filter;
|
|
70
|
+
const callee = callExpression.callee;
|
|
71
|
+
const object = callee.object;
|
|
72
|
+
const property = callee.property;
|
|
73
|
+
const args = callExpression.arguments;
|
|
74
|
+
// check if the object in the filter matches the object's name in the input data
|
|
75
|
+
if (this.data.hasOwnProperty(`${object.name}`)) {
|
|
76
|
+
const value = this.data[`${object.name}`]; // get the value of the object (e.g., email)
|
|
77
|
+
switch (`${property.name}`) {
|
|
78
|
+
case 'isNull': // check if the method is `isNull` and apply it to the value
|
|
79
|
+
return this.isNullorEmpty(value); // apply the isNull method
|
|
80
|
+
case 'notNull': // check if the method is `notNull` and apply it to the value
|
|
81
|
+
return !this.isNullorEmpty(value); // apply the notNull method
|
|
82
|
+
case 'isEmpty': // check if the method is `isEmpty` and apply it to the value
|
|
83
|
+
return this.isNullorEmpty(value); // apply the isEmpty method
|
|
84
|
+
case 'notEmpty': // check if the method is `notEmpty` and apply it to the value
|
|
85
|
+
return !this.isNullorEmpty(value); // apply the notEmpty method
|
|
86
|
+
case 'startsWith': // check if the method is `startsWith` and apply it to the value
|
|
87
|
+
return value.startsWith(args[0].value); // apply the startsWith method
|
|
88
|
+
case 'endsWith': // check if the method is `endsWith` and apply it to the value
|
|
89
|
+
return value.endsWith(args[0].value); // apply the endsWith method
|
|
90
|
+
case 'startsWithIgnoreCase': // check if the method is `startsWithIgnoreCase` and apply it to the value
|
|
91
|
+
return !value.startsWith(args[0].value); // apply the startsWithIgnoreCase method
|
|
92
|
+
case 'endsWithIgnoreCase': // check if the method is `endsWithIgnoreCase` and apply it to the value
|
|
93
|
+
return !value.endsWith(args[0].value); // apply the endsWithIgnoreCase method
|
|
94
|
+
case 'contains': // check if the method is `contains` and apply it to the value
|
|
95
|
+
return value.includes(args[0].value); // apply the contains method
|
|
96
|
+
case 'containsIgnoreCase': // check if the method is `containsIgnoreCase` and apply it to the value
|
|
97
|
+
return !value.includes(args[0].value); // apply the containsIgnoreCase method
|
|
98
|
+
case 'containsAll': // Check if the method is `containsAll` and apply it to the value
|
|
99
|
+
// ensure all values are present in the property
|
|
100
|
+
return args.every((arg => value.includes(arg.value))); // apply the containsAll method
|
|
101
|
+
case 'containsAllIgnoreCase': // Check if the method is `containsAllIgnoreCase` and apply it to the value
|
|
102
|
+
// ensure all values are present in the property
|
|
103
|
+
return args.every((arg => !value.includes(arg.value))); // apply the containsAllIgnoreCase method
|
|
104
|
+
default:
|
|
105
|
+
return true;
|
|
117
106
|
}
|
|
118
107
|
}
|
|
119
108
|
return true;
|
|
@@ -147,19 +136,25 @@ class Filter {
|
|
|
147
136
|
// right: { type: 'Literal', value: 'punee', raw: '"punee"' }
|
|
148
137
|
// }
|
|
149
138
|
// }
|
|
150
|
-
//
|
|
151
|
-
|
|
139
|
+
// applyFilter applies filter based on BinaryExpression, CallExpression, UnaryExpression filters on simple and complex filter string
|
|
140
|
+
applyFilter(filter) {
|
|
141
|
+
if (filter.type === 'UnaryExpression' && ['!'].includes(`${filter.operator}`)) {
|
|
142
|
+
let filterArg = filter.argument;
|
|
143
|
+
return !this.applyBinaryExpressionFilter(filterArg);
|
|
144
|
+
}
|
|
152
145
|
// if the current expression is a comparison
|
|
153
|
-
if (filter.type === 'BinaryExpression' && ['==', '===', '!=', '!==', '<', '>', '<=', '>='].includes(filter.operator)) {
|
|
146
|
+
if (filter.type === 'BinaryExpression' && ['==', '===', '!=', '!==', '<', '>', '<=', '>='].includes(`${filter.operator}`)) {
|
|
154
147
|
return this.applyBinaryExpressionFilter(filter);
|
|
155
148
|
}
|
|
156
149
|
if (filter.type === 'CallExpression') {
|
|
157
150
|
return this.applyCallExpressionFilter(filter);
|
|
158
151
|
}
|
|
159
152
|
// if the current expression is a logical operator (e.g., ||, &&)
|
|
160
|
-
if (filter.type === 'BinaryExpression' && ['||', '&&'].includes(filter.operator)) {
|
|
161
|
-
const
|
|
162
|
-
const
|
|
153
|
+
if (filter.type === 'BinaryExpression' && ['||', '&&'].includes(`${filter.operator}`)) {
|
|
154
|
+
const leftFilter = filter.left;
|
|
155
|
+
const rightFilter = filter.right;
|
|
156
|
+
const leftResult = this.applyFilter(leftFilter); // apply to the left side
|
|
157
|
+
const rightResult = this.applyFilter(rightFilter); // apply to the right side
|
|
163
158
|
// combine the results if both sides are processed
|
|
164
159
|
if (filter.operator === '||') {
|
|
165
160
|
return leftResult || rightResult; // logical OR
|
package/dist/lib/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../lib/filter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../lib/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzz-test.d.ts","sourceRoot":"","sources":["../../lib/fuzz-test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const unescape_1 = require("./unescape");
|
|
4
|
+
function fuzzUnescapeTests() {
|
|
5
|
+
const testCount = 1000;
|
|
6
|
+
for (let i = 0; i < testCount; i++) {
|
|
7
|
+
const input = {};
|
|
8
|
+
const keyCount = Math.floor(Math.random() * 10);
|
|
9
|
+
for (let j = 0; j < keyCount; j++) {
|
|
10
|
+
const key = `key${j}`;
|
|
11
|
+
const valueType = Math.floor(Math.random() * 3); // 0: string, 1: number, 2: array, 3: bool
|
|
12
|
+
if (valueType === 0) {
|
|
13
|
+
input[key] = generateRandomString();
|
|
14
|
+
}
|
|
15
|
+
else if (valueType === 1) {
|
|
16
|
+
input[key] = Math.floor(Math.random() * 100);
|
|
17
|
+
}
|
|
18
|
+
else if (valueType === 2) {
|
|
19
|
+
const arrayLength = Math.floor(Math.random() * 5);
|
|
20
|
+
const array = [];
|
|
21
|
+
for (let k = 0; k < arrayLength; k++) {
|
|
22
|
+
const arrayItemType = Math.floor(Math.random() * 2); // 0: string, 1: number
|
|
23
|
+
if (arrayItemType === 0) {
|
|
24
|
+
array.push(generateRandomString());
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
array.push(Math.floor(Math.random() * 100));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
input[key] = array;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
input[key] = Math.random() < 0.5;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
(0, unescape_1.UnescapeHexInObject)(input);
|
|
38
|
+
// If no exception, test passes (for this specific fuzz iteration)
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
console.error('Fuzz test failed:', input, e);
|
|
42
|
+
throw e; // Rethrow to stop the test suite.
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
console.log(`Fuzz tests passed (${testCount} iterations)`);
|
|
46
|
+
}
|
|
47
|
+
function generateRandomString() {
|
|
48
|
+
const length = Math.floor(Math.random() * 20);
|
|
49
|
+
const chars = 'abcdef0123456789\\xu{}&#;';
|
|
50
|
+
let result = '';
|
|
51
|
+
for (let i = 0; i < length; i++) {
|
|
52
|
+
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
53
|
+
}
|
|
54
|
+
// Randomly add hex sequences
|
|
55
|
+
if (Math.random() < 0.2) {
|
|
56
|
+
const hexType = Math.floor(Math.random() * 4); // 0: \\x, 1: \\u, 2: \\u{}, 3: &#x;
|
|
57
|
+
const hexValue = Math.floor(Math.random() * 256).toString(16).padStart(2, '0');
|
|
58
|
+
const unicodeValue = Math.floor(Math.random() * 65536).toString(16).padStart(4, '0');
|
|
59
|
+
const curlyUnicodeValue = Math.floor(Math.random() * 1114112).toString(16);
|
|
60
|
+
if (hexType === 0) {
|
|
61
|
+
result += `\\x${hexValue}`;
|
|
62
|
+
}
|
|
63
|
+
else if (hexType === 1) {
|
|
64
|
+
result += `\\u${unicodeValue}`;
|
|
65
|
+
}
|
|
66
|
+
else if (hexType === 2) {
|
|
67
|
+
result += `\\u{${curlyUnicodeValue}}`;
|
|
68
|
+
}
|
|
69
|
+
else if (hexType === 3) {
|
|
70
|
+
result += `&#x${hexValue};`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (Math.random() < 0.1) {
|
|
74
|
+
result += '\n';
|
|
75
|
+
}
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
fuzzUnescapeTests();
|
|
79
|
+
//# sourceMappingURL=fuzz-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzz-test.js","sourceRoot":"","sources":["../../lib/fuzz-test.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,SAAS,CAAA;AACvB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,SAAS,CAAA;AACvB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
|
package/dist/lib/index.js
CHANGED
|
@@ -26,4 +26,5 @@ __exportStar(require("./response"), exports);
|
|
|
26
26
|
__exportStar(require("./logger"), exports);
|
|
27
27
|
__exportStar(require("./partitionAdapter"), exports);
|
|
28
28
|
__exportStar(require("./filter"), exports);
|
|
29
|
+
__exportStar(require("./unescape"), exports);
|
|
29
30
|
//# sourceMappingURL=index.js.map
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";AAAA,2EAA2E;;;;;;;;;;;;;;;;AAE3E,6CAA0B;AAC1B,2CAAwB;AACxB,8CAA2B;AAC3B,yDAAsC;AACtC,0CAAuB;AACvB,sDAAmC;AACnC,iEAA8C;AAC9C,6CAA0B;AAC1B,2CAAwB;AACxB,qDAAkC;AAClC,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";AAAA,2EAA2E;;;;;;;;;;;;;;;;AAE3E,6CAA0B;AAC1B,2CAAwB;AACxB,8CAA2B;AAC3B,yDAAsC;AACtC,0CAAuB;AACvB,sDAAmC;AACnC,iEAA8C;AAC9C,6CAA0B;AAC1B,2CAAwB;AACxB,qDAAkC;AAClC,2CAAyB;AACzB,6CAA2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unescape.d.ts","sourceRoot":"","sources":["../../lib/unescape.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACX,MAAM,YAAY,CAAA;AAGnB,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAuC/D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnescapeHexInObject = void 0;
|
|
4
|
+
// UnescapeHexInObject replace the hexadecimal values to its equivalent unicode values
|
|
5
|
+
function UnescapeHexInObject(obj) {
|
|
6
|
+
if (!obj)
|
|
7
|
+
return {}; // handle null or undefined inputs
|
|
8
|
+
const processedObj = {};
|
|
9
|
+
const hexPattern = /(\\x([0-9a-fA-F]{2}))|(\\u([0-9a-fA-F]{4}))|(\\u\{([0-9a-fA-F]+)\})|(?:&#x([0-9a-fA-F]+);)/g;
|
|
10
|
+
for (const key in obj) {
|
|
11
|
+
const value = obj[key];
|
|
12
|
+
// handle string type
|
|
13
|
+
if (typeof value === 'string') {
|
|
14
|
+
processedObj[key] = value.replace(hexPattern, (match, xMatch, xHex, uMatch, uHex, uCurlyMatch, uCurlyHex, htmlHex) => {
|
|
15
|
+
if (xHex)
|
|
16
|
+
return String.fromCharCode(parseInt(xHex, 16));
|
|
17
|
+
if (uHex)
|
|
18
|
+
return String.fromCharCode(parseInt(uHex, 16));
|
|
19
|
+
if (uCurlyHex)
|
|
20
|
+
return String.fromCodePoint(parseInt(uCurlyHex, 16));
|
|
21
|
+
if (htmlHex)
|
|
22
|
+
return String.fromCharCode(parseInt(htmlHex, 16));
|
|
23
|
+
return match;
|
|
24
|
+
});
|
|
25
|
+
// handle []string type
|
|
26
|
+
}
|
|
27
|
+
else if (Array.isArray(value)) {
|
|
28
|
+
processedObj[key] = value.map(item => {
|
|
29
|
+
if (typeof item === 'string') {
|
|
30
|
+
return item.replace(hexPattern, (match, xMatch, xHex, uMatch, uHex, uCurlyMatch, uCurlyHex, htmlHex) => {
|
|
31
|
+
if (xHex)
|
|
32
|
+
return String.fromCharCode(parseInt(xHex, 16));
|
|
33
|
+
if (uHex)
|
|
34
|
+
return String.fromCharCode(parseInt(uHex, 16));
|
|
35
|
+
if (uCurlyHex)
|
|
36
|
+
return String.fromCodePoint(parseInt(uCurlyHex, 16));
|
|
37
|
+
if (htmlHex)
|
|
38
|
+
return String.fromCharCode(parseInt(htmlHex, 16));
|
|
39
|
+
return match;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return item; // Keep non-string array items as they are
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
processedObj[key] = value; // keep non-string attributes as they are
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return processedObj;
|
|
52
|
+
}
|
|
53
|
+
exports.UnescapeHexInObject = UnescapeHexInObject;
|
|
54
|
+
//# sourceMappingURL=unescape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unescape.js","sourceRoot":"","sources":["../../lib/unescape.ts"],"names":[],"mappings":";;;AAIA,sFAAsF;AACtF,SAAgB,mBAAmB,CAAC,GAAe;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,kCAAkC;IAEvD,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,6FAA6F,CAAC;IAEjH,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,qBAAqB;QACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;gBACnH,IAAI,IAAI;oBAAE,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzD,IAAI,IAAI;oBAAE,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzD,IAAI,SAAS;oBAAE,OAAO,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;gBACpE,IAAI,OAAO;oBAAE,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC/D,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YACH,uBAAuB;SACxB;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;wBACrG,IAAI,IAAI;4BAAE,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;wBACzD,IAAI,IAAI;4BAAE,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;wBACzD,IAAI,SAAS;4BAAE,OAAO,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;wBACpE,IAAI,OAAO;4BAAE,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC/D,OAAO,KAAK,CAAC;oBACf,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,OAAO,IAAI,CAAC,CAAC,0CAA0C;iBACxD;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,yCAAyC;SACrE;KACF;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAvCD,kDAuCC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sailpoint/connector-sdk",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.21",
|
|
4
4
|
"description": "JavaScript framework to build SailPoint Connectors",
|
|
5
5
|
"author": "SailPoint Technologies, Inc.",
|
|
6
6
|
"license": "Copyright (c) 2023. SailPoint Technologies, Inc. All rights reserved.",
|