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":"
\n

Location History Data based Travel Pattern Prediction Survey

\n \n \n

Personal Level InformationInformación de nivel personal

How old are you?¿Cuántos años tienes?*\n
This field is required
What is your gender?¿Cuál es su género?\n
Do you consider yourself to be Transgender?¿Te consideras transgénero?*\n
This field is required
What is your race/ethnicity?¿Cuál es su raza/etnicidad?Please select all that apply.Por favor seleccione todas las respuestas válidas.\n
Do you have a valid drivers license?¿Tiene una licencia de conducir válida?*\n
This field is required
Are you a student?¿Es usted estudiante?*Including public/private school and home schoolIncluyendo escuela pública / privada y escuela en casa\n
This field is required
What is the highest level of education you have completed?¿Cuál es el grado más alto o el título que ha obtenido?*\n
This field is required
Are you a paid worker?¿Eres un trabajador asalariado?*\n
This field is required
Which one below describe you best?¿Cuál de los siguientes te describe mejor?*\n
This field is required
\n
\n

Household Level InformationInformación a nivel del hogar

Do you own or rent your home?¿Es propietario o alquila su casa?*\n
This field is required
What is your home type?¿Cuál es tu tipo de casa?*\n
This field is required
Please identify which category represents your total household income, before taxes, for last year.Por favor, identifique qué categoría representa el ingreso total de su hogar, antes de impuestos, en el último año.*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.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.\n
This field is required
Including yourself, how many people live in your home?Incluyéndose usted, ¿cuántas personas viven en su casa?*\n
This field is required
Including yourself, how many workers are there in your household?Incluido usted, ¿cuántos trabajadores hay en su hogar?*\n
This field is required
How many children under age 18 live in your home?¿Cuántos niños menores de 18 años viven en su hogar?*\n
This field is required
Including yourself, how many people have valid drivers licenses in your household?Incluyéndose usted, ¿cuántas personas tienen una licencia de conducir válida en su hogar?*\n
This field is required
How many motor vehicles are owned, leased, or available for regular use by the people who currently live in your household?¿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?*Include motorcycles, mopeds and RVs.Incluya motocicletas, ciclomotores y vehículos recreativos.\n
This field is required
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?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?*\n
This field is required
Do you have a physical or medical condition that makes it difficult to travel outside of the home?¿Tiene alguna condición médica que le dificulte viajar fuera de casa?*\n
This field is required
How long you had this conditions?¿Cuánto tiempo ha tenido esta condición?*\n
This field is required
\n
\n

Job Related InformationInformación relacionada con el trabajo

Do you have more than one job?¿Tiene más de un trabajo?*We mean more than one employer, not just multiple job sites.Nos referimos a más de un empleador, no solo a múltiples sitios de trabajo.\n
This field is required
Do you work full-time or part-time at the primary job?¿Trabaja a tiempo completo o parcial en su trabajo principal?*A full time job is at least 35 hours per week.Para los propósitos de esta encuesta, un trabajo de tiempo completo es de al menos 35 horas por semana.\n
This field is required
Which best describes your primary job?¿Qué es lo que mejor describe su trabajo principal?*\n
This field is required
At your primary job, do you have the ability to set or change your own start time?En su trabajo principal, ¿tiene la capacidad de establecer o cambiar su propia hora de entrada?*\n
This field is required
Do you have the option of working from home or an alternate location instead of going into your primary work place?¿Tiene la opción de trabajar desde casa o en un lugar alternativo en lugar de ir a su lugar de trabajo principal?*\n
This field is required
How many days do you usually work from home or an alternate location per week?¿Cuántos días a la semana suele trabajar desde su casa o en un lugar alternativo?*Please round up to the next integer (i.e., one day), if you only work from home or alternative locations half a day.Redondee al siguiente número entero (es decir, un día), si solo trabaja desde su casa o en ubicaciones alternativas medio día.\n
This field is required
What days of the week do you typically work from home or an alternate location?¿Qué días de la semana suele trabajar desde su casa o en un lugar alternativo?*Please select all that apply.Por favor seleccione todas las respuestas válidas.\n
This field is required
How did you usually get to your primary job last week? If you used more than one mode of transportation, please select the one used for most of the distance.¿Cómo llego a su trabajo principal la semana pasada? Si utilizó más de un medio de transporte, seleccione el que utilizó durante la mayor parte de la distancia.*\n
This field is required
What is your typical access/egress mode to/from the transit stop?¿Cuál es su modo típico de acceso/egreso hacia/desde la parada de tránsito?*\n
This field is required
\n
\n \n
","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":"
\n

OpenPATH Demographics Survey

\n \n \n

Información de nivel personalPersonal Level Information

¿Cuántos años tienes?How old are you?*\n
This field is required
¿Cuál es su género?What is your gender?\n
¿Te consideras transgénero?Do you consider yourself to be Transgender?*\n
This field is required
¿Cuál es su raza/etnicidad?What is your race/ethnicity?Por favor seleccione todas las respuestas válidas.Please select all that apply.\n
¿Tiene una licencia de conducir válida?Do you have a valid drivers license?*\n
This field is required
¿Es usted estudiante?Are you a student?*Incluyendo escuela pública / privada y escuela en casaIncluding public/private school and home school\n
This field is required
¿Cuál es el grado más alto o el título que ha obtenido?What is the highest level of education you have completed?*\n
This field is required
¿Eres un trabajador asalariado?Are you a paid worker?*\n
This field is required
¿Cuál de los siguientes te describe mejor?Which one below describe you best?*\n
This field is required
\n
\n

Información a nivel del hogarHousehold Level Information

¿Es propietario o alquila su casa?Do you own or rent your home?*\n
This field is required
¿Cuál es tu tipo de casa?What is your home type?*\n
This field is required
Por favor, identifique qué categoría representa el ingreso total de su hogar, antes de impuestos, en el último año.Please identify which category represents your total household income, before taxes, for last year.*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.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.\n
This field is required
Incluyéndose usted, ¿cuántas personas viven en su casa?Including yourself, how many people live in your home?*\n
This field is required
Incluido usted, ¿cuántos trabajadores hay en su hogar?Including yourself, how many workers are there in your household?*\n
This field is required
¿Cuántos niños menores de 18 años viven en su hogar?How many children under age 18 live in your home?*\n
This field is required
Incluyéndose usted, ¿cuántas personas tienen una licencia de conducir válida en su hogar?Including yourself, how many people have valid drivers licenses in your household?*\n
This field is required
¿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?How many motor vehicles are owned, leased, or available for regular use by the people who currently live in your household?*Incluya motocicletas, ciclomotores y vehículos recreativos.Include motorcycles, mopeds and RVs.\n
This field is required
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?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?*\n
This field is required
¿Tiene alguna condición médica que le dificulte viajar fuera de casa?Do you have a physical or medical condition that makes it difficult to travel outside of the home?*\n
This field is required
¿Cuánto tiempo ha tenido esta condición?How long you had this conditions?*\n
This field is required
\n
\n

Información relacionada con el trabajoJob Related Information

¿Tiene más de un trabajo?Do you have more than one job?*Nos referimos a más de un empleador, no solo a múltiples sitios de trabajo.We mean more than one employer, not just multiple job sites.\n
This field is required
¿Trabaja a tiempo completo o parcial en su trabajo principal?Do you work full-time or part-time at the primary job?*Para los propósitos de esta encuesta, un trabajo de tiempo completo es de al menos 35 horas por semana.A full time job is at least 35 hours per week.\n
This field is required
¿Qué es lo que mejor describe su trabajo principal?Which best describes your primary job?*\n
This field is required
En su trabajo principal, ¿tiene la capacidad de establecer o cambiar su propia hora de entrada?At your primary job, do you have the ability to set or change your own start time?*\n
This field is required
¿Tiene la opción de trabajar desde casa o en un lugar alternativo en lugar de ir a su lugar de trabajo principal?Do you have the option of working from home or an alternate location instead of going into your primary work place?*\n
This field is required
¿Cuántos días a la semana suele trabajar desde su casa o en un lugar alternativo?How many days do you usually work from home or an alternate location per week?*Redondee al siguiente número entero (es decir, un día), si solo trabaja desde su casa o en ubicaciones alternativas medio día.Please round up to the next integer (i.e., one day), if you only work from home or alternative locations half a day.\n
This field is required
¿Qué días de la semana suele trabajar desde su casa o en un lugar alternativo?What days of the week do you typically work from home or an alternate location?*Por favor seleccione todas las respuestas válidas.Please select all that apply.\n
This field is required
\n
\n \n
","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":"
\n

Fake Missing Trip survey

\n \n \n

Personal Level Information

Why were you not able to go?*Reason for missing trip\n
This field is required
What mode of transportation would you have taken if it were available?*\n
This field is required
\n
\n \n
","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":"
\n

Time-use survey

\n \n \n

Time-use questionsPreguntas sobre el uso del tiempo

Activity Type:Tipo de actividad:*In case of multi-tasking, you can select multiple activities.En caso de multitarea, puede seleccionar varias actividades.\n
This field is required
Personal Care activities:Actividades de cuidado personal:*\n
This field is required
Employment-related and Education activitiesActividades relacionadas con el empleo y la educación*\n
This field is required
Domestic activitiesActividades domesticas*\n
This field is required
Recreation and leisureRecreación y ocio*\n
This field is required
Voluntary work and care activitiesTrabajo voluntario y actividades de cuidado*\n
This field is required
\n
\n \n
","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":"
\n

Trip-end survey

\n \n \n
What were the purposes of this trip?*More than one purpose can be selected.\n
A trip can either be valid or not valid, it cannot be both.This field is required
\n
What were the modes of transport used in this trip?*More than one transport mode can be selected.\n
This field is required
\n
Total people in trip party*Including yourself\n
This field is required
\n
Non-household member(s) on trip*\n
This field is required
\n
Vehicle trip: Parking location*\n
This field is required
\n \n \n \n \n \n
","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":"
\n

Trip-end Survey

\n \n \n
What is the purpose of this trip?*\n
This field is required
\n
What is your main mode of travel for this trip?*Choose one that covers the longest distance\n
This field is required
\n
Total people in trip party*Including yourself\n
This field is required
\n
Non-household member(s) on trip*\n
This field is required
\n
Vehicle trip: Parking location*\n
This field is required
\n \n \n \n \n \n
","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? + + + + + + 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? + + + + + + 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? + + + + + + 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. + + + + + + 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? + + + + + + 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? + + + + + + 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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