gtfs 4.11.1 → 4.11.2
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 +11 -0
- package/README.md +12 -19
- package/lib/export.js +42 -32
- package/lib/geojson-utils.js +9 -0
- package/lib/gtfs/locations.js +32 -0
- package/lib/gtfs.js +4 -0
- package/lib/import.js +41 -14
- package/models/gtfs/agency.js +9 -8
- package/models/gtfs/areas.js +3 -2
- package/models/gtfs/attributions.js +9 -8
- package/models/gtfs/booking-rules.js +11 -10
- package/models/gtfs/calendar-dates.js +3 -2
- package/models/gtfs/calendar.js +2 -1
- package/models/gtfs/fare-attributes.js +4 -3
- package/models/gtfs/fare-leg-rules.js +8 -7
- package/models/gtfs/fare-media.js +3 -2
- package/models/gtfs/fare-products.js +5 -4
- package/models/gtfs/fare-rules.js +6 -5
- package/models/gtfs/fare-transfer-rules.js +5 -4
- package/models/gtfs/feed-info.js +8 -7
- package/models/gtfs/frequencies.js +4 -3
- package/models/gtfs/levels.js +3 -2
- package/models/gtfs/location-group-stops.js +3 -2
- package/models/gtfs/location-groups.js +3 -2
- package/models/gtfs/locations.js +12 -0
- package/models/gtfs/networks.js +3 -2
- package/models/gtfs/pathways.js +6 -5
- package/models/gtfs/route-networks.js +3 -2
- package/models/gtfs/routes.js +10 -9
- package/models/gtfs/shapes.js +2 -1
- package/models/gtfs/stop-areas.js +3 -2
- package/models/gtfs/stop-times.js +11 -10
- package/models/gtfs/stops.js +12 -11
- package/models/gtfs/timeframes.js +5 -4
- package/models/gtfs/transfers.js +7 -6
- package/models/gtfs/translations.js +8 -7
- package/models/gtfs/trips.js +8 -7
- package/models/gtfs-plus/calendar-attributes.js +3 -2
- package/models/gtfs-plus/directions.js +3 -2
- package/models/gtfs-plus/route-attributes.js +2 -1
- package/models/gtfs-plus/stop-attributes.js +5 -4
- package/models/gtfs-realtime/service-alert-targets.js +3 -3
- package/models/gtfs-realtime/service-alerts.js +5 -5
- package/models/gtfs-realtime/stop-time-updates.js +7 -7
- package/models/gtfs-realtime/trip-updates.js +8 -8
- package/models/gtfs-realtime/vehicle-positions.js +12 -12
- package/models/gtfs-ride/board-alight.js +5 -4
- package/models/gtfs-ride/ride-feed-info.js +3 -2
- package/models/gtfs-ride/rider-trip.js +9 -8
- package/models/gtfs-ride/ridership.js +8 -7
- package/models/gtfs-ride/trip-capacity.js +4 -3
- package/models/models.js +2 -0
- package/models/non-standard/timetable-notes-references.js +6 -5
- package/models/non-standard/timetable-notes.js +4 -3
- package/models/non-standard/timetable-pages.js +4 -3
- package/models/non-standard/timetable-stop-order.js +3 -2
- package/models/non-standard/timetables.js +10 -9
- package/models/non-standard/trips-dated-vehicle-journey.js +4 -3
- package/models/ods/deadhead-times.js +6 -5
- package/models/ods/deadheads.js +9 -8
- package/models/ods/ops-locations.js +5 -4
- package/models/ods/run-events.js +7 -6
- package/models/ods/runs-pieces.js +5 -4
- package/package.json +4 -4
- package/test/mocha/export-gtfs.js +5 -2
- package/test/mocha/get-locations.js +71 -0
- package/test/mocha/import-gtfs.js +4 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/* eslint-env mocha */
|
|
2
|
+
|
|
3
|
+
import should from 'should';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { writeFile } from 'node:fs/promises';
|
|
6
|
+
|
|
7
|
+
import config from '../test-config.js';
|
|
8
|
+
import { openDb, closeDb, importGtfs, getLocations } from '../../index.js';
|
|
9
|
+
import { unzip, prepDirectory } from '../../lib/file-utils.js';
|
|
10
|
+
|
|
11
|
+
const temporaryDir = path.join(import.meta.dirname, '../fixture/tmp2/');
|
|
12
|
+
|
|
13
|
+
const locationsConfig = {
|
|
14
|
+
agencies: [
|
|
15
|
+
{
|
|
16
|
+
path: temporaryDir,
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
verbose: false,
|
|
20
|
+
sqlitePath: '/tmp/locations',
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
describe('getLocations():', () => {
|
|
24
|
+
before(async () => {
|
|
25
|
+
openDb(locationsConfig);
|
|
26
|
+
|
|
27
|
+
// Add locations.geojson to test GTFS dataset
|
|
28
|
+
const temporaryDir = path.join(import.meta.dirname, '../fixture/tmp2/');
|
|
29
|
+
await prepDirectory(temporaryDir);
|
|
30
|
+
await unzip(config.agencies[0].path, temporaryDir);
|
|
31
|
+
|
|
32
|
+
const filePath = path.join(temporaryDir, 'locations.geojson');
|
|
33
|
+
const fileText = JSON.stringify({
|
|
34
|
+
type: 'FeatureCollection',
|
|
35
|
+
features: [
|
|
36
|
+
{
|
|
37
|
+
id: '1',
|
|
38
|
+
type: 'Feature',
|
|
39
|
+
properties: {
|
|
40
|
+
stop_desc: 'This is a stop for testing',
|
|
41
|
+
stop_name: 'Test Stop 1',
|
|
42
|
+
},
|
|
43
|
+
geometry: {
|
|
44
|
+
type: 'Point',
|
|
45
|
+
coordinates: [
|
|
46
|
+
[
|
|
47
|
+
[-94.7805702, 44.4560958],
|
|
48
|
+
[-94.7805608, 44.4559928],
|
|
49
|
+
[-94.7805218, 44.4559649],
|
|
50
|
+
],
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
});
|
|
56
|
+
await writeFile(filePath, fileText);
|
|
57
|
+
|
|
58
|
+
await importGtfs(locationsConfig);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
after(() => {
|
|
62
|
+
const db = openDb(locationsConfig);
|
|
63
|
+
closeDb(db);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('should return a single location', () => {
|
|
67
|
+
const results = getLocations({});
|
|
68
|
+
should.exists(results);
|
|
69
|
+
results.should.have.length(1);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -119,7 +119,10 @@ describe('importGtfs():', function () {
|
|
|
119
119
|
|
|
120
120
|
await Promise.all(
|
|
121
121
|
models.map((model) => {
|
|
122
|
-
const filePath = path.join(
|
|
122
|
+
const filePath = path.join(
|
|
123
|
+
temporaryDir,
|
|
124
|
+
`${model.filenameBase}.${model.filenameExtension}`,
|
|
125
|
+
);
|
|
123
126
|
|
|
124
127
|
// GTFS has optional files
|
|
125
128
|
if (!existsSync(filePath)) {
|