@pie-element/placement-ordering 14.3.2-beta.3 → 14.3.2-beta.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.
- package/CHANGELOG.md +8 -0
- package/configure/CHANGELOG.md +8 -0
- package/configure/package.json +3 -3
- package/controller/CHANGELOG.md +8 -0
- package/controller/package.json +1 -1
- package/package.json +2 -2
- package/configure/lib/__tests__/choice-editor.test.js +0 -376
- package/configure/lib/__tests__/choice-tile.test.js +0 -283
- package/configure/lib/__tests__/design.test.js +0 -268
- package/configure/lib/__tests__/help.test.js +0 -64
- package/configure/lib/__tests__/index.test.js +0 -77
- package/configure/lib/__tests__/utils.test.js +0 -493
- package/controller/lib/__tests__/index.test.js +0 -401
- package/controller/lib/__tests__/scoring.test.js +0 -165
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/index-test.js +0 -90
- package/lib/__tests__/ordering.test.js +0 -133
- package/lib/__tests__/placement-ordering.test.js +0 -445
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _index = require("../index");
|
|
4
|
-
describe('isValidSession', () => {
|
|
5
|
-
it('returns true if includeTargets is true and session is empty', () => {
|
|
6
|
-
expect((0, _index.isValidSession)({
|
|
7
|
-
model: {
|
|
8
|
-
config: {
|
|
9
|
-
includeTargets: true
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
session: {
|
|
13
|
-
value: []
|
|
14
|
-
}
|
|
15
|
-
})).toEqual(true);
|
|
16
|
-
});
|
|
17
|
-
it('returns true if includeTargets is true and session is not complete', () => {
|
|
18
|
-
expect((0, _index.isValidSession)({
|
|
19
|
-
model: {
|
|
20
|
-
config: {
|
|
21
|
-
includeTargets: true
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
session: {
|
|
25
|
-
value: ['c1', null, 'c3', null]
|
|
26
|
-
}
|
|
27
|
-
})).toEqual(true);
|
|
28
|
-
});
|
|
29
|
-
it('returns true if includeTargets is true and session is not complete', () => {
|
|
30
|
-
expect((0, _index.isValidSession)({
|
|
31
|
-
model: {
|
|
32
|
-
config: {
|
|
33
|
-
includeTargets: true
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
session: {
|
|
37
|
-
value: [null, 'c2']
|
|
38
|
-
}
|
|
39
|
-
})).toEqual(true);
|
|
40
|
-
});
|
|
41
|
-
it('returns true if includeTargets is false, but session is valid', () => {
|
|
42
|
-
expect((0, _index.isValidSession)({
|
|
43
|
-
model: {
|
|
44
|
-
config: {
|
|
45
|
-
includeTargets: false
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
session: {
|
|
49
|
-
value: ['c1', 'c3', 'c2', 'c4']
|
|
50
|
-
}
|
|
51
|
-
})).toEqual(true);
|
|
52
|
-
});
|
|
53
|
-
it('returns false if includeTargets is false and session is empty', () => {
|
|
54
|
-
expect((0, _index.isValidSession)({
|
|
55
|
-
model: {
|
|
56
|
-
config: {
|
|
57
|
-
includeTargets: false
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
session: {
|
|
61
|
-
value: []
|
|
62
|
-
}
|
|
63
|
-
})).toEqual(false);
|
|
64
|
-
});
|
|
65
|
-
it('returns false if includeTargets is false and session is not complete', () => {
|
|
66
|
-
expect((0, _index.isValidSession)({
|
|
67
|
-
model: {
|
|
68
|
-
config: {
|
|
69
|
-
includeTargets: false
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
session: {
|
|
73
|
-
value: ['c1', null, 'c3', null]
|
|
74
|
-
}
|
|
75
|
-
})).toEqual(false);
|
|
76
|
-
});
|
|
77
|
-
it('returns false if includeTargets is false and session is not complete', () => {
|
|
78
|
-
expect((0, _index.isValidSession)({
|
|
79
|
-
model: {
|
|
80
|
-
config: {
|
|
81
|
-
includeTargets: false
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
session: {
|
|
85
|
-
value: [null, 'c2']
|
|
86
|
-
}
|
|
87
|
-
})).toEqual(false);
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJyZXF1aXJlIiwiZGVzY3JpYmUiLCJpdCIsImV4cGVjdCIsImlzVmFsaWRTZXNzaW9uIiwibW9kZWwiLCJjb25maWciLCJpbmNsdWRlVGFyZ2V0cyIsInNlc3Npb24iLCJ2YWx1ZSIsInRvRXF1YWwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2luZGV4LXRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVmFsaWRTZXNzaW9uIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5kZXNjcmliZSgnaXNWYWxpZFNlc3Npb24nLCAoKSA9PiB7XG4gIGl0KCdyZXR1cm5zIHRydWUgaWYgaW5jbHVkZVRhcmdldHMgaXMgdHJ1ZSBhbmQgc2Vzc2lvbiBpcyBlbXB0eScsICgpID0+IHtcbiAgICBleHBlY3QoaXNWYWxpZFNlc3Npb24oXG4gICAgICB7XG4gICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBpbmNsdWRlVGFyZ2V0czogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc2Vzc2lvbjogeyB2YWx1ZTogW10gfVxuICAgICAgfSkpLnRvRXF1YWwodHJ1ZSk7XG4gIH0pO1xuXG4gIGl0KCdyZXR1cm5zIHRydWUgaWYgaW5jbHVkZVRhcmdldHMgaXMgdHJ1ZSBhbmQgc2Vzc2lvbiBpcyBub3QgY29tcGxldGUnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGlzVmFsaWRTZXNzaW9uKFxuICAgICAge1xuICAgICAgICBtb2RlbDoge1xuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgaW5jbHVkZVRhcmdldHM6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNlc3Npb246IHsgdmFsdWU6IFsnYzEnLCBudWxsLCAnYzMnLCBudWxsXSB9XG4gICAgICB9KSkudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgdHJ1ZSBpZiBpbmNsdWRlVGFyZ2V0cyBpcyB0cnVlIGFuZCBzZXNzaW9uIGlzIG5vdCBjb21wbGV0ZScsICgpID0+IHtcbiAgICBleHBlY3QoaXNWYWxpZFNlc3Npb24oXG4gICAgICB7XG4gICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBpbmNsdWRlVGFyZ2V0czogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc2Vzc2lvbjogeyB2YWx1ZTogW251bGwsICdjMiddIH1cbiAgICAgIH0pKS50b0VxdWFsKHRydWUpO1xuICB9KTtcblxuICBpdCgncmV0dXJucyB0cnVlIGlmIGluY2x1ZGVUYXJnZXRzIGlzIGZhbHNlLCBidXQgc2Vzc2lvbiBpcyB2YWxpZCcsICgpID0+IHtcbiAgICBleHBlY3QoaXNWYWxpZFNlc3Npb24oXG4gICAgICB7XG4gICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBpbmNsdWRlVGFyZ2V0czogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNlc3Npb246IHsgdmFsdWU6IFsnYzEnLCAnYzMnLCAnYzInLCAnYzQnXSB9XG4gICAgICB9KSkudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgZmFsc2UgaWYgaW5jbHVkZVRhcmdldHMgaXMgZmFsc2UgYW5kIHNlc3Npb24gaXMgZW1wdHknLCAoKSA9PiB7XG4gICAgZXhwZWN0KGlzVmFsaWRTZXNzaW9uKFxuICAgICAge1xuICAgICAgICBtb2RlbDoge1xuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgaW5jbHVkZVRhcmdldHM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzZXNzaW9uOiB7IHZhbHVlOiBbXSB9XG4gICAgICB9KSkudG9FcXVhbChmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdyZXR1cm5zIGZhbHNlIGlmIGluY2x1ZGVUYXJnZXRzIGlzIGZhbHNlIGFuZCBzZXNzaW9uIGlzIG5vdCBjb21wbGV0ZScsICgpID0+IHtcbiAgICBleHBlY3QoaXNWYWxpZFNlc3Npb24oXG4gICAgICB7XG4gICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBpbmNsdWRlVGFyZ2V0czogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNlc3Npb246IHsgdmFsdWU6IFsnYzEnLCBudWxsLCAnYzMnLCBudWxsXSB9XG4gICAgICB9KSkudG9FcXVhbChmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdyZXR1cm5zIGZhbHNlIGlmIGluY2x1ZGVUYXJnZXRzIGlzIGZhbHNlIGFuZCBzZXNzaW9uIGlzIG5vdCBjb21wbGV0ZScsICgpID0+IHtcbiAgICBleHBlY3QoaXNWYWxpZFNlc3Npb24oXG4gICAgICB7XG4gICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBpbmNsdWRlVGFyZ2V0czogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNlc3Npb246IHsgdmFsdWU6IFtudWxsLCAnYzInXSB9XG4gICAgICB9KSkudG9FcXVhbChmYWxzZSk7XG4gIH0pO1xufSlcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLE1BQU07RUFDL0JDLEVBQUUsQ0FBQyw2REFBNkQsRUFBRSxNQUFNO0lBQ3RFQyxNQUFNLENBQUMsSUFBQUMscUJBQWMsRUFDbkI7TUFDRUMsS0FBSyxFQUFFO1FBQ0xDLE1BQU0sRUFBRTtVQUNOQyxjQUFjLEVBQUU7UUFDbEI7TUFDRixDQUFDO01BQ0RDLE9BQU8sRUFBRTtRQUFFQyxLQUFLLEVBQUU7TUFBRztJQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDO0VBQ3JCLENBQUMsQ0FBQztFQUVGUixFQUFF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
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _ordering = require("../ordering");
|
|
4
|
-
var _lodashEs = require("lodash-es");
|
|
5
|
-
describe('ordering', () => {
|
|
6
|
-
const toLabel = a => `${a[0]}->${a[1]}`;
|
|
7
|
-
const choice = id => ({
|
|
8
|
-
type: 'choice',
|
|
9
|
-
id,
|
|
10
|
-
draggable: true,
|
|
11
|
-
droppable: false
|
|
12
|
-
});
|
|
13
|
-
const target = (id, index) => ({
|
|
14
|
-
id,
|
|
15
|
-
index,
|
|
16
|
-
type: 'target',
|
|
17
|
-
draggable: id !== undefined,
|
|
18
|
-
empty: id === undefined
|
|
19
|
-
});
|
|
20
|
-
const buildArgs = choiceArg => {
|
|
21
|
-
if (Array.isArray(choiceArg)) {
|
|
22
|
-
return {
|
|
23
|
-
choices: choiceArg,
|
|
24
|
-
response: [],
|
|
25
|
-
outcome: []
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
response: [],
|
|
30
|
-
outcome: [],
|
|
31
|
-
...choiceArg
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
const buildEndState = (input, actions, action, opts) => {
|
|
35
|
-
const {
|
|
36
|
-
choices,
|
|
37
|
-
response,
|
|
38
|
-
outcome
|
|
39
|
-
} = buildArgs(input);
|
|
40
|
-
const choiceIds = choices.map(id => ({
|
|
41
|
-
id
|
|
42
|
-
}));
|
|
43
|
-
const initialState = (0, _ordering.buildState)(choiceIds, response, outcome, opts);
|
|
44
|
-
return (actions || []).reduce((state, [fromIndex, toIndex]) => {
|
|
45
|
-
let tiles;
|
|
46
|
-
if (!opts.includeTargets) {
|
|
47
|
-
tiles = state.tiles.filter(tile => tile.type === 'choice');
|
|
48
|
-
} else {
|
|
49
|
-
tiles = state.tiles;
|
|
50
|
-
}
|
|
51
|
-
const from = tiles[fromIndex];
|
|
52
|
-
const to = tiles[toIndex];
|
|
53
|
-
return (0, _ordering.reducer)({
|
|
54
|
-
...action,
|
|
55
|
-
from,
|
|
56
|
-
to
|
|
57
|
-
}, state);
|
|
58
|
-
}, initialState);
|
|
59
|
-
};
|
|
60
|
-
describe('reducer', () => {
|
|
61
|
-
const assertPushLabel = (i, actions, e) => `${i.tiles.map(t => t.id)} + ${actions.map(toLabel).join(', ')} = ${e}`;
|
|
62
|
-
const assertMoveLabel = (i, actions, expected) => {
|
|
63
|
-
const tiles = (0, _lodashEs.take)(i.tiles, 4).map(t => t.id);
|
|
64
|
-
return `${tiles} + ${actions.map(toLabel)} = ${expected.choices.map(c => c || '_')}|${expected.targets.map(t => t || '_')}`;
|
|
65
|
-
};
|
|
66
|
-
const assertResponseLabel = (s, actions, expected) => `${actions.map(toLabel)} = response: ${expected.map(v => v || '_')}`;
|
|
67
|
-
const allProps = {
|
|
68
|
-
includeTargets: true,
|
|
69
|
-
allowSameChoiceInTargets: true
|
|
70
|
-
};
|
|
71
|
-
const withoutTargets = {
|
|
72
|
-
includeTargets: false
|
|
73
|
-
};
|
|
74
|
-
const uniqueChoiceInTargets = {
|
|
75
|
-
includeTargets: true,
|
|
76
|
-
allowSameChoiceInTargets: false
|
|
77
|
-
};
|
|
78
|
-
const moveAction = {
|
|
79
|
-
type: 'move'
|
|
80
|
-
};
|
|
81
|
-
const simpleInput = [1, 2, 3, 4];
|
|
82
|
-
const shortInput = [1, 2];
|
|
83
|
-
const responseInput = {
|
|
84
|
-
choices: [1, 2],
|
|
85
|
-
response: [undefined, 1]
|
|
86
|
-
};
|
|
87
|
-
describe.each([[simpleInput, [[0, 1]], moveAction, withoutTargets, [2, 1, 3, 4]], [simpleInput, [[0, 1], [2, 1]], moveAction, withoutTargets, [2, 3, 1, 4]], [simpleInput, [[0, 4]], moveAction, uniqueChoiceInTargets, {
|
|
88
|
-
choices: [undefined, 2, 3, 4],
|
|
89
|
-
targets: [1, undefined, undefined, undefined]
|
|
90
|
-
}], [simpleInput, [[0, 4]], moveAction, allProps, {
|
|
91
|
-
choices: [1, 2, 3, 4],
|
|
92
|
-
targets: [1, undefined, undefined, undefined]
|
|
93
|
-
}], [simpleInput, [[0, 4], [2, 7]], moveAction, uniqueChoiceInTargets, {
|
|
94
|
-
choices: [undefined, 2, undefined, 4],
|
|
95
|
-
targets: [1, undefined, undefined, 3]
|
|
96
|
-
}], [shortInput, [[0, 3]], moveAction, allProps, [choice(1), choice(2), target(undefined, 0), target(1, 1)]], [shortInput, [[0, 3]], moveAction, allProps, {
|
|
97
|
-
response: [undefined, 1]
|
|
98
|
-
}], [shortInput, [[0, 2]], moveAction, allProps, {
|
|
99
|
-
response: [1, undefined]
|
|
100
|
-
}], [responseInput, [[3, 0]], moveAction, allProps, {
|
|
101
|
-
response: [undefined, undefined]
|
|
102
|
-
}], [responseInput, [[3, 1]], moveAction, allProps, {
|
|
103
|
-
response: [undefined, undefined]
|
|
104
|
-
}], [responseInput, [[3, 2]], moveAction, allProps, {
|
|
105
|
-
response: [1, undefined]
|
|
106
|
-
}]])('$input => $expected', (input, actions, actionType, opts, expected) => {
|
|
107
|
-
const state = buildEndState(input, actions, actionType, opts);
|
|
108
|
-
if (!opts.includeTargets) {
|
|
109
|
-
const label = assertPushLabel(state, actions, expected);
|
|
110
|
-
it(label, () => {
|
|
111
|
-
expect(state.tiles.map(t => t.id).filter((item, index, array) => array.indexOf(item) === index)).toEqual(expected);
|
|
112
|
-
});
|
|
113
|
-
} else if (expected.choices) {
|
|
114
|
-
const label = assertMoveLabel(state, actions, expected);
|
|
115
|
-
it(label, () => {
|
|
116
|
-
let [choiceTiles, targetTiles] = (0, _lodashEs.chunk)(state.tiles, 4);
|
|
117
|
-
expect(choiceTiles.map(t => t.id)).toEqual(expected.choices);
|
|
118
|
-
expect(targetTiles.map(t => t.id)).toEqual(expected.targets);
|
|
119
|
-
});
|
|
120
|
-
} else if (expected.response) {
|
|
121
|
-
const label = assertResponseLabel(state, actions, expected.response);
|
|
122
|
-
it(label, () => {
|
|
123
|
-
expect(state.response).toEqual(expected.response);
|
|
124
|
-
});
|
|
125
|
-
} else {
|
|
126
|
-
it('works', () => {
|
|
127
|
-
expect(state.tiles).toEqual(expected);
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfb3JkZXJpbmciLCJyZXF1aXJlIiwiX2xvZGFzaEVzIiwiZGVzY3JpYmUiLCJ0b0xhYmVsIiwiYSIsImNob2ljZSIsImlkIiwidHlwZSIsImRyYWdnYWJsZSIsImRyb3BwYWJsZSIsInRhcmdldCIsImluZGV4IiwidW5kZWZpbmVkIiwiZW1wdHkiLCJidWlsZEFyZ3MiLCJjaG9pY2VBcmciLCJBcnJheSIsImlzQXJyYXkiLCJjaG9pY2VzIiwicmVzcG9uc2UiLCJvdXRjb21lIiwiYnVpbGRFbmRTdGF0ZSIsImlucHV0IiwiYWN0aW9ucyIsImFjdGlvbiIsIm9wdHMiLCJjaG9pY2VJZHMiLCJtYXAiLCJpbml0aWFsU3RhdGUiLCJidWlsZFN0YXRlIiwicmVkdWNlIiwic3RhdGUiLCJmcm9tSW5kZXgiLCJ0b0luZGV4IiwidGlsZXMiLCJpbmNsdWRlVGFyZ2V0cyIsImZpbHRlciIsInRpbGUiLCJmcm9tIiwidG8iLCJyZWR1Y2VyIiwiYXNzZXJ0UHVzaExhYmVsIiwiaSIsImUiLCJ0Iiwiam9pbiIsImFzc2VydE1vdmVMYWJlbCIsImV4cGVjdGVkIiwidGFrZSIsImMiLCJ0YXJnZXRzIiwiYXNzZXJ0UmVzcG9uc2VMYWJlbCIsInMiLCJ2IiwiYWxsUHJvcHMiLCJhbGxvd1NhbWVDaG9pY2VJblRhcmdldHMiLCJ3aXRob3V0VGFyZ2V0cyIsInVuaXF1ZUNob2ljZUluVGFyZ2V0cyIsIm1vdmVBY3Rpb24iLCJzaW1wbGVJbnB1dCIsInNob3J0SW5wdXQiLCJyZXNwb25zZUlucHV0IiwiZWFjaCIsImFjdGlvblR5cGUiLCJsYWJlbCIsIml0IiwiZXhwZWN0IiwiaXRlbSIsImFycmF5IiwiaW5kZXhPZiIsInRvRXF1YWwiLCJjaG9pY2VUaWxlcyIsInRhcmdldFRpbGVzIiwiY2h1bmsiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL29yZGVyaW5nLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRTdGF0ZSwgcmVkdWNlciB9IGZyb20gJy4uL29yZGVyaW5nJztcbmltcG9ydCB7IGNodW5rLCB0YWtlIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZGVzY3JpYmUoJ29yZGVyaW5nJywgKCkgPT4ge1xuICBjb25zdCB0b0xhYmVsID0gKGEpID0+IGAke2FbMF19LT4ke2FbMV19YDtcblxuICBjb25zdCBjaG9pY2UgPSAoaWQpID0+ICh7XG4gICAgdHlwZTogJ2Nob2ljZScsXG4gICAgaWQsXG4gICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgIGRyb3BwYWJsZTogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0IHRhcmdldCA9IChpZCwgaW5kZXgpID0+ICh7XG4gICAgaWQsXG4gICAgaW5kZXgsXG4gICAgdHlwZTogJ3RhcmdldCcsXG4gICAgZHJhZ2dhYmxlOiBpZCAhPT0gdW5kZWZpbmVkLFxuICAgIGVtcHR5OiBpZCA9PT0gdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCBidWlsZEFyZ3MgPSAoY2hvaWNlQXJnKSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hvaWNlQXJnKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2hvaWNlczogY2hvaWNlQXJnLFxuICAgICAgICByZXNwb25zZTogW10sXG4gICAgICAgIG91dGNvbWU6IFtdLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyByZXNwb25zZTogW10sIG91dGNvbWU6IFtdLCAuLi5jaG9pY2VBcmcgfTtcbiAgfTtcblxuICBjb25zdCBidWlsZEVuZFN0YXRlID0gKGlucHV0LCBhY3Rpb25zLCBhY3Rpb24sIG9wdHMpID0+IHtcbiAgICBjb25zdCB7IGNob2ljZXMsIHJlc3BvbnNlLCBvdXRjb21lIH0gPSBidWlsZEFyZ3MoaW5wdXQpO1xuICAgIGNvbnN0IGNob2ljZUlkcyA9IGNob2ljZXMubWFwKChpZCkgPT4gKHsgaWQgfSkpO1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IGJ1aWxkU3RhdGUoY2hvaWNlSWRzLCByZXNwb25zZSwgb3V0Y29tZSwgb3B0cyk7XG5cbiAgICByZXR1cm4gKGFjdGlvbnMgfHwgW10pLnJlZHVjZSgoc3RhdGUsIFtmcm9tSW5kZXgsIHRvSW5kZXhdKSA9PiB7XG4gICAgICBsZXQgdGlsZXM7XG5cbiAgICAgIGlmICghb3B0cy5pbmNsdWRlVGFyZ2V0cykge1xuICAgICAgICB0aWxlcyA9IHN0YXRlLnRpbGVzLmZpbHRlcigodGlsZSkgPT4gdGlsZS50eXBlID09PSAnY2hvaWNlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aWxlcyA9IHN0YXRlLnRpbGVzO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmcm9tID0gdGlsZXNbZnJvbUluZGV4XTtcbiAgICAgIGNvbnN0IHRvID0gdGlsZXNbdG9JbmRleF07XG5cbiAgICAgIHJldHVybiByZWR1Y2VyKHsgLi4uYWN0aW9uLCBmcm9tLCB0byB9LCBzdGF0ZSk7XG4gICAgfSwgaW5pdGlhbFN0YXRlKTtcbiAgfTtcblxuICBkZXNjcmliZSgncmVkdWNlcicsICgpID0+IHtcbiAgICBjb25zdCBhc3NlcnRQdXNoTGFiZWwgPSAoaSwgYWN0aW9ucywgZSkgPT5cbiAgICAgIGAke2kudGlsZXMubWFwKCh0KSA9PiB0LmlkKX0gKyAke2FjdGlvbnMubWFwKHRvTGFiZWwpLmpvaW4oJywgJyl9ID0gJHtlfWA7XG5cbiAgICBjb25zdCBhc3NlcnRNb3ZlTGFiZWwgPSAoaSwgYWN0aW9ucywgZXhwZWN0ZWQpID0+IHtcbiAgICAgIGNvbnN0IHRpbGVzID0gdGFrZShpLnRpbGVzLCA0KS5tYXAoKHQpID0+IHQuaWQpO1xuXG4gICAgICByZXR1cm4gYCR7dGlsZXN9ICsgJHthY3Rpb25zLm1hcCh0b0xhYmVsKX0gPSAke2V4cGVjdGVkLmNob2ljZXMubWFwKChjKSA9PiBjIHx8ICdfJyl9fCR7ZXhwZWN0ZWQudGFyZ2V0cy5tYXAoXG4gICAgICAgICh0KSA9PiB0IHx8ICdfJyxcbiAgICAgICl9YDtcbiAgICB9O1xuXG4gICAgY29uc3QgYXNzZXJ0UmVzcG9uc2VMYWJlbCA9IChzLCBhY3Rpb25zLCBleHBlY3RlZCkgPT5cbiAgICAgIGAke2FjdGlvbnMubWFwKHRvTGFiZWwpfSA9IHJlc3BvbnNlOiAke2V4cGVjdGVkLm1hcCgodikgPT4gdiB8fCAnXycpfWA7XG4gICAgY29uc3QgYWxsUHJvcHMgPSB7IGluY2x1ZGVUYXJnZXRzOiB0cnVlLCBhbGxvd1NhbWVDaG9pY2VJblRhcmdldHM6IHRydWUgfTtcbiAgICBjb25zdCB3aXRob3V0VGFyZ2V0cyA9IHsgaW5jbHVkZVRhcmdldHM6IGZhbHNlIH07XG4gICAgY29uc3QgdW5pcXVlQ2hvaWNlSW5UYXJnZXRzID0geyBpbmNsdWRlVGFyZ2V0czogdHJ1ZSwgYWxsb3dTYW1lQ2hvaWNlSW5UYXJnZXRzOiBmYWxzZSB9O1xuICAgIGNvbnN0IG1vdmVBY3Rpb24gPSB7IHR5cGU6ICdtb3ZlJyB9O1xuICAgIGNvbnN0IHNpbXBsZUlucHV0ID0gWzEsIDIsIDMsIDRdO1xuICAgIGNvbnN0IHNob3J0SW5wdXQgPSBbMSwgMl07XG4gICAgY29uc3QgcmVzcG9uc2VJbnB1dCA9IHsgY2hvaWNlczogWzEsIDJdLCByZXNwb25zZTogW3VuZGVmaW5lZCwgMV0gfTtcblxuICAgIGRlc2NyaWJlLmVhY2goW1xuICAgICAgW3NpbXBsZUlucHV0LCBbWzAsIDFdXSwgbW92ZUFjdGlvbiwgd2l0aG91dFRhcmdldHMsIFsyLCAxLCAzLCA0XV0sXG4gICAgICBbXG4gICAgICAgIHNpbXBsZUlucHV0LFxuICAgICAgICBbXG4gICAgICAgICAgWzAsIDFdLFxuICAgICAgICAgIFsyLCAxXSxcbiAgICAgICAgXSxcbiAgICAgICAgbW92ZUFjdGlvbixcbiAgICAgICAgd2l0aG91dFRhcmdldHMsXG4gICAgICAgIFsyLCAzLCAxLCA0XSxcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgIHNpbXBsZUlucHV0LFxuICAgICAgICBbWzAsIDRdXSxcbiAgICAgICAgbW92ZUFjdGlvbixcbiAgICAgICAgdW5pcXVlQ2hvaWNlSW5UYXJnZXRzLFxuICAgICAgICB7XG4gICAgICAgICAgY2hvaWNlczogW3VuZGVmaW5lZCwgMiwgMywgNF0sXG4gICAgICAgICAgdGFyZ2V0czogWzEsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWRdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgc2ltcGxlSW5wdXQsXG4gICAgICAgIFtbMCwgNF1dLFxuICAgICAgICBtb3ZlQWN0aW9uLFxuICAgICAgICBhbGxQcm9wcyxcbiAgICAgICAge1xuICAgICAgICAgIGNob2ljZXM6IFsxLCAyLCAzLCA0XSxcbiAgICAgICAgICB0YXJnZXRzOiBbMSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICBzaW1wbGVJbnB1dCxcbiAgICAgICAgW1xuICAgICAgICAgIFswLCA0XSxcbiAgICAgICAgICBbMiwgN10sXG4gICAgICAgIF0sXG4gICAgICAgIG1vdmVBY3Rpb24sXG4gICAgICAgIHVuaXF1ZUNob2ljZUluVGFyZ2V0cyxcbiAgICAgICAge1xuICAgICAgICAgIGNob2ljZXM6IFt1bmRlZmluZWQsIDIsIHVuZGVmaW5lZCwgNF0sXG4gICAgICAgICAgdGFyZ2V0czogWzEsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAzXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBbc2hvcnRJbnB1dCwgW1swLCAzXV0sIG1vdmVBY3Rpb24sIGFsbFByb3BzLCBbY2hvaWNlKDEpLCBjaG9pY2UoMiksIHRhcmdldCh1bmRlZmluZWQsIDApLCB0YXJnZXQoMSwgMSldXSxcbiAgICAgIFtzaG9ydElucHV0LCBbWzAsIDNdXSwgbW92ZUFjdGlvbiwgYWxsUHJvcHMsIHsgcmVzcG9uc2U6IFt1bmRlZmluZWQsIDFdIH1dLFxuICAgICAgW3Nob3J0SW5wdXQsIFtbMCwgMl1dLCBtb3ZlQWN0aW9uLCBhbGxQcm9wcywgeyByZXNwb25zZTogWzEsIHVuZGVmaW5lZF0gfV0sXG4gICAgICBbcmVzcG9uc2VJbnB1dCwgW1szLCAwXV0sIG1vdmVBY3Rpb24sIGFsbFByb3BzLCB7IHJlc3BvbnNlOiBbdW5kZWZpbmVkLCB1bmRlZmluZWRdIH1dLFxuICAgICAgW3Jlc3BvbnNlSW5wdXQsIFtbMywgMV1dLCBtb3ZlQWN0aW9uLCBhbGxQcm9wcywgeyByZXNwb25zZTogW3VuZGVmaW5lZCwgdW5kZWZpbmVkXSB9XSxcbiAgICAgIFtyZXNwb25zZUlucHV0LCBbWzMsIDJdXSwgbW92ZUFjdGlvbiwgYWxsUHJvcHMsIHsgcmVzcG9uc2U6IFsxLCB1bmRlZmluZWRdIH1dLFxuICAgIF0pKCckaW5wdXQgPT4gJGV4cGVjdGVkJywgKGlucHV0LCBhY3Rpb25zLCBhY3Rpb25UeXBlLCBvcHRzLCBleHBlY3RlZCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGUgPSBidWlsZEVuZFN0YXRlKGlucHV0LCBhY3Rpb25zLCBhY3Rpb25UeXBlLCBvcHRzKTtcblxuICAgICAgaWYgKCFvcHRzLmluY2x1ZGVUYXJnZXRzKSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gYXNzZXJ0UHVzaExhYmVsKHN0YXRlLCBhY3Rpb25zLCBleHBlY3RlZCk7XG5cbiAgICAgICAgaXQobGFiZWwsICgpID0+IHtcbiAgICAgICAgICBleHBlY3Qoc3RhdGUudGlsZXMubWFwKCh0KSA9PiB0LmlkKS5maWx0ZXIoKGl0ZW0sIGluZGV4LCBhcnJheSkgPT4gYXJyYXkuaW5kZXhPZihpdGVtKSA9PT0gaW5kZXgpKS50b0VxdWFsKFxuICAgICAgICAgICAgZXhwZWN0ZWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGV4cGVjdGVkLmNob2ljZXMpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBhc3NlcnRNb3ZlTGFiZWwoc3RhdGUsIGFjdGlvbnMsIGV4cGVjdGVkKTtcblxuICAgICAgICBpdChsYWJlbCwgKCkgPT4ge1xuICAgICAgICAgIGxldCBbY2hvaWNlVGlsZXMsIHRhcmdldFRpbGVzXSA9IGNodW5rKHN0YXRlLnRpbGVzLCA0KTtcblxuICAgICAgICAgIGV4cGVjdChjaG9pY2VUaWxlcy5tYXAoKHQpID0+IHQuaWQpKS50b0VxdWFsKGV4cGVjdGVkLmNob2ljZXMpO1xuICAgICAgICAgIGV4cGVjdCh0YXJnZXRUaWxlcy5tYXAoKHQpID0+IHQuaWQpKS50b0VxdWFsKGV4cGVjdGVkLnRhcmdldHMpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoZXhwZWN0ZWQucmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBhc3NlcnRSZXNwb25zZUxhYmVsKHN0YXRlLCBhY3Rpb25zLCBleHBlY3RlZC5yZXNwb25zZSk7XG5cbiAgICAgICAgaXQobGFiZWwsICgpID0+IHtcbiAgICAgICAgICBleHBlY3Qoc3RhdGUucmVzcG9uc2UpLnRvRXF1YWwoZXhwZWN0ZWQucmVzcG9uc2UpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0KCd3b3JrcycsICgpID0+IHtcbiAgICAgICAgICBleHBlY3Qoc3RhdGUudGlsZXMpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFFQUUsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNO0VBQ3pCLE1BQU1DLE9BQU8sR0FBSUMsQ0FBQyxJQUFLLEdBQUdBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBS0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0VBRXpDLE1BQU1DLE1BQU0sR0FBSUMsRUFBRSxLQUFNO0lBQ3RCQyxJQUFJLEVBQUUsUUFBUTtJQUNkRCxFQUFFO0lBQ0ZFLFNBQVMsRUFBRSxJQUFJO0lBQ2ZDLFNBQVMsRUFBRTtFQUNiLENBQUMsQ0FBQztFQUVGLE1BQU1DLE1BQU0sR0FBR0EsQ0FBQ0osRUFBRSxFQUFFSyxLQUFL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
|