mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-12 16:52:50 +00:00
make more cdn's and API urls/settings configurable
* CDNs for OCI, NSI, etc. * OSM API (URL and oauth API settings) * taginfo API * nominatim API
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
const presetsCdnUrl = 'https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@{presets_version}/';
|
||||
const presetsCdnVersion = '3';
|
||||
|
||||
export {
|
||||
presetsCdnUrl,
|
||||
presetsCdnVersion
|
||||
};
|
||||
30
config/id.js
Normal file
30
config/id.js
Normal file
@@ -0,0 +1,30 @@
|
||||
// cdns for external data packages
|
||||
const presetsCdnUrl = 'https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@{presets_version}/';
|
||||
const ociCdnUrl = 'https://cdn.jsdelivr.net/npm/osm-community-index@{version}/';
|
||||
const wmfSitematrixCdnUrl = 'https://cdn.jsdelivr.net/npm/wmf-sitematrix@{version}/';
|
||||
const nsiCdnUrl = 'https://cdn.jsdelivr.net/npm/name-suggestion-index@{version}/';
|
||||
|
||||
// api urls and settings
|
||||
const osmApiConnections = [
|
||||
{ // "live" db
|
||||
url: 'https://www.openstreetmap.org',
|
||||
client_id: '0tmNTmd0Jo1dQp4AUmMBLtGiD9YpMuXzHefitcuVStc',
|
||||
client_secret: 'BTlNrNxIPitHdL4sP2clHw5KLoee9aKkA7dQbc0Bj7Q'
|
||||
}, { // "dev" db
|
||||
url: 'https://api06.dev.openstreetmap.org',
|
||||
client_id: 'Ee1wWJ6UlpERbF6BfTNOpwn0R8k_06mvMXdDUkeHMgw',
|
||||
client_secret: 'OnfWFC-JkZNHyYdr_viNn_h_RTZXRslKcUxllOXqf5g'
|
||||
}
|
||||
];
|
||||
const taginfoApiUrl = 'https://taginfo.openstreetmap.org/api/4/';
|
||||
const nominatimApiUrl = 'https://nominatim.openstreetmap.org/';
|
||||
|
||||
export {
|
||||
presetsCdnUrl,
|
||||
ociCdnUrl,
|
||||
wmfSitematrixCdnUrl,
|
||||
nsiCdnUrl,
|
||||
osmApiConnections,
|
||||
taginfoApiUrl,
|
||||
nominatimApiUrl,
|
||||
};
|
||||
11
dist/index.html
vendored
11
dist/index.html
vendored
@@ -43,17 +43,6 @@
|
||||
} else {
|
||||
var context = iD.coreContext()
|
||||
.assetPath('')
|
||||
.apiConnections([
|
||||
{
|
||||
url: 'https://www.openstreetmap.org',
|
||||
client_id: '0tmNTmd0Jo1dQp4AUmMBLtGiD9YpMuXzHefitcuVStc',
|
||||
client_secret: 'BTlNrNxIPitHdL4sP2clHw5KLoee9aKkA7dQbc0Bj7Q'
|
||||
}, {
|
||||
url: 'https://api06.dev.openstreetmap.org',
|
||||
client_id: 'Ee1wWJ6UlpERbF6BfTNOpwn0R8k_06mvMXdDUkeHMgw',
|
||||
client_secret: 'OnfWFC-JkZNHyYdr_viNn_h_RTZXRslKcUxllOXqf5g'
|
||||
}
|
||||
])
|
||||
.containerNode(container);
|
||||
context.init();
|
||||
|
||||
|
||||
11
index.html
11
index.html
@@ -43,17 +43,6 @@
|
||||
} else {
|
||||
var context = iD.coreContext()
|
||||
.assetPath('dist/')
|
||||
.apiConnections([
|
||||
{
|
||||
url: 'https://www.openstreetmap.org',
|
||||
client_id: '0tmNTmd0Jo1dQp4AUmMBLtGiD9YpMuXzHefitcuVStc',
|
||||
client_secret: 'BTlNrNxIPitHdL4sP2clHw5KLoee9aKkA7dQbc0Bj7Q'
|
||||
}, {
|
||||
url: 'https://api06.dev.openstreetmap.org',
|
||||
client_id: 'Ee1wWJ6UlpERbF6BfTNOpwn0R8k_06mvMXdDUkeHMgw',
|
||||
client_secret: 'OnfWFC-JkZNHyYdr_viNn_h_RTZXRslKcUxllOXqf5g'
|
||||
}
|
||||
])
|
||||
.containerNode(container);
|
||||
window.context = window.id = context; // for debugging
|
||||
context.init();
|
||||
|
||||
@@ -103,14 +103,6 @@ export function coreContext() {
|
||||
return context;
|
||||
};
|
||||
|
||||
/* connection options for source switcher (optional) */
|
||||
let _apiConnections;
|
||||
context.apiConnections = function(val) {
|
||||
if (!arguments.length) return _apiConnections;
|
||||
_apiConnections = val;
|
||||
return context;
|
||||
};
|
||||
|
||||
|
||||
// A string or array or locale codes to prefer over the browser's settings
|
||||
context.locale = function(locale) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import parseVersion from 'vparse';
|
||||
import { presetsCdnUrl, presetsCdnVersion } from '../../config/cdn.js';
|
||||
import { presetsCdnUrl, ociCdnUrl, wmfSitematrixCdnUrl } from '../../config/id.js';
|
||||
// Double check this resolves to iD's `package.json`
|
||||
import packageJSON from '../../package.json';
|
||||
|
||||
@@ -13,7 +13,8 @@ export { _mainFileFetcher as fileFetcher };
|
||||
export function coreFileFetcher() {
|
||||
const ociVersion = packageJSON.dependencies['osm-community-index'] || packageJSON.devDependencies['osm-community-index'];
|
||||
const v = parseVersion(ociVersion);
|
||||
const vMinor = `${v.major}.${v.minor}`;
|
||||
const ociVersionMinor = `${v.major}.${v.minor}`;
|
||||
const presetsVersionMajor = parseVersion(packageJSON.devDependencies['@openstreetmap/id-tagging-schema']).major;
|
||||
|
||||
let _this = {};
|
||||
let _inflight = {};
|
||||
@@ -24,21 +25,21 @@ export function coreFileFetcher() {
|
||||
'keepRight': 'data/keepRight.min.json',
|
||||
'languages': 'data/languages.min.json',
|
||||
'locales': 'locales/index.min.json',
|
||||
'oci_defaults': `https://cdn.jsdelivr.net/npm/osm-community-index@${vMinor}/dist/defaults.min.json`,
|
||||
'oci_features': `https://cdn.jsdelivr.net/npm/osm-community-index@${vMinor}/dist/featureCollection.min.json`,
|
||||
'oci_resources': `https://cdn.jsdelivr.net/npm/osm-community-index@${vMinor}/dist/resources.min.json`,
|
||||
'presets_package': presetsCdnUrl.replace('{presets_version}', presetsCdnVersion) + 'package.json',
|
||||
'phone_formats': 'data/phone_formats.min.json',
|
||||
'qa_data': 'data/qa_data.min.json',
|
||||
'shortcuts': 'data/shortcuts.min.json',
|
||||
'territory_languages': 'data/territory_languages.min.json',
|
||||
'oci_defaults': ociCdnUrl.replace('{version}', ociVersionMinor) + 'dist/defaults.min.json',
|
||||
'oci_features': ociCdnUrl.replace('{version}', ociVersionMinor) + 'dist/featureCollection.min.json',
|
||||
'oci_resources': ociCdnUrl.replace('{version}', ociVersionMinor) + 'dist/resources.min.json',
|
||||
'presets_package': presetsCdnUrl.replace('{presets_version}', presetsVersionMajor) + 'package.json',
|
||||
'deprecated': presetsCdnUrl + 'dist/deprecated.min.json',
|
||||
'discarded': presetsCdnUrl + 'dist/discarded.min.json',
|
||||
'preset_categories': presetsCdnUrl + 'dist/preset_categories.min.json',
|
||||
'preset_defaults': presetsCdnUrl + 'dist/preset_defaults.min.json',
|
||||
'preset_fields': presetsCdnUrl + 'dist/fields.min.json',
|
||||
'preset_presets': presetsCdnUrl + 'dist/presets.min.json',
|
||||
'phone_formats': 'data/phone_formats.min.json',
|
||||
'qa_data': 'data/qa_data.min.json',
|
||||
'shortcuts': 'data/shortcuts.min.json',
|
||||
'territory_languages': 'data/territory_languages.min.json',
|
||||
'wmf_sitematrix': 'https://cdn.jsdelivr.net/npm/wmf-sitematrix@0.1/wikipedia.min.json'
|
||||
'wmf_sitematrix': wmfSitematrixCdnUrl.replace('{version}', '0.1') + 'wikipedia.min.json'
|
||||
};
|
||||
|
||||
let _cachedData = {};
|
||||
|
||||
@@ -4,8 +4,10 @@ import RBush from 'rbush';
|
||||
import { geoExtent } from '../geo';
|
||||
import { utilQsString } from '../util';
|
||||
|
||||
import { nominatimApiUrl } from '../../config/id.js';
|
||||
|
||||
var apibase = 'https://nominatim.openstreetmap.org/';
|
||||
|
||||
var apibase = nominatimApiUrl;
|
||||
var _inflight = {};
|
||||
var _nominatimCache;
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ import parseVersion from 'vparse';
|
||||
import { fileFetcher, locationManager } from '../core';
|
||||
import { presetManager } from '../presets';
|
||||
|
||||
import { nsiCdnUrl } from '../../config/id.js';
|
||||
|
||||
// Make very sure this resolves to iD's `package.json`
|
||||
// If you mess up the `../`s, the resolver may import another random package.json from somewhere else.
|
||||
import packageJSON from '../../package.json';
|
||||
@@ -47,14 +49,15 @@ function setNsiSources() {
|
||||
const nsiVersion = packageJSON.dependencies['name-suggestion-index'] || packageJSON.devDependencies['name-suggestion-index'];
|
||||
const v = parseVersion(nsiVersion);
|
||||
const vMinor = `${v.major}.${v.minor}`;
|
||||
const cdn = nsiCdnUrl.replace('{version}', vMinor);
|
||||
const sources = {
|
||||
'nsi_data': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/nsi.min.json`,
|
||||
'nsi_dissolved': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/dissolved.min.json`,
|
||||
'nsi_features': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/featureCollection.min.json`,
|
||||
'nsi_generics': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/genericWords.min.json`,
|
||||
'nsi_presets': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/presets/nsi-id-presets.min.json`,
|
||||
'nsi_replacements': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/replacements.min.json`,
|
||||
'nsi_trees': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/trees.min.json`
|
||||
'nsi_data': cdn + 'dist/nsi.min.json',
|
||||
'nsi_dissolved': cdn + 'dist/dissolved.min.json',
|
||||
'nsi_features': cdn + 'dist/featureCollection.min.json',
|
||||
'nsi_generics': cdn + 'dist/genericWords.min.json',
|
||||
'nsi_presets': cdn + 'dist/presets/nsi-id-presets.min.json',
|
||||
'nsi_replacements': cdn + 'dist/replacements.min.json',
|
||||
'nsi_trees': cdn + 'dist/trees.min.json'
|
||||
};
|
||||
|
||||
let fileMap = fileFetcher.fileMap();
|
||||
|
||||
@@ -10,21 +10,24 @@ import { geoExtent, geoRawMercator, geoVecAdd, geoZoomToScale } from '../geo';
|
||||
import { osmEntity, osmNode, osmNote, osmRelation, osmWay } from '../osm';
|
||||
import { utilArrayChunk, utilArrayGroupBy, utilArrayUniq, utilObjectOmit, utilRebind, utilTiler, utilQsString } from '../util';
|
||||
|
||||
import { osmApiConnections } from '../../config/id.js';
|
||||
|
||||
|
||||
var tiler = utilTiler();
|
||||
var dispatch = d3_dispatch('apiStatusChange', 'authLoading', 'authDone', 'change', 'loading', 'loaded', 'loadedNotes');
|
||||
|
||||
var urlroot = 'https://www.openstreetmap.org';
|
||||
var urlroot = osmApiConnections[0].url;
|
||||
var redirectPath = window.location.origin + window.location.pathname;
|
||||
var oauth = osmAuth({
|
||||
url: urlroot,
|
||||
client_id: '0tmNTmd0Jo1dQp4AUmMBLtGiD9YpMuXzHefitcuVStc',
|
||||
client_secret: 'BTlNrNxIPitHdL4sP2clHw5KLoee9aKkA7dQbc0Bj7Q',
|
||||
client_id: osmApiConnections[0].client_id,
|
||||
client_secret: osmApiConnections[0].client_secret,
|
||||
scope: 'read_prefs write_prefs write_api read_gpx write_notes',
|
||||
redirect_uri: redirectPath + 'land.html',
|
||||
loading: authLoading,
|
||||
done: authDone
|
||||
});
|
||||
var _apiConnections = osmApiConnections;
|
||||
|
||||
// hardcode default block of Google Maps
|
||||
var _imageryBlocklists = [/.*\.google(apis)?\..*\/(vt|kh)[\?\/].*([xyz]=.*){3}.*/];
|
||||
@@ -1276,6 +1279,14 @@ export default {
|
||||
},
|
||||
|
||||
|
||||
/* connection options for source switcher (optional) */
|
||||
apiConnections: function(val) {
|
||||
if (!arguments.length) return _apiConnections;
|
||||
_apiConnections = val;
|
||||
return this;
|
||||
},
|
||||
|
||||
|
||||
switch: function(newOptions) {
|
||||
urlroot = newOptions.url;
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@ import { json as d3_json } from 'd3-fetch';
|
||||
import { utilObjectOmit, utilQsString } from '../util';
|
||||
import { localizer } from '../core/localizer';
|
||||
|
||||
import { taginfoApiUrl } from '../../config/id.js';
|
||||
|
||||
var apibase = 'https://taginfo.openstreetmap.org/api/4/';
|
||||
var apibase = taginfoApiUrl;
|
||||
var _inflight = {};
|
||||
var _popularKeys = {};
|
||||
var _taginfoCache = {};
|
||||
|
||||
@@ -293,7 +293,7 @@ export function uiInit(context) {
|
||||
.attr('class', 'user-list')
|
||||
.call(uiContributors(context));
|
||||
|
||||
var apiConnections = context.apiConnections();
|
||||
var apiConnections = context.connection().apiConnections();
|
||||
if (apiConnections && apiConnections.length > 1) {
|
||||
aboutList
|
||||
.append('li')
|
||||
|
||||
@@ -48,8 +48,8 @@
|
||||
"@mapbox/sexagesimal": "1.2.0",
|
||||
"@mapbox/vector-tile": "^1.3.1",
|
||||
"@tmcw/togeojson": "^5.2.1",
|
||||
"@turf/bbox-clip": "^6.0.0",
|
||||
"@turf/bbox": "^6.0.0",
|
||||
"@turf/bbox-clip": "^6.0.0",
|
||||
"abortcontroller-polyfill": "^1.4.0",
|
||||
"aes-js": "^3.1.2",
|
||||
"alif-toolkit": "^1.2.9",
|
||||
@@ -75,6 +75,7 @@
|
||||
"@fortawesome/free-solid-svg-icons": "~6.2.0",
|
||||
"@ideditor/temaki": "~5.1.0",
|
||||
"@mapbox/maki": "^8.0.0",
|
||||
"@openstreetmap/id-tagging-schema": "^3.5.1",
|
||||
"autoprefixer": "^10.0.1",
|
||||
"btoa": "^1.2.1",
|
||||
"chai": "^4.3.4",
|
||||
|
||||
Reference in New Issue
Block a user