fit-file-parser 1.9.2 → 1.9.4

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/binary.js CHANGED
@@ -33,7 +33,7 @@ var GarminTimeOffset = 631065600000;
33
33
  var monitoring_timestamp = 0;
34
34
 
35
35
  function readData(blob, fDef, startIndex, options) {
36
- if (fDef.type !== 'string' && fDef.type !== 'byte_array') {
36
+ if (fDef.endianAbility === true) {
37
37
  var temp = [];
38
38
  for (var i = 0; i < fDef.size; i++) {
39
39
  temp.push(blob[startIndex + i]);
@@ -44,10 +44,6 @@ function readData(blob, fDef, startIndex, options) {
44
44
 
45
45
  try {
46
46
  switch (fDef.type) {
47
- case 'sint8':
48
- return dataView.getInt8(0, fDef.littleEndian);
49
- case 'uint8':
50
- return dataView.getUnt8(0, fDef.littleEndian);
51
47
  case 'sint16':
52
48
  return dataView.getInt16(0, fDef.littleEndian);
53
49
  case 'uint16':
@@ -8,6 +8,8 @@ var _createClass = function () { function defineProperties(target, props) { for
8
8
 
9
9
  var _binary = require('./binary');
10
10
 
11
+ var _helper = require('./helper');
12
+
11
13
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12
14
 
13
15
  var FitParser = function () {
@@ -106,10 +108,6 @@ var FitParser = function () {
106
108
  var monitor_info = [];
107
109
  var lengths = [];
108
110
 
109
- var tempLaps = [];
110
- var tempLengths = [];
111
- var tempRecords = [];
112
-
113
111
  var loopIndex = headerLength;
114
112
  var messageTypes = [];
115
113
  var developerFields = [];
@@ -117,8 +115,8 @@ var FitParser = function () {
117
115
  var isModeCascade = this.options.mode === 'cascade';
118
116
  var isCascadeNeeded = isModeCascade || this.options.mode === 'both';
119
117
 
120
- var startDate = void 0,
121
- lastStopTimestamp = void 0;
118
+ var startDate = void 0;
119
+ var lastStopTimestamp = void 0;
122
120
  var pausedTime = 0;
123
121
 
124
122
  while (loopIndex < crcStart) {
@@ -131,20 +129,9 @@ var FitParser = function () {
131
129
 
132
130
  switch (messageType) {
133
131
  case 'lap':
134
- if (isCascadeNeeded) {
135
- message.records = tempRecords;
136
- tempRecords = [];
137
- tempLaps.push(message);
138
- message.lengths = tempLengths;
139
- tempLengths = [];
140
- }
141
132
  laps.push(message);
142
133
  break;
143
134
  case 'session':
144
- if (isCascadeNeeded) {
145
- message.laps = tempLaps;
146
- tempLaps = [];
147
- }
148
135
  sessions.push(message);
149
136
  break;
150
137
  case 'event':
@@ -158,9 +145,6 @@ var FitParser = function () {
158
145
  events.push(message);
159
146
  break;
160
147
  case 'length':
161
- if (isCascadeNeeded) {
162
- tempLengths.push(message);
163
- }
164
148
  lengths.push(message);
165
149
  break;
166
150
  case 'hrv':
@@ -173,9 +157,6 @@ var FitParser = function () {
173
157
  message.timer_time = 0;
174
158
  }
175
159
  records.push(message);
176
- if (isCascadeNeeded) {
177
- tempRecords.push(message);
178
- }
179
160
  break;
180
161
  case 'field_description':
181
162
  fieldDescriptions.push(message);
@@ -227,7 +208,7 @@ var FitParser = function () {
227
208
 
228
209
  if (isCascadeNeeded) {
229
210
  fitObj.activity = fitObj.activity || {};
230
- fitObj.activity.sessions = sessions;
211
+ fitObj.activity.sessions = (0, _helper.mapDataIntoSession)(sessions, laps, lengths, records);
231
212
  fitObj.activity.events = events;
232
213
  fitObj.activity.hrv = hrv;
233
214
  fitObj.activity.device_infos = devices;
package/dist/helper.js ADDED
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var mapDataIntoLap = exports.mapDataIntoLap = function mapDataIntoLap(inputLaps, lapKey, data) {
7
+ var laps = JSON.parse(JSON.stringify(inputLaps));
8
+ var index = 0;
9
+ for (var i = 0; i < laps.length; i++) {
10
+ var lap = laps[i];
11
+ var nextLap = laps[i + 1];
12
+ var tempData = [];
13
+ var lapStartTime = new Date(lap.startTime).getTime();
14
+ var nextLapStartTime = nextLap ? new Date(nextLap.start_time).getTime() : null;
15
+ for (var j = index; j < data.length; j++) {
16
+ var row = data[j];
17
+ if (nextLap) {
18
+ var timestamp = new Date(row.timestamp).getTime();
19
+ if (lapStartTime <= timestamp && nextLapStartTime >= timestamp) {
20
+ tempData.push(row);
21
+ } else if (nextLapStartTime < timestamp) {
22
+ laps[i][lapKey] = tempData;
23
+ index = j;
24
+ break;
25
+ }
26
+ } else {
27
+ tempData.push(row);
28
+ }
29
+ }
30
+
31
+ if (!laps[i][lapKey]) {
32
+ laps[i][lapKey] = tempData;
33
+ }
34
+ }
35
+
36
+ return laps;
37
+ };
38
+
39
+ var mapDataIntoSession = exports.mapDataIntoSession = function mapDataIntoSession(inputSessions, inputLaps, lengths, records) {
40
+ var sessions = JSON.parse(JSON.stringify(inputSessions));
41
+ var laps = JSON.parse(JSON.stringify(inputLaps));
42
+ laps = mapDataIntoLap(laps, 'lengths', lengths);
43
+ laps = mapDataIntoLap(laps, 'records', records);
44
+ var lapIndex = 0;
45
+ for (var i = 0; i < sessions.length; i++) {
46
+ var session = sessions[i];
47
+ var nextSession = sessions[i + 1];
48
+ var tempLaps = [];
49
+ var sessionStartTime = new Date(session.start_time).getTime();
50
+ var nextSessionStartTime = nextSession ? new Date(nextSession.start_time).getTime() : null;
51
+ for (var j = lapIndex; j < laps.length; j++) {
52
+ var lap = laps[j];
53
+ if (nextSession) {
54
+ var lapStartTime = new Date(lap.start_time).getTime();
55
+ if (sessionStartTime <= lapStartTime && nextSessionStartTime >= lapStartTime) {
56
+ tempLaps.push(lap);
57
+ } else if (nextSessionStartTime < lapStartTime) {
58
+ sessions[i].laps = tempLaps;
59
+ lapIndex = j;
60
+ break;
61
+ }
62
+ } else {
63
+ tempLaps.push(lap);
64
+ }
65
+ }
66
+
67
+ if (!sessions[i].laps) {
68
+ sessions[i].laps = tempLaps;
69
+ }
70
+ }
71
+ return sessions;
72
+ };
package/package.json CHANGED
@@ -9,6 +9,10 @@
9
9
  {
10
10
  "email": "jimmykane9@gmail.com",
11
11
  "name": "Dimitrios Kanellopoulos"
12
+ },
13
+ {
14
+ "email": "gie68i@gmail.com",
15
+ "name": "Wasa Choksuwattanasakul"
12
16
  }
13
17
  ],
14
18
  "description": "Parse your .FIT files easily, directly from JS (Garmin, Polar, Suunto)",
@@ -61,11 +65,13 @@
61
65
  },
62
66
  "scripts": {
63
67
  "example-output": "node_modules/gulp/bin/gulp.js; node examples/example.js examples/example.fit > examples/output.json",
64
- "example": "node_modules/gulp/bin/gulp.js; node examples/example.js examples/example.fit",
68
+ "example-output-summary-first": "node_modules/gulp/bin/gulp.js; node examples/example.js examples/triathlon_summary_first.fit > examples/output_summary_first.json",
69
+ "example-output-summary-last": "node_modules/gulp/bin/gulp.js; node examples/example.js examples/triathlon_summary_last.fit > examples/output_summary_last.json",
70
+ "example": "node_modules/gulp/bin/gulp.js; node examples/example.js examples/triathlon_summary_first.fit",
65
71
  "test": "node_modules/gulp/bin/gulp.js;",
66
72
  "build": "node_modules/gulp/bin/gulp.js babel"
67
73
  },
68
- "version": "1.9.2",
74
+ "version": "1.9.4",
69
75
  "dependencies": {
70
76
  "buffer": "^5.1.0"
71
77
  }
@@ -1,7 +0,0 @@
1
- <component name="ProjectDictionaryState">
2
- <dictionary name="dimtrioskanellopoulos">
3
- <words>
4
- <w>waypoint</w>
5
- </words>
6
- </dictionary>
7
- </component>
@@ -1,14 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="PYTHON_MODULE" version="4">
3
- <component name="NewModuleRootManager">
4
- <content url="file://$MODULE_DIR$">
5
- <excludeFolder url="file://$MODULE_DIR$/.idea" />
6
- <excludeFolder url="file://$MODULE_DIR$/dist" />
7
- </content>
8
- <orderEntry type="inheritedJdk" />
9
- <orderEntry type="sourceFolder" forTests="false" />
10
- </component>
11
- <component name="TestRunnerService">
12
- <option name="PROJECT_TEST_RUNNER" value="Unittests" />
13
- </component>
14
- </module>
@@ -1,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="Encoding" addBOMForNewFiles="with NO BOM" />
4
- </project>
@@ -1,62 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Eslint" enabled="true" level="ERROR" enabled_by_default="true" />
5
- <inspection_tool class="HtmlUnknownAttribute" enabled="true" level="WARNING" enabled_by_default="true">
6
- <option name="myValues">
7
- <value>
8
- <list size="21">
9
- <item index="0" class="java.lang.String" itemvalue="app-event-detail-activity" />
10
- <item index="1" class="java.lang.String" itemvalue="strokecolor" />
11
- <item index="2" class="java.lang.String" itemvalue="md-button" />
12
- <item index="3" class="java.lang.String" itemvalue="opened" />
13
- <item index="4" class="java.lang.String" itemvalue="md-header" />
14
- <item index="5" class="java.lang.String" itemvalue="color" />
15
- <item index="6" class="java.lang.String" itemvalue="label" />
16
- <item index="7" class="java.lang.String" itemvalue="md-raised-button" />
17
- <item index="8" class="java.lang.String" itemvalue="md-fab" />
18
- <item index="9" class="java.lang.String" itemvalue="mode" />
19
- <item index="10" class="java.lang.String" itemvalue="cols" />
20
- <item index="11" class="java.lang.String" itemvalue="rowheight" />
21
- <item index="12" class="java.lang.String" itemvalue="colspan" />
22
- <item index="13" class="java.lang.String" itemvalue="rowspan" />
23
- <item index="14" class="java.lang.String" itemvalue="md-tab-label" />
24
- <item index="15" class="java.lang.String" itemvalue="md-cols-sm" />
25
- <item index="16" class="java.lang.String" itemvalue="md-mini-fab" />
26
- <item index="17" class="java.lang.String" itemvalue="*matheadercelldef" />
27
- <item index="18" class="java.lang.String" itemvalue="*matcelldef" />
28
- <item index="19" class="java.lang.String" itemvalue="*matheaderrowdef" />
29
- <item index="20" class="java.lang.String" itemvalue="*matrowdef" />
30
- </list>
31
- </value>
32
- </option>
33
- <option name="myCustomValuesEnabled" value="true" />
34
- </inspection_tool>
35
- <inspection_tool class="HtmlUnknownTag" enabled="true" level="WARNING" enabled_by_default="true">
36
- <option name="myValues">
37
- <value>
38
- <list size="8">
39
- <item index="0" class="java.lang.String" itemvalue="nobr" />
40
- <item index="1" class="java.lang.String" itemvalue="noembed" />
41
- <item index="2" class="java.lang.String" itemvalue="comment" />
42
- <item index="3" class="java.lang.String" itemvalue="noscript" />
43
- <item index="4" class="java.lang.String" itemvalue="embed" />
44
- <item index="5" class="java.lang.String" itemvalue="script" />
45
- <item index="6" class="java.lang.String" itemvalue="md-card-title" />
46
- <item index="7" class="java.lang.String" itemvalue="md-card-subtitle" />
47
- </list>
48
- </value>
49
- </option>
50
- <option name="myCustomValuesEnabled" value="true" />
51
- </inspection_tool>
52
- <inspection_tool class="JSNonStrictModeUsed" enabled="true" level="WARNING" enabled_by_default="true" />
53
- <inspection_tool class="PyPackageRequirementsInspection" enabled="false" level="WARNING" enabled_by_default="false">
54
- <option name="ignoredPackages">
55
- <value>
56
- <list size="0" />
57
- </value>
58
- </option>
59
- </inspection_tool>
60
- <inspection_tool class="TsLint" enabled="true" level="ERROR" enabled_by_default="true" />
61
- </profile>
62
- </component>
package/.idea/misc.xml DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="JavaScriptSettings">
4
- <option name="languageLevel" value="ES6" />
5
- </component>
6
- <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.10 (~/bin/python-autovenv)" project-jdk-type="Python SDK" />
7
- </project>
package/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/easy-fit.iml" filepath="$PROJECT_DIR$/.idea/easy-fit.iml" />
6
- </modules>
7
- </component>
8
- </project>
package/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
5
- </component>
6
- </project>
@@ -1,589 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ChangeListManager">
4
- <list default="true" id="5d71e402-3899-4137-885e-a11fc7db07cc" name="Default" comment="" />
5
- <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
6
- <option name="SHOW_DIALOG" value="false" />
7
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
8
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
9
- <option name="LAST_RESOLUTION" value="IGNORE" />
10
- </component>
11
- <component name="FileEditorManager">
12
- <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
13
- <file pinned="false" current-in-tab="true">
14
- <entry file="file://$PROJECT_DIR$/package.json">
15
- <provider selected="true" editor-type-id="text-editor">
16
- <state relative-caret-position="15">
17
- <caret line="12" column="4" lean-forward="true" selection-start-line="12" selection-start-column="4" selection-end-line="12" selection-end-column="4" />
18
- </state>
19
- </provider>
20
- </entry>
21
- </file>
22
- <file pinned="false" current-in-tab="false">
23
- <entry file="file://$PROJECT_DIR$/package-lock.json">
24
- <provider selected="true" editor-type-id="text-editor" />
25
- </entry>
26
- </file>
27
- <file pinned="false" current-in-tab="false">
28
- <entry file="file://$PROJECT_DIR$/README.md">
29
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
30
- <state split_layout="SPLIT">
31
- <first_editor relative-caret-position="1125">
32
- <caret line="75" column="25" selection-start-line="75" selection-start-column="25" selection-end-line="75" selection-end-column="25" />
33
- </first_editor>
34
- <second_editor />
35
- </state>
36
- </provider>
37
- </entry>
38
- </file>
39
- <file pinned="false" current-in-tab="false">
40
- <entry file="file://$PROJECT_DIR$/src/fit-parser.js">
41
- <provider selected="true" editor-type-id="text-editor">
42
- <state relative-caret-position="75">
43
- <caret line="5" column="50" selection-start-line="5" selection-start-column="45" selection-end-line="5" selection-end-column="50" />
44
- </state>
45
- </provider>
46
- </entry>
47
- </file>
48
- <file pinned="false" current-in-tab="false">
49
- <entry file="file://$PROJECT_DIR$/.babelrc">
50
- <provider selected="true" editor-type-id="text-editor">
51
- <state relative-caret-position="15">
52
- <caret line="1" column="21" selection-start-line="1" selection-start-column="21" selection-end-line="1" selection-end-column="21" />
53
- </state>
54
- </provider>
55
- </entry>
56
- </file>
57
- <file pinned="false" current-in-tab="false">
58
- <entry file="file://$PROJECT_DIR$/gulpfile.babel.js">
59
- <provider selected="true" editor-type-id="text-editor">
60
- <state relative-caret-position="90">
61
- <caret line="11" column="20" selection-start-line="11" selection-start-column="20" selection-end-line="11" selection-end-column="20" />
62
- <folding>
63
- <element signature="e#0#24#0" expanded="true" />
64
- </folding>
65
- </state>
66
- </provider>
67
- </entry>
68
- </file>
69
- <file pinned="false" current-in-tab="false">
70
- <entry file="file://$PROJECT_DIR$/dist/binary.js">
71
- <provider selected="true" editor-type-id="text-editor">
72
- <state relative-caret-position="1860">
73
- <caret line="128" column="14" selection-start-line="128" selection-start-column="14" selection-end-line="128" selection-end-column="14" />
74
- </state>
75
- </provider>
76
- </entry>
77
- </file>
78
- <file pinned="false" current-in-tab="false">
79
- <entry file="file://$PROJECT_DIR$/src/binary.js">
80
- <provider selected="true" editor-type-id="text-editor">
81
- <state relative-caret-position="431">
82
- <caret line="40" column="36" lean-forward="true" selection-start-line="40" selection-start-column="36" selection-end-line="40" selection-end-column="36" />
83
- </state>
84
- </provider>
85
- </entry>
86
- </file>
87
- <file pinned="false" current-in-tab="false">
88
- <entry file="file://$PROJECT_DIR$/src/messages.js">
89
- <provider selected="true" editor-type-id="text-editor">
90
- <state relative-caret-position="75">
91
- <caret line="5" column="43" selection-start-line="5" selection-start-column="43" selection-end-line="5" selection-end-column="43" />
92
- </state>
93
- </provider>
94
- </entry>
95
- </file>
96
- <file pinned="false" current-in-tab="false">
97
- <entry file="file://$PROJECT_DIR$/src/fit.js">
98
- <provider selected="true" editor-type-id="text-editor">
99
- <state relative-caret-position="510">
100
- <caret line="34" column="2" selection-start-line="34" selection-start-column="2" selection-end-line="34" selection-end-column="2" />
101
- </state>
102
- </provider>
103
- </entry>
104
- </file>
105
- </leaf>
106
- </component>
107
- <component name="FindInProjectRecents">
108
- <findStrings>
109
- <find>rec</find>
110
- <find>stance_time_percent</find>
111
- <find>developerfields</find>
112
- <find>device_ind</find>
113
- <find>device_index</find>
114
- <find>antplus_device_type</find>
115
- <find>device_type</find>
116
- <find>evice_type</find>
117
- <find>device_inde</find>
118
- <find>ant_device_number</find>
119
- <find>device_infos</find>
120
- <find>device_t</find>
121
- <find>device in</find>
122
- <find>avg_stance_time_balance</find>
123
- <find>ratio</find>
124
- <find>expect(fitObject).to.have.property</find>
125
- <find>developer_</find>
126
- <find>field_descri</find>
127
- <find>fDefNo</find>
128
- <find>scale</find>
129
- <find>fDef</find>
130
- <find>date_time</find>
131
- <find>134</find>
132
- <find>fit_base_type</find>
133
- <find>deve</find>
134
- <find>developerFields</find>
135
- <find>base_typ</find>
136
- <find>baseTypeNo</find>
137
- <find>options</find>
138
- <find>readdata</find>
139
- </findStrings>
140
- <replaceStrings>
141
- <replace>FitParser</replace>
142
- <replace>fitParser</replace>
143
- </replaceStrings>
144
- <dirStrings>
145
- <dir>$PROJECT_DIR$/src</dir>
146
- </dirStrings>
147
- </component>
148
- <component name="Git.Settings">
149
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
150
- </component>
151
- <component name="IdeDocumentHistory">
152
- <option name="CHANGED_PATHS">
153
- <list>
154
- <option value="$PROJECT_DIR$/dist/fit.js" />
155
- <option value="$PROJECT_DIR$/examples/test.js" />
156
- <option value="$PROJECT_DIR$/src/easy-fit.js" />
157
- <option value="$PROJECT_DIR$/gulpfile.babel.js" />
158
- <option value="$PROJECT_DIR$/examples/example.js" />
159
- <option value="$PROJECT_DIR$/test/fit-parser-test.js" />
160
- <option value="$PROJECT_DIR$/CHANGELOG.md" />
161
- <option value="$PROJECT_DIR$/README.md" />
162
- <option value="$PROJECT_DIR$/src/fit-parser.js" />
163
- <option value="$PROJECT_DIR$/src/fit.js" />
164
- <option value="$PROJECT_DIR$/.babelrc" />
165
- <option value="$PROJECT_DIR$/src/binary.js" />
166
- <option value="$PROJECT_DIR$/package.json" />
167
- </list>
168
- </option>
169
- </component>
170
- <component name="ProjectFrameBounds" extendedState="6">
171
- <option name="x" value="1440" />
172
- <option name="y" value="-59" />
173
- <option name="width" value="1920" />
174
- <option name="height" value="1057" />
175
- </component>
176
- <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
177
- <component name="ProjectView">
178
- <navigator proportions="" version="1">
179
- <foldersAlwaysOnTop value="true" />
180
- </navigator>
181
- <panes>
182
- <pane id="Scope" />
183
- <pane id="ProjectPane">
184
- <subPane>
185
- <expand>
186
- <path>
187
- <item name="easy-fit" type="b2602c69:ProjectViewProjectNode" />
188
- <item name="easy-fit" type="462c0819:PsiDirectoryNode" />
189
- </path>
190
- <path>
191
- <item name="easy-fit" type="b2602c69:ProjectViewProjectNode" />
192
- <item name="easy-fit" type="462c0819:PsiDirectoryNode" />
193
- <item name="dist" type="462c0819:PsiDirectoryNode" />
194
- </path>
195
- <path>
196
- <item name="easy-fit" type="b2602c69:ProjectViewProjectNode" />
197
- <item name="easy-fit" type="462c0819:PsiDirectoryNode" />
198
- <item name="examples" type="462c0819:PsiDirectoryNode" />
199
- </path>
200
- <path>
201
- <item name="easy-fit" type="b2602c69:ProjectViewProjectNode" />
202
- <item name="easy-fit" type="462c0819:PsiDirectoryNode" />
203
- <item name="src" type="462c0819:PsiDirectoryNode" />
204
- </path>
205
- <path>
206
- <item name="easy-fit" type="b2602c69:ProjectViewProjectNode" />
207
- <item name="easy-fit" type="462c0819:PsiDirectoryNode" />
208
- <item name="test" type="462c0819:PsiDirectoryNode" />
209
- </path>
210
- <path>
211
- <item name="easy-fit" type="b2602c69:ProjectViewProjectNode" />
212
- <item name="easy-fit" type="462c0819:PsiDirectoryNode" />
213
- <item name="test-dist" type="462c0819:PsiDirectoryNode" />
214
- </path>
215
- </expand>
216
- <select />
217
- </subPane>
218
- </pane>
219
- </panes>
220
- </component>
221
- <component name="PropertiesComponent">
222
- <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
223
- <property name="WebServerToolWindowFactoryState" value="false" />
224
- <property name="js.buildTools.gulp.gulp_package_dir" value="$PROJECT_DIR$/node_modules/gulp" />
225
- <property name="last_opened_file_path" value="$PROJECT_DIR$" />
226
- <property name="node.js.detected.package.eslint" value="true" />
227
- <property name="node.js.detected.package.tslint" value="true" />
228
- <property name="node.js.path.for.package.eslint" value="project" />
229
- <property name="node.js.path.for.package.tslint" value="project" />
230
- <property name="node.js.selected.package.eslint" value="$PROJECT_DIR$/node_modules/eslint" />
231
- <property name="node.js.selected.package.tslint" value="(autodetect)" />
232
- <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
233
- <property name="nodejs_npm_path_reset_for_default_project" value="true" />
234
- <property name="nodejs_package_manager_path" value="npm" />
235
- <property name="settings.editor.selected.configurable" value="Settings.JavaScript.Linters.JSLint" />
236
- </component>
237
- <component name="PyConsoleOptionsProvider">
238
- <option name="myPythonConsoleState">
239
- <console-settings sdk-home="$USER_HOME$/bin/python-autovenv">
240
- <option name="mySdkHome" value="$USER_HOME$/bin/python-autovenv" />
241
- </console-settings>
242
- </option>
243
- </component>
244
- <component name="RunDashboard">
245
- <option name="ruleStates">
246
- <list>
247
- <RuleState>
248
- <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
249
- </RuleState>
250
- <RuleState>
251
- <option name="name" value="StatusDashboardGroupingRule" />
252
- </RuleState>
253
- </list>
254
- </option>
255
- </component>
256
- <component name="RunManager" selected="Gulp.js.babel-src">
257
- <configuration default="true" type="js.build_tools.gulp">
258
- <node-interpreter>project</node-interpreter>
259
- <node-options />
260
- <gulpfile />
261
- <tasks />
262
- <arguments />
263
- <envs />
264
- <method v="2" />
265
- </configuration>
266
- <configuration name="babel-src" type="js.build_tools.gulp" temporary="true">
267
- <node-interpreter>project</node-interpreter>
268
- <node-options />
269
- <gulpfile>$PROJECT_DIR$/gulpfile.babel.js</gulpfile>
270
- <tasks>
271
- <task>babel-src</task>
272
- </tasks>
273
- <arguments />
274
- <envs />
275
- <method v="2" />
276
- </configuration>
277
- <configuration name="build" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
278
- <package-json value="$PROJECT_DIR$/package.json" />
279
- <command value="run" />
280
- <scripts>
281
- <script value="build" />
282
- </scripts>
283
- <node-interpreter value="project" />
284
- <envs />
285
- <method v="2" />
286
- </configuration>
287
- <configuration name="example-output" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
288
- <package-json value="$PROJECT_DIR$/package.json" />
289
- <command value="run" />
290
- <scripts>
291
- <script value="example-output" />
292
- </scripts>
293
- <node-interpreter value="project" />
294
- <envs />
295
- <method v="2" />
296
- </configuration>
297
- <configuration name="example" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
298
- <package-json value="$PROJECT_DIR$/package.json" />
299
- <command value="run" />
300
- <scripts>
301
- <script value="example" />
302
- </scripts>
303
- <node-interpreter value="project" />
304
- <envs />
305
- <method v="2" />
306
- </configuration>
307
- <configuration name="test" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
308
- <package-json value="$PROJECT_DIR$/package.json" />
309
- <command value="run" />
310
- <scripts>
311
- <script value="test" />
312
- </scripts>
313
- <node-interpreter value="project" />
314
- <envs />
315
- <method v="2" />
316
- </configuration>
317
- <list>
318
- <item itemvalue="Gulp.js.babel-src" />
319
- <item itemvalue="npm.build" />
320
- <item itemvalue="npm.example" />
321
- <item itemvalue="npm.example-output" />
322
- <item itemvalue="npm.test" />
323
- </list>
324
- <recent_temporary>
325
- <list>
326
- <item itemvalue="npm.build" />
327
- <item itemvalue="npm.test" />
328
- <item itemvalue="npm.example-output" />
329
- <item itemvalue="npm.example" />
330
- <item itemvalue="Gulp.js.babel-src" />
331
- </list>
332
- </recent_temporary>
333
- </component>
334
- <component name="SvnConfiguration">
335
- <configuration />
336
- </component>
337
- <component name="TaskManager">
338
- <task active="true" id="Default" summary="Default task">
339
- <changelist id="5d71e402-3899-4137-885e-a11fc7db07cc" name="Default" comment="" />
340
- <created>1525354735092</created>
341
- <option name="number" value="Default" />
342
- <option name="presentableId" value="Default" />
343
- <updated>1525354735092</updated>
344
- <workItem from="1548419533092" duration="2873000" />
345
- <workItem from="1548597954255" duration="1949000" />
346
- <workItem from="1551442265756" duration="1718000" />
347
- <workItem from="1551463666745" duration="439000" />
348
- <workItem from="1551464121502" duration="9000" />
349
- <workItem from="1551464652585" duration="8552000" />
350
- <workItem from="1551962870206" duration="897000" />
351
- <workItem from="1552290562221" duration="597000" />
352
- <workItem from="1552317782257" duration="6448000" />
353
- <workItem from="1553167455246" duration="3606000" />
354
- <workItem from="1553608097923" duration="610000" />
355
- <workItem from="1553968389728" duration="886000" />
356
- <workItem from="1554147399084" duration="1241000" />
357
- <workItem from="1554185366216" duration="9000" />
358
- <workItem from="1554194424263" duration="2095000" />
359
- <workItem from="1554272801667" duration="593000" />
360
- <workItem from="1555617758561" duration="3851000" />
361
- <workItem from="1555838734447" duration="4966000" />
362
- <workItem from="1557515820189" duration="61000" />
363
- <workItem from="1559486591872" duration="1056000" />
364
- <workItem from="1559674562199" duration="4174000" />
365
- <workItem from="1559718823257" duration="5563000" />
366
- <workItem from="1559805060179" duration="698000" />
367
- <workItem from="1559805984711" duration="1402000" />
368
- <workItem from="1559807579168" duration="1256000" />
369
- </task>
370
- <servers />
371
- </component>
372
- <component name="TimeTrackingManager">
373
- <option name="totallyTimeSpent" value="55549000" />
374
- </component>
375
- <component name="ToolWindowManager">
376
- <frame x="1440" y="-59" width="1920" height="1057" extended-state="6" />
377
- <editor active="true" />
378
- <layout>
379
- <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.46321243" visible="true" weight="0.07740916" />
380
- <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
381
- <window_info id="Gulp" order="2" sideWeight="0.5131376" side_tool="true" visible="true" weight="0.1864139" />
382
- <window_info id="Favorites" order="3" side_tool="true" />
383
- <window_info id="npm" order="4" sideWeight="0.53678757" side_tool="true" visible="true" weight="0.07740916" />
384
- <window_info anchor="bottom" id="Message" order="0" />
385
- <window_info anchor="bottom" id="Find" order="1" weight="0.3299363" />
386
- <window_info anchor="bottom" id="Run" order="2" sideWeight="0.49964765" weight="0.265285" />
387
- <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
388
- <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
389
- <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
390
- <window_info anchor="bottom" id="TODO" order="6" />
391
- <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
392
- <window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" />
393
- <window_info anchor="bottom" id="Terminal" order="9" sideWeight="0.49964765" weight="0.2673575" />
394
- <window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.5003524" side_tool="true" weight="0.32866243" />
395
- <window_info anchor="bottom" id="Version Control" order="11" weight="0.32953367" />
396
- <window_info anchor="bottom" id="Python Console" order="12" />
397
- <window_info anchor="bottom" id="Messages" order="13" />
398
- <window_info anchor="right" id="Commander" order="0" weight="0.4" />
399
- <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
400
- <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
401
- <window_info anchor="right" id="SciView" order="3" />
402
- <window_info anchor="right" id="SvgViewer" order="4" />
403
- <window_info anchor="right" id="Database" order="5" />
404
- </layout>
405
- </component>
406
- <component name="TypeScriptGeneratedFilesManager">
407
- <option name="version" value="1" />
408
- </component>
409
- <component name="Vcs.Log.History.Properties">
410
- <option name="COLUMN_ORDER">
411
- <list>
412
- <option value="0" />
413
- <option value="2" />
414
- <option value="3" />
415
- <option value="1" />
416
- </list>
417
- </option>
418
- </component>
419
- <component name="XDebuggerManager">
420
- <breakpoint-manager>
421
- <breakpoints>
422
- <line-breakpoint enabled="true" type="javascript">
423
- <url>file://$PROJECT_DIR$/src/fit.js</url>
424
- <line>519</line>
425
- <option name="timeStamp" value="1" />
426
- </line-breakpoint>
427
- <line-breakpoint enabled="true" type="javascript">
428
- <url>file://$PROJECT_DIR$/src/binary.js</url>
429
- <line>242</line>
430
- <option name="timeStamp" value="2" />
431
- </line-breakpoint>
432
- <line-breakpoint enabled="true" type="javascript">
433
- <url>file://$PROJECT_DIR$/src/binary.js</url>
434
- <line>35</line>
435
- <properties lambdaOrdinal="-1" />
436
- <option name="timeStamp" value="4" />
437
- </line-breakpoint>
438
- </breakpoints>
439
- </breakpoint-manager>
440
- </component>
441
- <component name="editorHistoryManager">
442
- <entry file="file://$PROJECT_DIR$/dist/fit.js">
443
- <provider selected="true" editor-type-id="text-editor">
444
- <state relative-caret-position="6315">
445
- <caret line="421" column="19" selection-start-line="421" selection-start-column="13" selection-end-line="421" selection-end-column="19" />
446
- </state>
447
- </provider>
448
- </entry>
449
- <entry file="file://$PROJECT_DIR$/node_modules/buffer/index.js" />
450
- <entry file="file://$PROJECT_DIR$/node_modules/mocha/mocha.js">
451
- <provider selected="true" editor-type-id="text-editor">
452
- <state relative-caret-position="104415">
453
- <caret line="6961" column="9" selection-start-line="6961" selection-start-column="9" selection-end-line="6961" selection-end-column="9" />
454
- </state>
455
- </provider>
456
- </entry>
457
- <entry file="file://$PROJECT_DIR$/.eslintignore">
458
- <provider selected="true" editor-type-id="text-editor" />
459
- </entry>
460
- <entry file="file://$PROJECT_DIR$/.eslintrc">
461
- <provider selected="true" editor-type-id="text-editor" />
462
- </entry>
463
- <entry file="file://$PROJECT_DIR$/.gitignore">
464
- <provider selected="true" editor-type-id="text-editor" />
465
- </entry>
466
- <entry file="file://$PROJECT_DIR$/test-dist/easy-fit-test.js" />
467
- <entry file="file://$PROJECT_DIR$/.npmignore">
468
- <provider selected="true" editor-type-id="text-editor" />
469
- </entry>
470
- <entry file="file://$PROJECT_DIR$/examples/output.json">
471
- <provider selected="true" editor-type-id="text-editor" />
472
- </entry>
473
- <entry file="file://$PROJECT_DIR$/test-dist/fit-parser-test.js">
474
- <provider selected="true" editor-type-id="text-editor" />
475
- </entry>
476
- <entry file="file://$PROJECT_DIR$/examples/test.js">
477
- <provider selected="true" editor-type-id="text-editor">
478
- <state relative-caret-position="54600">
479
- <caret line="3640" column="3" selection-start-line="3640" selection-start-column="3" selection-end-line="3640" selection-end-column="3" />
480
- </state>
481
- </provider>
482
- </entry>
483
- <entry file="file://$PROJECT_DIR$/test/fit-parser-test.js">
484
- <provider selected="true" editor-type-id="text-editor">
485
- <state>
486
- <caret column="43" selection-start-column="43" selection-end-column="43" />
487
- </state>
488
- </provider>
489
- </entry>
490
- <entry file="file://$PROJECT_DIR$/examples/example.js">
491
- <provider selected="true" editor-type-id="text-editor">
492
- <state relative-caret-position="90">
493
- <caret line="6" column="33" selection-start-line="6" selection-start-column="5" selection-end-line="6" selection-end-column="33" />
494
- </state>
495
- </provider>
496
- </entry>
497
- <entry file="file://$PROJECT_DIR$/CONTRIBUTORS.md">
498
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
499
- <state split_layout="SPLIT">
500
- <first_editor />
501
- <second_editor />
502
- </state>
503
- </provider>
504
- </entry>
505
- <entry file="file://$PROJECT_DIR$/CHANGELOG.md">
506
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
507
- <state split_layout="SPLIT">
508
- <first_editor relative-caret-position="105">
509
- <caret line="7" column="20" selection-start-line="7" selection-start-column="20" selection-end-line="7" selection-end-column="20" />
510
- </first_editor>
511
- <second_editor />
512
- </state>
513
- </provider>
514
- </entry>
515
- <entry file="file://$PROJECT_DIR$/node_modules/undertaker/lib/set-task.js" />
516
- <entry file="file://$PROJECT_DIR$/package-lock.json">
517
- <provider selected="true" editor-type-id="text-editor" />
518
- </entry>
519
- <entry file="file://$PROJECT_DIR$/README.md">
520
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
521
- <state split_layout="SPLIT">
522
- <first_editor relative-caret-position="1125">
523
- <caret line="75" column="25" selection-start-line="75" selection-start-column="25" selection-end-line="75" selection-end-column="25" />
524
- </first_editor>
525
- <second_editor />
526
- </state>
527
- </provider>
528
- </entry>
529
- <entry file="file://$PROJECT_DIR$/src/fit-parser.js">
530
- <provider selected="true" editor-type-id="text-editor">
531
- <state relative-caret-position="75">
532
- <caret line="5" column="50" selection-start-line="5" selection-start-column="45" selection-end-line="5" selection-end-column="50" />
533
- </state>
534
- </provider>
535
- </entry>
536
- <entry file="file://$PROJECT_DIR$/.babelrc">
537
- <provider selected="true" editor-type-id="text-editor">
538
- <state relative-caret-position="15">
539
- <caret line="1" column="21" selection-start-line="1" selection-start-column="21" selection-end-line="1" selection-end-column="21" />
540
- </state>
541
- </provider>
542
- </entry>
543
- <entry file="file://$PROJECT_DIR$/gulpfile.babel.js">
544
- <provider selected="true" editor-type-id="text-editor">
545
- <state relative-caret-position="90">
546
- <caret line="11" column="20" selection-start-line="11" selection-start-column="20" selection-end-line="11" selection-end-column="20" />
547
- <folding>
548
- <element signature="e#0#24#0" expanded="true" />
549
- </folding>
550
- </state>
551
- </provider>
552
- </entry>
553
- <entry file="file://$PROJECT_DIR$/dist/binary.js">
554
- <provider selected="true" editor-type-id="text-editor">
555
- <state relative-caret-position="1860">
556
- <caret line="128" column="14" selection-start-line="128" selection-start-column="14" selection-end-line="128" selection-end-column="14" />
557
- </state>
558
- </provider>
559
- </entry>
560
- <entry file="file://$PROJECT_DIR$/src/messages.js">
561
- <provider selected="true" editor-type-id="text-editor">
562
- <state relative-caret-position="75">
563
- <caret line="5" column="43" selection-start-line="5" selection-start-column="43" selection-end-line="5" selection-end-column="43" />
564
- </state>
565
- </provider>
566
- </entry>
567
- <entry file="file://$PROJECT_DIR$/src/fit.js">
568
- <provider selected="true" editor-type-id="text-editor">
569
- <state relative-caret-position="510">
570
- <caret line="34" column="2" selection-start-line="34" selection-start-column="2" selection-end-line="34" selection-end-column="2" />
571
- </state>
572
- </provider>
573
- </entry>
574
- <entry file="file://$PROJECT_DIR$/src/binary.js">
575
- <provider selected="true" editor-type-id="text-editor">
576
- <state relative-caret-position="431">
577
- <caret line="40" column="36" lean-forward="true" selection-start-line="40" selection-start-column="36" selection-end-line="40" selection-end-column="36" />
578
- </state>
579
- </provider>
580
- </entry>
581
- <entry file="file://$PROJECT_DIR$/package.json">
582
- <provider selected="true" editor-type-id="text-editor">
583
- <state relative-caret-position="15">
584
- <caret line="12" column="4" lean-forward="true" selection-start-line="12" selection-start-column="4" selection-end-line="12" selection-end-column="4" />
585
- </state>
586
- </provider>
587
- </entry>
588
- </component>
589
- </project>