diff --git a/configs/dev-emulator-program-missingtrip.nrel-op.json b/configs/dev-emulator-program-missingtrip.nrel-op.json
new file mode 100644
index 00000000..4374e155
--- /dev/null
+++ b/configs/dev-emulator-program-missingtrip.nrel-op.json
@@ -0,0 +1,60 @@
+{
+ "version": 1,
+ "ts": 1655143472,
+ "intro": {
+ "program_or_study": "program",
+ "start_month": "9",
+ "start_year": "2020",
+ "mode_studied": "e-bike",
+ "program_admin_contact": "K. Shankari (k.shankari@nrel.gov)",
+ "deployment_partner_name": "National Renewable Energy Laboratory (NREL)",
+ "translated_text": {
+ "en": {
+ "deployment_name": "Development environment (program)",
+ "summary_line_1": "allows developers to work on the OpenPATH app",
+ "summary_line_2": "connect to a local server",
+ "summary_line_3": "and ensure that end-to-end program features work.",
+ "short_textual_description": "OpenPATH is the only open source platform for instrumenting mobility patterns. We welcome contributions and pull requests.",
+ "why_we_collect": "So that you can see how OpenPATH works",
+ "research_questions": ["Comparing the open-access group (no intervention) and programs that provide interventions.", "General monitoring of mobility trends for travel behavior, including shifts to travel behavior and the introduction of new mobility modes."]
+ }
+ }
+ },
+ "survey_info": {
+ "surveys": {
+ "UserProfileSurvey": {
+ "formPath": "json/demo-survey-v2.json",
+ "version": 1,
+ "compatibleWith": 1,
+ "dataKey": "manual/demographic_survey"
+ },
+ "MissingTripSurvey": {
+ "formPath": "https://raw.githubusercontent.com/sebastianbarry/nrel-openpath-deploy-configs/missing-trips-survey/survey-resources/data-json/fake-missing-trip-survey-v1.json",
+ "version": 9,
+ "compatibleWith": 1,
+ "dataKey": "manual/missingtrip-survey"
+ }
+ },
+ "buttons": {
+ "place-notes": {
+ "surveyName": "MissingTripSurvey",
+ "not-filled-in-label": {
+ "en": "Add Missing Trip",
+ "es": "Añadir viaje perdido"
+ },
+ "filled-in-label": {
+ "en": "",
+ "es": ""
+ }
+ }
+ },
+ "trip-labels": "MULTILABEL"
+ },
+ "display_config": {
+ "use_imperial": false
+ },
+ "profile_controls": {
+ "support_upload": true,
+ "trip_end_notification": true
+ }
+}
diff --git a/configs/dev-emulator-program-tripconfirm.nrel-op.json b/configs/dev-emulator-program-tripconfirm.nrel-op.json
new file mode 100644
index 00000000..7f2a2872
--- /dev/null
+++ b/configs/dev-emulator-program-tripconfirm.nrel-op.json
@@ -0,0 +1,77 @@
+{
+ "version": 1,
+ "ts": 1655143472,
+ "intro": {
+ "program_or_study": "program",
+ "start_month": "9",
+ "start_year": "2020",
+ "mode_studied": "e-bike",
+ "program_admin_contact": "K. Shankari (k.shankari@nrel.gov)",
+ "deployment_partner_name": "National Renewable Energy Laboratory (NREL)",
+ "translated_text": {
+ "en": {
+ "deployment_name": "Development environment (program)",
+ "summary_line_1": "allows developers to work on the OpenPATH app",
+ "summary_line_2": "connect to a local server",
+ "summary_line_3": "and ensure that end-to-end program features work.",
+ "short_textual_description": "OpenPATH is the only open source platform for instrumenting mobility patterns. We welcome contributions and pull requests.",
+ "why_we_collect": "So that you can see how OpenPATH works",
+ "research_questions": ["Comparing the open-access group (no intervention) and programs that provide interventions.", "General monitoring of mobility trends for travel behavior, including shifts to travel behavior and the introduction of new mobility modes."]
+ }
+ }
+ },
+ "survey_info": {
+ "surveys": {
+ "TripConfirmSurvey": {
+ "formPath": "https://raw.githubusercontent.com/sebastianbarry/nrel-openpath-deploy-configs/surveys-info-and-surveys-data/survey-resources/data-json/trip-end-survey-multiple-select.json",
+ "version": 1.2,
+ "compatibleWith": 1,
+ "dataKey": "manual/trip_user_input"
+ },
+ "UserProfileSurvey": {
+ "formPath": "json/demo-survey-v2.json",
+ "version": 1,
+ "compatibleWith": 1,
+ "dataKey": "manual/demographic_survey"
+ },
+ "TimeUseSurvey": {
+ "formPath": "https://raw.githubusercontent.com/sebastianbarry/nrel-openpath-deploy-configs/surveys-info-and-surveys-data/survey-resources/data-json/time-use-survey-form-v9.json",
+ "version": 9,
+ "compatibleWith": 1,
+ "dataKey": "manual/timeuse_survey"
+ }
+ },
+ "buttons": {
+ "trip-notes": {
+ "surveyName": "TimeUseSurvey",
+ "not-filled-in-label": {
+ "en": "Add Activity",
+ "es": "Añadir actividad"
+ },
+ "filled-in-label": {
+ "en": "",
+ "es": ""
+ }
+ },
+ "place-notes": {
+ "surveyName": "TimeUseSurvey",
+ "not-filled-in-label": {
+ "en": "Add Activity",
+ "es": "Añadir actividad"
+ },
+ "filled-in-label": {
+ "en": "",
+ "es": ""
+ }
+ }
+ },
+ "trip-labels": "ENKETO"
+ },
+ "display_config": {
+ "use_imperial": false
+ },
+ "profile_controls": {
+ "support_upload": true,
+ "trip_end_notification": true
+ }
+}
diff --git a/configs/dev-emulator-program.nrel-op.json b/configs/dev-emulator-program.nrel-op.json
index e9e566b6..f1ae708e 100644
--- a/configs/dev-emulator-program.nrel-op.json
+++ b/configs/dev-emulator-program.nrel-op.json
@@ -20,6 +20,47 @@
}
}
},
+ "survey_info": {
+ "surveys": {
+ "UserProfileSurvey": {
+ "formPath": "json/demo-survey-v2.json",
+ "version": 1,
+ "compatibleWith": 1,
+ "dataKey": "manual/demographic_survey"
+ },
+ "TimeUseSurvey": {
+ "formPath": "https://raw.githubusercontent.com/sebastianbarry/nrel-openpath-deploy-configs/surveys-info-and-surveys-data/survey-resources/data-json/time-use-survey-form-v9.json",
+ "version": 9,
+ "compatibleWith": 1,
+ "dataKey": "manual/timeuse_survey"
+ }
+ },
+ "buttons": {
+ "trip-notes": {
+ "surveyName": "TimeUseSurvey",
+ "not-filled-in-label": {
+ "en": "Add Activity",
+ "es": "Añadir actividad"
+ },
+ "filled-in-label": {
+ "en": "",
+ "es": ""
+ }
+ },
+ "place-notes": {
+ "surveyName": "TimeUseSurvey",
+ "not-filled-in-label": {
+ "en": "Add Activity",
+ "es": "Añadir actividad"
+ },
+ "filled-in-label": {
+ "en": "",
+ "es": ""
+ }
+ }
+ },
+ "trip-labels": "MULTILABEL"
+ },
"display_config": {
"use_imperial": false
},
diff --git a/configs/dev-emulator-study-tripconfirm.nrel-op.json b/configs/dev-emulator-study-tripconfirm.nrel-op.json
new file mode 100644
index 00000000..c0f3dc3a
--- /dev/null
+++ b/configs/dev-emulator-study-tripconfirm.nrel-op.json
@@ -0,0 +1,48 @@
+{
+ "version": 1,
+ "ts": 1655143472,
+ "intro": {
+ "program_or_study": "study",
+ "start_month": "9",
+ "start_year": "2020",
+ "program_admin_contact": "K. Shankari (k.shankari@nrel.gov)",
+ "deployment_partner_name": "National Renewable Energy Laboratory (NREL)",
+ "translated_text": {
+ "en": {
+ "deployment_name": "Development environment (study)",
+ "summary_line_1": "allows developers to work on the OpenPATH app",
+ "summary_line_2": "connect to a local server",
+ "summary_line_3": "and ensure that end-to-end study features work.",
+ "short_textual_description": "OpenPATH is the only open source platform for instrumenting mobility patterns. We welcome contributions and pull requests.",
+ "why_we_collect": "So that you can see how OpenPATH works",
+ "research_questions": ["Comparing the open-access group (no intervention) and programs that provide interventions.", "General monitoring of mobility trends for travel behavior, including shifts to travel behavior and the introduction of new mobility modes."]
+ }
+ }
+ },
+ "survey_info": {
+ "surveys": {
+ "TripConfirmSurvey": {
+ "formPath": "https://raw.githubusercontent.com/sebastianbarry/nrel-openpath-deploy-configs/surveys-info-and-surveys-data/survey-resources/data-json/trip-end-survey-multiple-select.json",
+ "version": 1.2,
+ "compatibleWith": 1,
+ "dataKey": "manual/trip_user_input"
+ },
+ "UserProfileSurvey": {
+ "formPath": "json/demo-survey-v2.json",
+ "version": 1,
+ "compatibleWith": 1,
+ "dataKey": "manual/demographic_survey"
+ }
+ },
+ "buttons": {
+ },
+ "trip-labels": "ENKETO"
+ },
+ "display_config": {
+ "use_imperial": false
+ },
+ "profile_controls": {
+ "support_upload": true,
+ "trip_end_notification": true
+ }
+}
diff --git a/configs/dev-emulator-study.nrel-op.json b/configs/dev-emulator-study.nrel-op.json
index 52998a64..1f22f8fa 100644
--- a/configs/dev-emulator-study.nrel-op.json
+++ b/configs/dev-emulator-study.nrel-op.json
@@ -19,6 +19,19 @@
}
}
},
+ "survey_info": {
+ "surveys": {
+ "UserProfileSurvey": {
+ "formPath": "json/demo-survey-v2.json",
+ "version": 1,
+ "compatibleWith": 1,
+ "dataKey": "manual/demographic_survey"
+ }
+ },
+ "buttons": {
+ },
+ "trip-labels": "MULTILABEL"
+ },
"display_config": {
"use_imperial": false
},
diff --git a/docs/index.html b/docs/index.html
index b9b93ace..3b6349ca 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -59,8 +59,11 @@
Join your NREL OpenPATH-powered study!
app.controller('NRELOpenPATHCtrl', function($scope) {
console.log("Initialized the controller");
$scope.currStudies = [
- {name: "Devapp Program", joinurl: "emission://join_study?label=dev-emulator-program&source=github" },
- {name: "Devapp Study", joinurl: "emission://join_study?label=dev-emulator-study&source=github" },
+ {name: "Devapp Program (Multilabel buttons + Timeuse Survey)", joinurl: "emission://join_study?label=dev-emulator-program&source=github" },
+ {name: "Devapp Study (Multilabel buttons)", joinurl: "emission://join_study?label=dev-emulator-study&source=github" },
+ {name: "Devapp Program (Tripconfirm survey + Timeuse Survey)", joinurl: "emission://join_study?label=dev-emulator-program-tripconfirm&source=github" },
+ {name: "Devapp Study (Tripconfirm survey)", joinurl: "emission://join_study?label=dev-emulator-study-tripconfirm&source=github" },
+ {name: "Devapp Program (Multilabel buttons + Missing Trip Survey)", joinurl: "emission://join_study?label=dev-emulator-program-missingtrip&source=github" },
{name: "Dev Program", joinurl: "nrelopenpath://join_study?label=dev-emulator-program&source=github" },
{name: "Dev Study", joinurl: "nrelopenpath://join_study?label=dev-emulator-study&source=github" },
{name: "Testing Program", joinurl: "nrelopenpath://join_study?label=stage-program&source=github" },
diff --git a/survey-resources/Dockerfile b/survey-resources/Dockerfile
new file mode 100644
index 00000000..c36d0a1b
--- /dev/null
+++ b/survey-resources/Dockerfile
@@ -0,0 +1,11 @@
+FROM node:8-alpine
+
+WORKDIR /usr/app
+COPY package.json package-lock.json index.js ./
+RUN apk --no-cache add --virtual native-deps \
+ g++ gcc libgcc libstdc++ linux-headers make python && \
+ npm install --quiet node-gyp -g &&\
+ npm ci &&\
+ apk del native-deps
+
+ENTRYPOINT node .
diff --git a/survey-resources/README.md b/survey-resources/README.md
new file mode 100644
index 00000000..63f7d5ce
--- /dev/null
+++ b/survey-resources/README.md
@@ -0,0 +1,25 @@
+# xform-transformer
+
+Complementary xform transformer for e-mission-phone
+
+## Installation
+
+```bash
+npm install
+```
+
+## Usage
+
+1. Put your `xml` form (xform) file into `data-xml` directory.
+2. Run this app `node .`
+3. Grab your json form file under `data-json` directory.
+4. Enjoy!
+
+Consult *Input Data Preparation* if you do not have xform file yet.
+
+## Input Data Preparation
+
+1. Build your survey form on [https://www.kobotoolbox.org/](https://www.kobotoolbox.org/)
+2. Download the XLS form file
+3. Convert `XLS` form to `xml` form (xform) using [http://xlsform.opendatakit.org/](http://xlsform.opendatakit.org/)
+4. Done!
\ No newline at end of file
diff --git a/survey-resources/data-json/demo-survey-v1.json b/survey-resources/data-json/demo-survey-v1.json
new file mode 100644
index 00000000..edb75613
--- /dev/null
+++ b/survey-resources/data-json/demo-survey-v1.json
@@ -0,0 +1 @@
+{"languageMap":{"English (en)":"en","Spanish (es)":"es"},"form":"","model":"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ","transformerVersion":"2.1.5"}
\ No newline at end of file
diff --git a/survey-resources/data-json/demo-survey-v2.json b/survey-resources/data-json/demo-survey-v2.json
new file mode 100644
index 00000000..bf3197c7
--- /dev/null
+++ b/survey-resources/data-json/demo-survey-v2.json
@@ -0,0 +1 @@
+{"languageMap":{"Spanish (es)":"es","English (en)":"en"},"form":"","model":"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ","transformerVersion":"2.1.5"}
\ No newline at end of file
diff --git a/survey-resources/data-json/fake-missing-trip-survey-v1.json b/survey-resources/data-json/fake-missing-trip-survey-v1.json
new file mode 100644
index 00000000..5134de6c
--- /dev/null
+++ b/survey-resources/data-json/fake-missing-trip-survey-v1.json
@@ -0,0 +1 @@
+{"languageMap":{"English (en)":"en"},"form":"","model":"\n \n \n \n \n \n \n \n \n \n \n \n \n \n ","transformerVersion":"2.1.5"}
\ No newline at end of file
diff --git a/survey-resources/data-json/time-use-survey-form-v9.json b/survey-resources/data-json/time-use-survey-form-v9.json
new file mode 100644
index 00000000..733d9309
--- /dev/null
+++ b/survey-resources/data-json/time-use-survey-form-v9.json
@@ -0,0 +1 @@
+{"languageMap":{"English (en)":"en","Spanish (es)":"es"},"form":"","model":"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ","transformerVersion":"2.1.5"}
\ No newline at end of file
diff --git a/survey-resources/data-json/trip-end-survey-multiple-select.json b/survey-resources/data-json/trip-end-survey-multiple-select.json
new file mode 100644
index 00000000..4ad256db
--- /dev/null
+++ b/survey-resources/data-json/trip-end-survey-multiple-select.json
@@ -0,0 +1 @@
+{"languageMap":{},"form":"","model":"\n \n \n \n \n \n 1\n 0\n 1\n 0\n 0\n \n \n \n \n \n \n ","transformerVersion":"1.31.0"}
\ No newline at end of file
diff --git a/survey-resources/data-json/trip-end-survey.json b/survey-resources/data-json/trip-end-survey.json
new file mode 100644
index 00000000..dfe661fa
--- /dev/null
+++ b/survey-resources/data-json/trip-end-survey.json
@@ -0,0 +1 @@
+{"languageMap":{},"form":"","model":"\n \n \n \n go_home\n vehicle_driver\n 1\n 0\n 1\n 0\n 0\n \n \n \n \n \n \n ","transformerVersion":"1.31.0"}
\ No newline at end of file
diff --git a/survey-resources/data-xls/demo-survey-v1.xlsx b/survey-resources/data-xls/demo-survey-v1.xlsx
new file mode 100644
index 00000000..046d18be
Binary files /dev/null and b/survey-resources/data-xls/demo-survey-v1.xlsx differ
diff --git a/survey-resources/data-xls/demo-survey-v2.xlsx b/survey-resources/data-xls/demo-survey-v2.xlsx
new file mode 100644
index 00000000..6b65913f
Binary files /dev/null and b/survey-resources/data-xls/demo-survey-v2.xlsx differ
diff --git a/survey-resources/data-xls/fake-missing-trip-survey-v1.xlsx b/survey-resources/data-xls/fake-missing-trip-survey-v1.xlsx
new file mode 100644
index 00000000..4d984414
Binary files /dev/null and b/survey-resources/data-xls/fake-missing-trip-survey-v1.xlsx differ
diff --git a/survey-resources/data-xls/time-use-survey-form-v9.xlsx b/survey-resources/data-xls/time-use-survey-form-v9.xlsx
new file mode 100644
index 00000000..186f4e74
Binary files /dev/null and b/survey-resources/data-xls/time-use-survey-form-v9.xlsx differ
diff --git a/survey-resources/data-xml/demo-survey-v2.xml b/survey-resources/data-xml/demo-survey-v2.xml
new file mode 100644
index 00000000..bb8de972
--- /dev/null
+++ b/survey-resources/data-xml/demo-survey-v2.xml
@@ -0,0 +1,1988 @@
+
+
+
+ OpenPATH Demographics Survey
+
+
+
+
+ Información de nivel personal
+
+
+ ¿Cuántos años tienes?
+
+
+ <16 años
+
+
+ 16 ~ 20 años
+
+
+ 21 ~ 25 años
+
+
+ 26 ~ 30 años
+
+
+ 31 ~ 35 años
+
+
+ 36 ~ 40 años
+
+
+ 41 ~ 45 años
+
+
+ 46 ~ 50 años
+
+
+ 51 ~ 55 años
+
+
+ 56 ~ 60 años
+
+
+ 61 ~ 65 años
+
+
+ > 65 años
+
+
+ Prefiero no decirlo
+
+
+ ¿Cuál es su género?
+
+
+ Hombre
+
+
+ Mujer
+
+
+ No binaria / genderqueer / género no conforme
+
+
+ Otro
+
+
+ Prefiero no decirlo
+
+
+ ¿Te consideras transgénero?
+
+
+ Mujer
+
+
+ Hombre
+
+
+ Prefiero no decirlo
+
+
+ ¿Cuál es su raza/etnicidad?
+
+
+ Por favor seleccione todas las respuestas válidas.
+
+
+ Negrx o Afroamericanx
+
+
+ Blancx o Caucásicx
+
+
+ Hispanx, Latinx, o Españolx
+
+
+ Asiáticx Oriental
+
+
+ Sudasiáticx
+
+
+ India Americanx o Nativx de Alaska
+
+
+ Nativx Hawaianx u otra isleñx del Pacífico
+
+
+ Multirracial / Multiétnicx
+
+
+ Otro
+
+
+ Prefiero no decirlo
+
+
+ ¿Tiene una licencia de conducir válida?
+
+
+ Sí
+
+
+ No
+
+
+ Prefiero no decirlo
+
+
+ ¿Es usted estudiante?
+
+
+ Incluyendo escuela pública / privada y escuela en casa
+
+
+ No un estudiante
+
+
+ Sí - Grado K-12 incluyendo GED
+
+
+ Sí - Escuela vocacional/técnica/comercial
+
+
+ Sí - Colegio/Universidad a tiempo parcial
+
+
+ Sí - Colegio/Universidad de tiempo completo
+
+
+ Prefiero no decirlo
+
+
+ ¿Cuál es el grado más alto o el título que ha obtenido?
+
+
+ Menos que un graduado de secundaria
+
+
+ Graduado de secundaria o GED
+
+
+ Algún título universitario o asociado
+
+
+ Licenciatura
+
+
+ Título de posgrado o título profesional
+
+
+ Prefiero no decirlo
+
+
+ ¿Eres un trabajador asalariado?
+
+
+ Sí
+
+
+ No
+
+
+ Prefiero no decirlo
+
+
+ ¿Cuál de los siguientes te describe mejor?
+
+
+ Estoy temporalmente ausente de un trabajo ahora
+
+
+ No puedo trabajar (debido a razones como la edad, la capacidad física, etc.)
+
+
+ Ninguna de las anteriores
+
+
+ Prefiero no decirlo
+
+
+ Información a nivel del hogar
+
+
+ ¿Es propietario o alquila su casa?
+
+
+ Propio
+
+
+ Renta
+
+
+ Ninguno
+
+
+ Prefiero no decirlo
+
+
+ ¿Cuál es tu tipo de casa?
+
+
+ Condominio/Apartamento
+
+
+ Casa para una sola familia
+
+
+ Casa Multifamiliar
+
+
+ Albergue
+
+
+ Prefiero no decirlo
+
+
+ Por favor, identifique qué categoría representa el ingreso total de su hogar, antes de impuestos, en el último año.
+
+
+ Preguntamos esto porque el ingreso está relacionado con cómo, cuándo y por qué la gente va de un lugar a otro. Esta información se utilizará únicamente con fines estadísticos.
+
+
+ Menos de $24,999
+
+
+ $ 25,000 a $ 49,999
+
+
+ $50,000 a $99,999
+
+
+ $100,000 a $149,999
+
+
+ $150,000 a $199,999
+
+
+ $200,000 o más
+
+
+ Prefiero no decirlo
+
+
+ Incluyéndose usted, ¿cuántas personas viven en su casa?
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ 5
+
+
+ 6
+
+
+ 7
+
+
+ Más de 7
+
+
+ Prefiero no decirlo
+
+
+ Incluido usted, ¿cuántos trabajadores hay en su hogar?
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ Más de 4
+
+
+ Prefiero no decirlo
+
+
+ ¿Cuántos niños menores de 18 años viven en su hogar?
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ Más de 4
+
+
+ Prefiero no decirlo
+
+
+ Incluyéndose usted, ¿cuántas personas tienen una licencia de conducir válida en su hogar?
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ Más de 4
+
+
+ Prefiero no decirlo
+
+
+ ¿Cuántos vehículos de motor son propiedad, están alquilados o están disponibles para uso regular por las personas que vive actualmente en su hogar?
+
+
+ Incluya motocicletas, ciclomotores y vehículos recreativos.
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ Más de 3
+
+
+ Prefiero no decirlo
+
+
+ Si no pudiera usar los vehículos de su hogar, ¿cuál de las siguientes opciones consideraríapara que lo lleve de un lugar a otro?
+
+
+ Transporte público (autobús/tren, metro, tren ligero, etc.)
+
+
+ Obtener un viaje de un amigo o miembro de la familia
+
+
+ Coche de alquiler (incluido Zipcar/ Car2Go)
+
+
+ Bicicleta
+
+
+ Caminar
+
+
+ Taxi (Uber, Lyft, etc.)
+
+
+ Ninguno
+
+
+ Prefiero no decirlo
+
+
+ ¿Tiene alguna condición médica que le dificulte viajar fuera de casa?
+
+
+ Sí
+
+
+ No
+
+
+ Prefiero no decirlo
+
+
+ ¿Cuánto tiempo ha tenido esta condición?
+
+
+ 6 meses o menos
+
+
+ Más de 6 meses
+
+
+ Toda mi vida
+
+
+ Prefiero no decir
+
+
+ Información relacionada con el trabajo
+
+
+ ¿Tiene más de un trabajo?
+
+
+ Nos referimos a más de un empleador, no solo a múltiples sitios de trabajo.
+
+
+ Sí
+
+
+ No
+
+
+ Prefiero no decir
+
+
+ ¿Trabaja a tiempo completo o parcial en su trabajo principal?
+
+
+ Para los propósitos de esta encuesta, un trabajo de tiempo completo es de al menos 35 horas por semana.
+
+
+ Tiempo completo
+
+
+ Tiempo parcial
+
+
+ Prefiero no decir
+
+
+ ¿Qué es lo que mejor describe su trabajo principal?
+
+
+ Ventas o servicio
+
+
+ Apoyo administrativo o de oficina
+
+
+ Fabricación, construcción, mantenimiento o agricultura
+
+
+ Profesional, gerencial o técnico
+
+
+ Otro
+
+
+ Prefiero no decir
+
+
+ Por favor describa su trabajo principal
+
+
+ Porque seleccionaste "Otro"
+
+
+ En su trabajo principal, ¿tiene la capacidad de establecer o cambiar su propia hora de entrada?
+
+
+ Sí
+
+
+ No
+
+
+ Prefiero no decir
+
+
+ ¿Tiene la opción de trabajar desde casa o en un lugar alternativo en lugar de ir a su lugar de trabajo principal?
+
+
+ Sí
+
+
+ No
+
+
+ Prefiero no decir
+
+
+ ¿Cuántos días a la semana suele trabajar desde su casa o en un lugar alternativo?
+
+
+ Redondee al siguiente número entero (es decir, un día), si solo trabaja desde su casa o en ubicaciones alternativas medio día.
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ 5
+
+
+ 6
+
+
+ 7
+
+
+ Prefiero no decir
+
+
+ ¿Qué días de la semana suele trabajar desde su casa o en un lugar alternativo?
+
+
+ Por favor seleccione todas las respuestas válidas.
+
+
+ Lunes
+
+
+ Martes
+
+
+ Miércoles
+
+
+ Jueves
+
+
+ Viernes
+
+
+ Sábado
+
+
+ Domingo
+
+
+ Prefiero no decirlo
+
+
+
+
+ Personal Level Information
+
+
+ How old are you?
+
+
+ <16 years old
+
+
+ 16 ~ 20 years old
+
+
+ 21 ~ 25 years old
+
+
+ 26 ~ 30 years old
+
+
+ 31 ~ 35 years old
+
+
+ 36 ~ 40 years old
+
+
+ 41 ~ 45 years old
+
+
+ 46 ~ 50 years old
+
+
+ 51 ~ 55 years old
+
+
+ 56 ~ 60 years old
+
+
+ 61 ~ 65 years old
+
+
+ > 65 years old
+
+
+ Prefer not to say
+
+
+ What is your gender?
+
+
+ Man
+
+
+ Woman
+
+
+ Non-binary/genderqueer/gender non-conforming
+
+
+ Other
+
+
+ Prefer not to say
+
+
+ Do you consider yourself to be Transgender?
+
+
+ Yes
+
+
+ No
+
+
+ Prefer not to say
+
+
+ What is your race/ethnicity?
+
+
+ Please select all that apply.
+
+
+ Black or African American
+
+
+ White or Caucasian
+
+
+ Hispanic, Latino/a/x, or Spanish
+
+
+ East Asian
+
+
+ South Asian
+
+
+ American Indian or Alaska Native
+
+
+ Native Hawaiian or Other Pacific Islander
+
+
+ Multiracial/Multiethnic
+
+
+ Other
+
+
+ Prefer not to say
+
+
+ Do you have a valid drivers license?
+
+
+ Yes
+
+
+ No
+
+
+ Prefer not to say
+
+
+ Are you a student?
+
+
+ Including public/private school and home school
+
+
+ Not A Student
+
+
+ Yes - K-12th Grade including GED
+
+
+ Yes - Vocation/Technical/Trade School
+
+
+ Yes - Part-Time college/University
+
+
+ Yes - Full Time college/University
+
+
+ Prefer not to say
+
+
+ What is the highest level of education you have completed?
+
+
+ Less than a high school graduate
+
+
+ High school graduate or GED
+
+
+ Some college or associates degree
+
+
+ Bachelor's degree
+
+
+ Graduate degree or professional degree
+
+
+ Prefer not to say
+
+
+ Are you a paid worker?
+
+
+ Yes
+
+
+ No
+
+
+ Prefer not to say
+
+
+ Which one below describe you best?
+
+
+ I'm temporarily absent from a job now
+
+
+ I'm not able to work (due to reasons like age, physical capability, etc.)
+
+
+ None of the above
+
+
+ Prefer not to say
+
+
+ Household Level Information
+
+
+ Do you own or rent your home?
+
+
+ Own
+
+
+ Rent
+
+
+ Neither
+
+
+ Prefer not to say
+
+
+ What is your home type?
+
+
+ Condominium/Apartment
+
+
+ Single Family House
+
+
+ Multi-Family House
+
+
+ Shelter
+
+
+ Prefer not to say
+
+
+ Please identify which category represents your total household income, before taxes, for last year.
+
+
+ We are asking this because income is related to how, when and why people go from place to place. This information will be used for statistical purposes only.
+
+
+ Less than $24,999
+
+
+ $25,000 to $49,999
+
+
+ $50,000 to $99,999
+
+
+ $100,000 to $149,999
+
+
+ $150,000 to $199,999
+
+
+ $200,000 or more
+
+
+ Prefer not to say
+
+
+ Including yourself, how many people live in your home?
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ 5
+
+
+ 6
+
+
+ 7
+
+
+ More than 7
+
+
+ Prefer not to say
+
+
+ Including yourself, how many workers are there in your household?
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ More than 4
+
+
+ Prefer not to say
+
+
+ How many children under age 18 live in your home?
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ More than 4
+
+
+ Prefer not to say
+
+
+ Including yourself, how many people have valid drivers licenses in your household?
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ More than 4
+
+
+ Prefer not to say
+
+
+ How many motor vehicles are owned, leased, or available for regular use by the people who currently live in your household?
+
+
+ Include motorcycles, mopeds and RVs.
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ More than 3
+
+
+ Prefer not to say
+
+
+ If you were unable to use your household motor vehicle(s) (or if none are available to you), which of the following options would be available to you to get from place to place?
+
+
+ Public transportation (bus, subway, light rail, etc.)
+
+
+ Get a ride from a friend or family member
+
+
+ Rental car (including Zipcar/ Car2Go)
+
+
+ Bicycle
+
+
+ Walk
+
+
+ Taxi (regular taxi, Uber, Lyft, etc)
+
+
+ None
+
+
+ Prefer not to say
+
+
+ Do you have a physical or medical condition that makes it difficult to travel outside of the home?
+
+
+ Yes
+
+
+ No
+
+
+ Prefer not to say
+
+
+ How long you had this conditions?
+
+
+ 6 months or less
+
+
+ More than 6 months
+
+
+ All life
+
+
+ Prefer not to say
+
+
+ Job Related Information
+
+
+ Do you have more than one job?
+
+
+ We mean more than one employer, not just multiple job sites.
+
+
+ Yes
+
+
+ No
+
+
+ Prefer not to say
+
+
+ Do you work full-time or part-time at the primary job?
+
+
+ A full time job is at least 35 hours per week.
+
+
+ Full-time
+
+
+ Part-time
+
+
+ Prefer not to say
+
+
+ Which best describes your primary job?
+
+
+ Sales or service
+
+
+ Clerical or administrative support
+
+
+ Manufacturing, construction, maintenance, or farming
+
+
+ Professional, managerial, or technical
+
+
+ Other
+
+
+ Prefer not to say
+
+
+ Please describe your primary job
+
+
+ Because you selected "Other"
+
+
+ At your primary job, do you have the ability to set or change your own start time?
+
+
+ Yes
+
+
+ No
+
+
+ Prefer not to say
+
+
+ Do you have the option of working from home or an alternate location instead of going into your primary work place?
+
+
+ Yes
+
+
+ No
+
+
+ Prefer not to say
+
+
+ How many days do you usually work from home or an alternate location per week?
+
+
+ Please round up to the next integer (i.e., one day), if you only work from home or alternative locations half a day.
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ 5
+
+
+ 6
+
+
+ 7
+
+
+ Prefer not to say
+
+
+ What days of the week do you typically work from home or an alternate location?
+
+
+ Please select all that apply.
+
+
+ Monday
+
+
+ Tuesday
+
+
+ Wednesday
+
+
+ Thursday
+
+
+ Friday
+
+
+ Saturday
+
+
+ Sunday
+
+
+ Prefer not to say
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+ _16_years_old
+
+ -
+
+ 16___20_years_old
+
+ -
+
+ 21___25_years_old
+
+ -
+
+ 26___30_years_old
+
+ -
+
+ 31___35_years_old
+
+ -
+
+ 36___40_years_old
+
+ -
+
+ 41___45_years_old
+
+ -
+
+ 46___50_years_old
+
+ -
+
+ 51___55_years_old
+
+ -
+
+ 56___60_years_old
+
+ -
+
+ 61___65_years_old
+
+ -
+
+ __65_years_old
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ man
+
+
+
+
+ -
+
+ woman
+
+ -
+
+ non_binary_genderqueer_gender_non_confor
+
+ -
+
+ other
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ yes
+
+ -
+
+ no
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+ -
+
+ yes
+
+ -
+
+ no
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+ -
+
+ not_a_student
+
+ -
+
+ yes___k_12th_grade_including_ged
+
+ -
+
+ yes___vocation_technical_trade_school
+
+ -
+
+ yes___part_time_college_university
+
+ -
+
+ yes___full_time_college_university
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ less_than_a_high_school_graduate
+
+ -
+
+ high_school_graduate_or_ged
+
+ -
+
+ some_college_or_associates_degree
+
+ -
+
+ bachelor_s_degree
+
+ -
+
+ graduate_degree_or_professional_degree
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ yes
+
+ -
+
+ no
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ i_m_temporarily_absent_from_a_job_now
+
+ -
+
+ i_m_not_able_to_work__due_to_reasons_lik
+
+ -
+
+ none_of_the_above
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+
+
+ -
+
+ own
+
+ -
+
+ rent
+
+ -
+
+ neither
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ condominium_apartment
+
+ -
+
+ single_family_house
+
+ -
+
+ multi_family_house
+
+ -
+
+ shelter
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+ -
+
+ less_than__24_999
+
+ -
+
+ _25_000_to__49_999
+
+ -
+
+ _50_000_to__99_999
+
+ -
+
+ _100_000_to__149_999
+
+ -
+
+ _150_000_to__199_999
+
+ -
+
+ _200_000_or_more
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ 1
+
+ -
+
+ 2
+
+ -
+
+ 3
+
+ -
+
+ 4
+
+ -
+
+ 5
+
+ -
+
+ 6
+
+ -
+
+ 7
+
+ -
+
+ more_than_7
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ 0
+
+ -
+
+ 1
+
+ -
+
+ 2
+
+ -
+
+ 3
+
+ -
+
+ 4
+
+ -
+
+ more_than_4
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ 0
+
+ -
+
+ 1
+
+ -
+
+ 2
+
+ -
+
+ 3
+
+ -
+
+ 4
+
+ -
+
+ more_than_4
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ 0
+
+ -
+
+ 1
+
+ -
+
+ 2
+
+ -
+
+ 3
+
+ -
+
+ 4
+
+ -
+
+ more_than_4
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+ -
+
+ 0
+
+ -
+
+ 1
+
+ -
+
+ 2
+
+ -
+
+ 3
+
+ -
+
+ more_than_3
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+ -
+
+ yes
+
+ -
+
+ no
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ 6_months_or_less
+
+ -
+
+ more_than_6_months
+
+ -
+
+ all_life
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+
+
+
+ -
+
+ yes
+
+ -
+
+ no
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+ -
+
+ full_time
+
+ -
+
+ part_time
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ sales_or_service
+
+ -
+
+ clerical_or_administrative_support
+
+ -
+
+ manufacturing__construction__maintenance
+
+ -
+
+ professional__managerial__or_technical
+
+ -
+
+ other
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+
+
+
+ -
+
+ yes
+
+ -
+
+ no
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+ -
+
+ yes
+
+ -
+
+ no
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+ -
+
+ 0
+
+ -
+
+ 1
+
+ -
+
+ 2
+
+ -
+
+ 3
+
+ -
+
+ 4
+
+ -
+
+ 5
+
+ -
+
+ 6
+
+ -
+
+ 7
+
+ -
+
+ prefer_not_to_say
+
+
+
+
+
+
diff --git a/survey-resources/data-xml/fake-missing-trip-survey-v1.xml b/survey-resources/data-xml/fake-missing-trip-survey-v1.xml
new file mode 100644
index 00000000..a7112e48
--- /dev/null
+++ b/survey-resources/data-xml/fake-missing-trip-survey-v1.xml
@@ -0,0 +1,208 @@
+
+
+
+ Fake Missing Trip survey
+
+
+
+
+ Personal Level Information
+
+
+ Where were you going to go?
+
+
+ Name of missing trip destination
+
+
+ Why were you not able to go?
+
+
+ Reason for missing trip
+
+
+ Cost (too expensive)
+
+
+ Distance (too far away)
+
+
+ Time (too long)
+
+
+ Weather
+
+
+ What mode of transportation would you have taken if it were available?
+
+
+ Walk
+
+
+ E-bike
+
+
+ Regular Bike
+
+
+ Bikeshare
+
+
+ Scooter share
+
+
+ Gas Car Drove Alone
+
+
+ Gas Car Shared Ride
+
+
+ E-Car Drove Alone
+
+
+ E-Car Shared Drive
+
+
+ Taxi/Uber/Lyft
+
+
+ Bus
+
+
+ Train
+
+
+ Free Shuttle
+
+
+ Air
+
+
+ Other
+
+
+ Please fill in the mode not listed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+ walk
+
+ -
+
+ e_bike
+
+ -
+
+ regular_bike
+
+ -
+
+ bikeshare
+
+ -
+
+ scooter_share
+
+ -
+
+ gas_car_drove_alone
+
+ -
+
+ gas_car_shared_ride
+
+ -
+
+ e_car_drove_alone
+
+ -
+
+ e_car_shared_drive
+
+ -
+
+ taxi_uber_lyft
+
+ -
+
+ bus
+
+ -
+
+ train
+
+ -
+
+ free_shuttle
+
+ -
+
+ air
+
+ -
+
+ other
+
+
+
+
+
+
+
+
diff --git a/survey-resources/data-xml/time-use-survey-form-v9.xml b/survey-resources/data-xml/time-use-survey-form-v9.xml
new file mode 100644
index 00000000..fdb076c9
--- /dev/null
+++ b/survey-resources/data-xml/time-use-survey-form-v9.xml
@@ -0,0 +1,511 @@
+
+
+
+ Time-use survey
+
+
+
+
+ Time-use questions
+
+
+ Date
+
+
+ Change the date using the date picker to change this.
+
+
+ Start time
+
+
+ End time
+
+
+ Activity Type:
+
+
+ In case of multi-tasking, you can select multiple activities.
+
+
+ Personal care activities
+
+
+ Employment-related and Educational activities
+
+
+ Domestic activities
+
+
+ Recreation and leisure
+
+
+ Voluntary work and care activities
+
+
+ Other...
+
+
+ Personal Care activities:
+
+
+ Sleeping
+
+
+ Resting and relaxing
+
+
+ Eating or drinking
+
+
+ Doing sport
+
+
+ Appointments
+
+
+ Personal care i.e. wash, dress (grooming (self))
+
+
+ Employment-related and Education activities
+
+
+ Working at main job
+
+
+ Working at other job
+
+
+ Studying at an educational institute i.e. university, online learjning platforms
+
+
+ Domestic activities
+
+
+ Preparing meals or snacks
+
+
+ Cleaning and tidying
+
+
+ Doing laundry
+
+
+ Grocery shopping
+
+
+ Repairs and gardening
+
+
+ Paying household bills
+
+
+ Recreation and leisure
+
+
+ Watching TV (movie, news, online like Netflix, ...)
+
+
+ Listening to radio, podcasts, music
+
+
+ Playing video games
+
+
+ Recreational study
+
+
+ Non-grocery shopping
+
+
+ Spending time with family/friends
+
+
+ Contact friends/family on a voice call or video call
+
+
+ Voluntary work and care activities
+
+
+ Caring for own children
+
+
+ Caring for other children
+
+
+ Caring for adults
+
+
+ Pet care activities
+
+
+ Other voluntary works
+
+
+ Attending religious services
+
+
+ Other:
+
+
+ If your activity type is not included within the provided options, please enter it in the box below.
+
+
+
+
+ Preguntas sobre el uso del tiempo
+
+
+ Fecha
+
+
+ Cambie la fecha usando el selector de fecha para cambiar esto.
+
+
+ Hora de inicio
+
+
+ Hora de finalización
+
+
+ Tipo de actividad:
+
+
+ En caso de multitarea, puede seleccionar varias actividades.
+
+
+ Actividades de cuidado personal
+
+
+ Actividades relacionadas con el empleo y la educación
+
+
+ Actividades domesticas
+
+
+ Recreación y ocio
+
+
+ Trabajo voluntario y actividades de cuidado
+
+
+ Otro...
+
+
+ Actividades de cuidado personal:
+
+
+ Durmiendo
+
+
+ Descansando y relajándose
+
+
+ Comer o beber
+
+
+ Haciendo deporte
+
+
+ Equipo
+
+
+ Cuidado personal, es decir, lavarse, vestirse (asearse (uno mismo))
+
+
+ Actividades relacionadas con el empleo y la educación
+
+
+ Trabajando en trabajo principal
+
+
+ Trabajando en otro trabajo
+
+
+ Estudiar en un instituto educativo, es decir, universidades, plataformas de aprendizaje en línea
+
+
+ Actividades domesticas
+
+
+ Preparar comidas o meriendas
+
+
+ Limpieza y orden
+
+
+ Lavando
+
+
+ Compras de comestibles
+
+
+ Reparaciones y jardinería
+
+
+ Pagar las facturas del hogar
+
+
+ Recreación y ocio
+
+
+ Ver televisión (películas, noticias, en línea como Netflix, ...)
+
+
+ Escuchar radio, podcasts, música.
+
+
+ Jugando videojuegos
+
+
+ Estudio recreativo
+
+
+ Compras no comestibles
+
+
+ Pasar tiempo con la familia/amigos
+
+
+ Póngase en contacto con amigos/familiares en una llamada de voz o videollamada
+
+
+ Trabajo voluntario y actividades de cuidado
+
+
+ Cuidar de los propios hijos
+
+
+ Cuidando a otros niños
+
+
+ Cuidando a los adultos
+
+
+ Actividades de cuidado de mascotas
+
+
+ Otras obras de voluntariado
+
+
+ Asistir a servicios religiosos
+
+
+ Otro:
+
+
+ Si su tipo de actividad no está incluido dentro de las opciones proporcionadas, introdúzcalo en el cuadro a continuación.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/survey-resources/index.js b/survey-resources/index.js
new file mode 100644
index 00000000..edf2cec8
--- /dev/null
+++ b/survey-resources/index.js
@@ -0,0 +1,36 @@
+const fs = require('fs');
+const transformer = require('enketo-transformer');
+
+const config = {
+ inputDir: 'data-xml',
+ outputDir: 'data-json',
+};
+
+console.log('==== xform-transformer ====');
+console.log('');
+console.log(`Input directory: "${config.inputDir}"`);
+console.log(`Output directory: "${config.outputDir}"`);
+console.log('');
+console.log('Begin transforming xform files...');
+console.log('');
+
+fs.readdirSync(`./${config.inputDir}`, {
+ encoding: 'utf8',
+ withFileTypes: false,
+}).filter(file => {
+ console.log("Considering "+JSON.stringify(file)+" in filter");
+ return file.match(/.xml$/);
+}).forEach(file => {
+ const filename = file.substr(0, file.length - 4);
+ const inputPath = `./${config.inputDir}/${file}`;
+ const outputPath = `./${config.outputDir}/${filename}.json`;
+ console.log(`Reading "${inputPath}" ...`);
+ transformer.transform({
+ xform: fs.readFileSync(inputPath),
+ preprocess: doc => doc,
+ }).then(function(result){
+ fs.writeFileSync(outputPath, JSON.stringify(result));
+ console.log(`Successfully saved "${outputPath}"`);
+ });
+});
+
diff --git a/survey-resources/package-lock.json b/survey-resources/package-lock.json
new file mode 100644
index 00000000..912fb753
--- /dev/null
+++ b/survey-resources/package-lock.json
@@ -0,0 +1,1438 @@
+{
+ "name": "xform-transformer",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "requires": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA=="
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "are-we-there-yet": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "array-flatten": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz",
+ "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA=="
+ },
+ "asn1": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
+ },
+ "aws4": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "body-parser": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
+ "requires": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA=="
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
+ },
+ "content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "requires": {
+ "safe-buffer": "5.2.1"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
+ "destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg=="
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
+ },
+ "enketo-transformer": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/enketo-transformer/-/enketo-transformer-2.1.5.tgz",
+ "integrity": "sha512-9zTyWTX7d5tKoh1vi4ahN11TP22fcrxyvN5KDEdO6Fhrxe1zyeCmtipiMxp4eoj7bPA/8o47eKhzw9KW5BhkOw==",
+ "requires": {
+ "body-parser": "^1.20.0",
+ "express": "^5.0.0-beta.1",
+ "language-tags": "1.0.5",
+ "libxslt": "0.10.0",
+ "request": "^2.88.2",
+ "string-direction": "0.1.x"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
+ },
+ "express": {
+ "version": "5.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-5.0.0-beta.1.tgz",
+ "integrity": "sha512-KPtBrlZoQu2Ps0Ce/Imqtq73AB0KBJ8Gx59yZQ3pmDJU2/LhcoZETo03oSgtTQufbcLXt/WBITk/jMjl/WMyrQ==",
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "3.0.0",
+ "body-parser": "2.0.0-beta.1",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.1",
+ "cookie-signature": "1.0.6",
+ "debug": "3.1.0",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "mime-types": "~2.1.34",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-is-absolute": "1.0.1",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.9.6",
+ "range-parser": "~1.2.1",
+ "router": "2.0.0-beta.1",
+ "safe-buffer": "5.2.1",
+ "send": "1.0.0-beta.1",
+ "serve-static": "2.0.0-beta.1",
+ "setprototypeof": "1.2.0",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "body-parser": {
+ "version": "2.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.0.0-beta.1.tgz",
+ "integrity": "sha512-I1v2bt2OdYqtmk8nEFZuEf+9Opb30DphYwTPDbgg/OorSAoJOuTpWyDrZaSWQw7FdoevbBRCP2+9z/halXSWcA==",
+ "requires": {
+ "bytes": "3.1.1",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.8.1",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.9.6",
+ "raw-body": "2.4.2",
+ "type-is": "~1.6.18"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "bytes": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
+ "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg=="
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
+ },
+ "http-errors": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
+ }
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "qs": {
+ "version": "6.9.6",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
+ "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ=="
+ },
+ "raw-body": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
+ "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
+ "requires": {
+ "bytes": "3.1.1",
+ "http-errors": "1.8.1",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ }
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
+ },
+ "fs-minipass": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+ "requires": {
+ "minipass": "^2.6.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="
+ },
+ "har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "requires": {
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
+ },
+ "http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "requires": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz",
+ "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==",
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
+ },
+ "json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
+ },
+ "jsprim": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "verror": "1.10.0"
+ }
+ },
+ "language-subtag-registry": {
+ "version": "0.3.21",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
+ "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg=="
+ },
+ "language-tags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
+ "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==",
+ "requires": {
+ "language-subtag-registry": "~0.3.2"
+ }
+ },
+ "libxslt": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/libxslt/-/libxslt-0.10.0.tgz",
+ "integrity": "sha512-COIaTGdrgnhZzk8II6vTDiNSI+Z/HcrpXVondyLsy2z9JuIOX5i4NKFsEFyySvYGcv9vgmbQiI8OV8x8R/rTOg==",
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "~2.14.2",
+ "node1-libxmljsmt-myh": "1.0.4"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
+ },
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+ "requires": {
+ "minipass": "^2.9.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "requires": {
+ "minimist": "^1.2.6"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "nan": {
+ "version": "2.14.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
+ "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
+ },
+ "needle": {
+ "version": "2.9.1",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
+ "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==",
+ "requires": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
+ },
+ "node-pre-gyp": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz",
+ "integrity": "sha1-8RwHUW3ZL4cZnbx+GDjqt81WyeA=",
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.0",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.1.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ }
+ },
+ "node1-libxmljsmt-myh": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/node1-libxmljsmt-myh/-/node1-libxmljsmt-myh-1.0.4.tgz",
+ "integrity": "sha512-2Kncs49q0NDz6MvIS5ipOnbs7TxzFXZSvdcvN6dunwCMixOdwcMqAlzRCsy3WxeoHqeGTlA/gCKj/NiR282kqw==",
+ "requires": {
+ "bindings": "^1.3.0",
+ "nan": "~2.14.0",
+ "node-pre-gyp": "^0.9.1"
+ }
+ },
+ "nopt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
+ "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
+ "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==",
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="
+ },
+ "npm-packlist": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz",
+ "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==",
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1",
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
+ "on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-to-regexp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz",
+ "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA=="
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "requires": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "psl": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "qs": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "raw-body": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "requires": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ }
+ }
+ },
+ "request": {
+ "version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
+ }
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "router": {
+ "version": "2.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/router/-/router-2.0.0-beta.1.tgz",
+ "integrity": "sha512-GLoYgkhAGAiwVda5nt6Qd4+5RAPuQ4WIYLlZ+mxfYICI+22gnIB3eCfmhgV8+uJNPS1/39DOYi/vdrrz0/ouKA==",
+ "requires": {
+ "array-flatten": "3.0.0",
+ "methods": "~1.1.2",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "3.2.0",
+ "setprototypeof": "1.2.0",
+ "utils-merge": "1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "send": {
+ "version": "1.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-1.0.0-beta.1.tgz",
+ "integrity": "sha512-OKTRokcl/oo34O8+6aUpj8Jf2Bjw2D0tZzmX0/RvyfVC9ZOZW+HPAWAlhS817IsRaCnzYX1z++h2kHFr2/KNRg==",
+ "requires": {
+ "debug": "3.1.0",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "1.8.1",
+ "mime-types": "~2.1.34",
+ "ms": "2.1.3",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg=="
+ },
+ "http-errors": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "2.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.0.0-beta.1.tgz",
+ "integrity": "sha512-DEJ9on/tQeFO2Omj7ovT02lCp1YgP4Kb8W2lv2o/4keTFAbgc8HtH3yPd47++2wv9lvQeqiA7FHFDe5+8c4XpA==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "1.0.0-beta.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ },
+ "sshpk": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
+ "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ },
+ "string-direction": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/string-direction/-/string-direction-0.1.2.tgz",
+ "integrity": "sha1-PYRT5ydKLkShQrPchEnftk2a3jo="
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "tar": {
+ "version": "4.4.19",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
+ "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
+ "requires": {
+ "chownr": "^1.1.4",
+ "fs-minipass": "^1.2.7",
+ "minipass": "^2.9.0",
+ "minizlib": "^1.3.3",
+ "mkdirp": "^0.5.5",
+ "safe-buffer": "^5.2.1",
+ "yallist": "^3.1.1"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
+ },
+ "tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "requires": {
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ },
+ "dependencies": {
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
+ }
+ }
+ },
+ "wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "requires": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ }
+ }
+}
diff --git a/survey-resources/package.json b/survey-resources/package.json
new file mode 100644
index 00000000..ea41f992
--- /dev/null
+++ b/survey-resources/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "xform-transformer",
+ "version": "1.0.0",
+ "description": "Complementary xform transformer for e-mission-phone",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "author": "Attawit Kittikrairit",
+ "license": "ISC",
+ "dependencies": {
+ "enketo-transformer": "^2.1.5"
+ }
+}
diff --git a/survey-resources/run.sh b/survey-resources/run.sh
new file mode 100644
index 00000000..dfb7a0b8
--- /dev/null
+++ b/survey-resources/run.sh
@@ -0,0 +1 @@
+docker run --rm -v "$(pwd)"/data-xml:/usr/app/data-xml:ro -v "$(pwd)"/data-json:/usr/app/data-json atton16/xform-transformer:latest