Skip to content

Commit

Permalink
Merge pull request #2 from IGN-CNIG/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
gdtel-cnig-develop authored Mar 28, 2022
2 parents e375e94 + 26a057e commit c21785a
Show file tree
Hide file tree
Showing 3,722 changed files with 39,943 additions and 109,743 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*.classpath
*.externalToolBuilders
.atomignore
.sonarlint
node
node_modules
target
Expand All @@ -13,7 +14,11 @@ doc
build
dist
index.js
package-lock.json
index-*.js
entry-points-plugins.json
*~
.vscode
.vscode
/.metadata/
/.sonarlint/
package-lock.json
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
# API IGN
# API CNIG

API IGN es una herramienta que permite integrar de una forma muy sencilla un visualizador de mapas interactivo en cualquier página web y configurarlo consumiendo ficheros WMC, servicios WMS y WMTS, servicios WFS, ficheros KML, etc. Además, provee la capacidad de añadir una gran cantidad de herramientas y controles.
API CNIG es una herramienta que permite integrar de una forma muy sencilla un visualizador de mapas interactivo en cualquier página web y configurarlo consumiendo ficheros WMC, servicios WMS y WMTS, servicios WFS, ficheros KML, etc. Además, provee la capacidad de añadir una gran cantidad de herramientas y controles.

Para adaptarse a las necesidades de los usuarios y ser mucho más flexible, API IGN cuenta con dos APIs. De esta manera, es el propio usuario el que selecciona la que más se adapta a las necesidades que necesite cubrir en cada momento:
Para adaptarse a las necesidades de los usuarios y ser mucho más flexible, API CNIG cuenta con dos APIs. De esta manera, es el propio usuario el que selecciona la que más se adapta a las necesidades que necesite cubrir en cada momento:

- A través de una API REST muy sencilla y documentada permite incluir un visualizador interactivo en cualquier página web sin necesidad de disponer de conocimientos específicos en programación ni en el ámbito de los SIG.
- A través de una API JavaScript que permite crear desde visualizadores de mapas básico hasta otros de mayor complejidad.

## Componentes

La arquitectura de API IGN está compuesta por los siguientes componentes:
La arquitectura de API CNIG está compuesta por los siguientes componentes:

- [api-ign-js](/api-ign-js) Librería JavaScript que provee una API para facilitar la creación de visores de mapas.
- [api-ign-parent](/api-ign-parent) Módulo padre que hace uso de maven para compilar y generar el war final de api-ign.
- [api-ign-parent](/api-ign-parent) Módulo padre que hace uso de maven para compilar y generar el war final de api-core.
- [api-ign-proxy](/api-ign-proxy) Proxy para realizar peticiones POST por si el [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) no está habilitado.
- [api-ign-rest](/api-ign-rest) Servicio Web con API RESTful que genera el código JS necesario para generar un visor con la configuración especificada por parámetros.

## Plugins

El API IGN se puede extender en base al desarrollo de plugins.
El API CNIG se puede extender en base al desarrollo de plugins.

Por defecto vienen incorporados los siguientes plugins:

Expand Down
28 changes: 21 additions & 7 deletions api-ign-js/.eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,36 @@
"Image": true,
"Draggabilly": true,
"XMLSerializer": true,
"File": true,
"Response": true
},
"rules": {
"no-underscore-dangle": ["error", { "allowAfterThis": true }],
"import/extensions": ["error", "never"],
"no-underscore-dangle": [
"error",
{
"allowAfterThis": true
}
],
"import/extensions": [
"error",
"never"
],
"import/no-unresolved": "off",
"prefer-destructuring": "off",
"arrow-body-style": "off",
"no-unused-vars": ["error", {
"vars": "all",
"args": "none"
}],
"no-unused-vars": [
"error",
{
"vars": "all",
"args": "none"
}
],
"class-methods-use-this": "off",
"no-case-declarations": "off",
"import/no-mutable-exports": "off",
"no-template-curly-in-string": "off",
"import/no-duplicates": "off",
"import/no-named-default": "off",
"no-bitwise": "off"
}
}
}
2 changes: 1 addition & 1 deletion api-ign-js/config/jsdoc/api/conf.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"custom": {
"titleApp": "API IGN Core",
"titleApp": "API CNIG Core",
"versionApp": "1.0.0"
},
"opts": {
Expand Down
10 changes: 5 additions & 5 deletions api-ign-js/config/jsdoc/api/index.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# API IGN
# API CNIG

API IGN es una herramienta que permite integrar de una forma muy sencilla un visualizador de mapas interactivo en cualquier página web y configurarlo consumiendo ficheros WMC, servicios WMS, servicios WFS, ficheros KML, etc. Además, provee la capacidad de añadir una gran cantidad de herramientas y controles.
API CNIG es una herramienta que permite integrar de una forma muy sencilla un visualizador de mapas interactivo en cualquier página web y configurarlo consumiendo ficheros WMC, servicios WMS, servicios WFS, ficheros KML, etc. Además, provee la capacidad de añadir una gran cantidad de herramientas y controles.

Para adaptarse a las necesidades de los usuarios y ser mucho más flexible, API IGN cuenta con dos APIs. De esta manera, es el propio usuario el que selecciona la que más se adapta a las necesidades que necesite cubrir en cada momento:
Para adaptarse a las necesidades de los usuarios y ser mucho más flexible, API CNIG cuenta con dos APIs. De esta manera, es el propio usuario el que selecciona la que más se adapta a las necesidades que necesite cubrir en cada momento:

- A través de una API REST muy sencilla y documentada permite incluir un visualizador interactivo en cualquier página web sin necesidad de disponer de conocimientos específicos en programación ni en el ámbito de los SIG.
- A través de una API JavaScript que permite crear desde visualizadores de mapas básico hasta otros de mayor complejidad.

## Componentes

La arquitectura de API IGN está compuesta por los siguientes componentes:
La arquitectura de API CNIG está compuesta por los siguientes componentes:

- [api-ign-js](/api-ign-js) Librería JavaScript que provee una API para facilitar la creación de visores de mapas.
- [api-ign-parent](/api-ign-parent) Módulo padre que hace uso de maven para compilar y generar el war final de api-ign.
- [api-ign-parent](/api-ign-parent) Módulo padre que hace uso de maven para compilar y generar el war final de api-core.
- [api-ign-proxy](/api-ign-proxy) Proxy para realizar peticiones POST por si el [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) no está habilitado.
- [api-ign-rest](/api-ign-rest) Servicio Web con API RESTful que genera el código JS necesario para generar un visor con la configuración especificada por parámetros.

Expand Down
14 changes: 9 additions & 5 deletions api-ign-js/config/jsdoc/info/conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"opts": {
"recurse": true,
"template": "config/jsdoc/info"
"template": "config/jsdoc/info"
},
"tags": {
"allowUnknownTags": true
Expand All @@ -10,8 +10,12 @@
"includePattern": "\\.js$"
},
"plugins": [
"config/jsdoc/info/api-plugin",
"config/jsdoc/info/define-plugin",
"config/jsdoc/info/virtual-plugin"
]
"jsdoc-plugin-typescript",
"config/jsdoc/info/api-plugin",
"config/jsdoc/info/define-plugin",
"config/jsdoc/info/virtual-plugin"
],
"typescript": {
"moduleRoot": "src"
}
}
12 changes: 1 addition & 11 deletions api-ign-js/config/jsdoc/info/publish.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,20 @@
*/
const assert = require('assert');
const path = require('path');


/**
* Publish hook for the JSDoc template. Writes to JSON stdout.
* @param {function} data The root of the Taffy DB containing doclet records.
* @param {Object} opts Options.
* @return {Promise} A promise that resolves when writing is complete.
*/
exports.publish = function(data, opts) {

function getTypes(data) {
const types = [];
data.forEach(function(name) {
types.push(name.replace(/^function$/, 'Function'));
});
return types;
}

// get all doclets with the "api" property or define (excluding events)
const classes = {};
const docs = data(
Expand All @@ -40,7 +36,6 @@ exports.publish = function(data, opts) {
],
{kind: {'!is': 'file'}},
{kind: {'!is': 'event'}}).get();

// get symbols data, filter out those that are members of private classes
const symbols = [];
const defines = [];
Expand Down Expand Up @@ -125,7 +120,6 @@ exports.publish = function(data, opts) {
return true;
});
}

const target = isExterns ? externs : (doc.api ? symbols : base);
const existingSymbol = symbolsByName[symbol.name];
if (existingSymbol) {
Expand All @@ -134,7 +128,6 @@ exports.publish = function(data, opts) {
}
target.push(symbol);
symbolsByName[symbol.name] = symbol;

if (doc.api && symbol.extends) {
while (symbol.extends in classes && !classes[symbol.extends].api &&
classes[symbol.extends].augments) {
Expand All @@ -146,11 +139,9 @@ exports.publish = function(data, opts) {
}
}
});

base = base.filter(function(symbol) {
return (symbol.name in augments || symbol.virtual);
});

return new Promise(function(resolve, reject) {
process.stdout.write(
JSON.stringify({
Expand All @@ -161,5 +152,4 @@ exports.publish = function(data, opts) {
base: base
}, null, 2));
});

};
};
2 changes: 1 addition & 1 deletion api-ign-js/config/jsdoc/info/virtual-plugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ exports.defineTags = function(dictionary) {

const classTag = dictionary.lookUp('class');
dictionary.defineTag('interface', {
mustHaveValue: false,
mustHaveValue: true,
onTagged: function(doclet, tag) {
classTag.onTagged.apply(this, arguments);
doclet.virtual = true;
Expand Down
12 changes: 12 additions & 0 deletions api-ign-js/config/jsdoc/ol-info/api-plugin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

/**
* Handle the api annotation.
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
dictionary.defineTag('api', {
onTagged: function(doclet, tag) {
doclet.api = true;
}
});
};
21 changes: 21 additions & 0 deletions api-ign-js/config/jsdoc/ol-info/conf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"opts": {
"recurse": true,
"template": "config/jsdoc/info"
},
"tags": {
"allowUnknownTags": true
},
"source": {
"includePattern": "\\.js$"
},
"plugins": [
"jsdoc-plugin-typescript",
"config/jsdoc/info/api-plugin",
"config/jsdoc/info/define-plugin",
"config/jsdoc/info/virtual-plugin"
],
"typescript": {
"moduleRoot": "node_modules/ol"
}
}
29 changes: 29 additions & 0 deletions api-ign-js/config/jsdoc/ol-info/define-plugin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/**
* @fileoverview This plugin extracts info from boolean defines. This only
* handles boolean defines with the default value in the description. Default
* is assumed to be provided with something like "default is `true`" (case
* insensitive, with or without ticks).
*/
const DEFAULT_VALUE = /default\s+is\s+`?(true|false)`?/i;
/**
* Hook to define new tags.
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
dictionary.defineTag('define', {
canHaveType: true,
mustHaveValue: true,
onTagged: function(doclet, tag) {
const types = tag.value.type.names;
if (types.length === 1 && types[0] === 'boolean') {
const match = tag.value.description.match(DEFAULT_VALUE);
if (match) {
doclet.define = {
default: match[1] === 'true'
};
doclet.description = tag.value.description;
}
}
}
});
};
1 change: 1 addition & 0 deletions api-ign-js/config/jsdoc/ol-info/publish.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

14 changes: 14 additions & 0 deletions api-ign-js/config/jsdoc/ol-info/virtual-plugin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/**
* Handle the interface and abstract annotations.
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
const classTag = dictionary.lookUp('class');
dictionary.defineTag('interface', {
mustNotHaveValue: true,
onTagged: function(doclet, tag) {
classTag.onTagged.apply(this, arguments);
doclet.virtual = true;
}
});
};
36 changes: 18 additions & 18 deletions api-ign-js/npm-debug.log
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
0 info it worked if it ends with ok
1 verbose cli [ '/home/danielluna/.nvm/versions/node/v6.9.1/bin/node',
1 verbose cli '/home/danielluna/.nvm/versions/node/v6.9.1/bin/npm',
1 verbose cli [ '/home/antoniojamador/.nvm/versions/node/v6.9.1/bin/node',
1 verbose cli '/home/antoniojamador/.nvm/versions/node/v6.9.1/bin/npm',
1 verbose cli 'run',
1 verbose cli 'build' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info lifecycle apiign@1.0.0~prebuild: apiign@1.0.0
6 verbose lifecycle apiign@1.0.0~prebuild: unsafe-perm in lifecycle true
7 verbose lifecycle apiign@1.0.0~prebuild: PATH: /home/danielluna/.nvm/versions/node/v6.9.1/lib/node_modules/npm/bin/node-gyp-bin:/home/danielluna/desagit/mapea-lite/api-ign-js/node_modules/.bin:/home/danielluna/.nvm/versions/node/v6.9.1/bin:/home/danielluna/bin:/home/danielluna/.local/bin:/home/danielluna/bin:/home/danielluna/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
8 verbose lifecycle apiign@1.0.0~prebuild: CWD: /home/danielluna/desagit/mapea-lite/api-ign-js
9 silly lifecycle apiign@1.0.0~prebuild: Args: [ '-c',
5 info lifecycle apiign@3.3.2~prebuild: apiign@3.3.2
6 verbose lifecycle apiign@3.3.2~prebuild: unsafe-perm in lifecycle true
7 verbose lifecycle apiign@3.3.2~prebuild: PATH: /home/antoniojamador/.nvm/versions/node/v6.9.1/lib/node_modules/npm/bin/node-gyp-bin:/opt/Workspaces/mapea-lite/mapea-lite/api-ign-js/node_modules/.bin:/home/antoniojamador/.nvm/versions/node/v6.9.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/opt/gradle/gradle-3.5/bin
8 verbose lifecycle apiign@3.3.2~prebuild: CWD: /opt/Workspaces/mapea-lite/mapea-lite/api-ign-js
9 silly lifecycle apiign@3.3.2~prebuild: Args: [ '-c',
9 silly lifecycle 'node tasks/clean-build.js --path=dist && node tasks/generate-index.js' ]
10 silly lifecycle apiign@1.0.0~prebuild: Returned: code: 1 signal: null
11 info lifecycle apiign@1.0.0~prebuild: Failed to exec prebuild script
12 verbose stack Error: apiign@1.0.0 prebuild: `node tasks/clean-build.js --path=dist && node tasks/generate-index.js`
10 silly lifecycle apiign@3.3.2~prebuild: Returned: code: 1 signal: null
11 info lifecycle apiign@3.3.2~prebuild: Failed to exec prebuild script
12 verbose stack Error: apiign@3.3.2 prebuild: `node tasks/clean-build.js --path=dist && node tasks/generate-index.js`
12 verbose stack Exit status 1
12 verbose stack at EventEmitter.<anonymous> (/home/danielluna/.nvm/versions/node/v6.9.1/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
12 verbose stack at EventEmitter.<anonymous> (/home/antoniojamador/.nvm/versions/node/v6.9.1/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
12 verbose stack at emitTwo (events.js:106:13)
12 verbose stack at EventEmitter.emit (events.js:191:7)
12 verbose stack at ChildProcess.<anonymous> (/home/danielluna/.nvm/versions/node/v6.9.1/lib/node_modules/npm/lib/utils/spawn.js:40:14)
12 verbose stack at ChildProcess.<anonymous> (/home/antoniojamador/.nvm/versions/node/v6.9.1/lib/node_modules/npm/lib/utils/spawn.js:40:14)
12 verbose stack at emitTwo (events.js:106:13)
12 verbose stack at ChildProcess.emit (events.js:191:7)
12 verbose stack at maybeClose (internal/child_process.js:877:16)
12 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
13 verbose pkgid apiign@1.0.0
14 verbose cwd /home/danielluna/desagit/mapea-lite/api-ign-js
15 error Linux 4.4.0-154-generic
16 error argv "/home/danielluna/.nvm/versions/node/v6.9.1/bin/node" "/home/danielluna/.nvm/versions/node/v6.9.1/bin/npm" "run" "build"
13 verbose pkgid apiign@3.3.2
14 verbose cwd /opt/Workspaces/mapea-lite/mapea-lite/api-ign-js
15 error Linux 4.15.0-118-generic
16 error argv "/home/antoniojamador/.nvm/versions/node/v6.9.1/bin/node" "/home/antoniojamador/.nvm/versions/node/v6.9.1/bin/npm" "run" "build"
17 error node v6.9.1
18 error npm v3.10.8
19 error code ELIFECYCLE
20 error apiign@1.0.0 prebuild: `node tasks/clean-build.js --path=dist && node tasks/generate-index.js`
20 error apiign@3.3.2 prebuild: `node tasks/clean-build.js --path=dist && node tasks/generate-index.js`
20 error Exit status 1
21 error Failed at the apiign@1.0.0 prebuild script 'node tasks/clean-build.js --path=dist && node tasks/generate-index.js'.
21 error Failed at the apiign@3.3.2 prebuild script 'node tasks/clean-build.js --path=dist && node tasks/generate-index.js'.
21 error Make sure you have the latest version of node.js and npm installed.
21 error If you do, this is most likely a problem with the apiign package,
21 error not with npm itself.
Expand Down
Loading

0 comments on commit c21785a

Please sign in to comment.