diff --git a/.gitignore b/.gitignore index a8bde1b..6a68930 100644 --- a/.gitignore +++ b/.gitignore @@ -147,3 +147,4 @@ fabric.properties /live/ !/output/ /db/jobs.db +!/db/ diff --git a/biglist.json b/biglist.json index 6d76ff4..732b771 100644 --- a/biglist.json +++ b/biglist.json @@ -1,7178 +1 @@ -[ - [ - "contract", - 1426 - ], - [ - "developer", - 1221 - ], - [ - "javascript", - 1125 - ], - [ - "london", - 1085 - ], - [ - "js", - 1036 - ], - [ - "web", - 859 - ], - [ - "development", - 846 - ], - [ - "sql", - 839 - ], - [ - "client", - 815 - ], - [ - "react", - 632 - ], - [ - "data", - 604 - ], - [ - "html", - 603 - ], - [ - "software", - 577 - ], - [ - "remote", - 565 - ], - [ - "technical", - 559 - ], - [ - "agile", - 553 - ], - [ - "css", - 530 - ], - [ - "project", - 479 - ], - [ - "applications", - 470 - ], - [ - "aws", - 452 - ], - [ - "requirements", - 420 - ], - [ - "server", - 415 - ], - [ - "angular", - 409 - ], - [ - "application", - 401 - ], - [ - "understanding", - 399 - ], - [ - "tools", - 396 - ], - [ - "engineer", - 384 - ], - [ - "systems", - 383 - ], - [ - "python", - 381 - ], - [ - "java", - 376 - ], - [ - "net", - 351 - ], - [ - "node", - 347 - ], - [ - "technologies", - 341 - ], - [ - "testing", - 327 - ], - [ - "code", - 319 - ], - [ - "azure", - 303 - ], - [ - "c#", - 292 - ], - [ - "architecture", - 287 - ], - [ - "digital", - 270 - ], - [ - "responsibilities", - 256 - ], - [ - "c", - 254 - ], - [ - "communication", - 226 - ], - [ - "finance", - 222 - ], - [ - "git", - 219 - ], - [ - "devops", - 215 - ], - [ - "manager", - 213 - ], - [ - "amazon", - 210 - ], - [ - "trading", - 209 - ], - [ - "typescript", - 208 - ], - [ - "programming", - 205 - ], - [ - "api", - 201 - ], - [ - "ui", - 200 - ], - [ - "frameworks", - 199 - ], - [ - "opportunities", - 198 - ], - [ - "database", - 195 - ], - [ - "organisation", - 195 - ], - [ - "stakeholders", - 189 - ], - [ - "docker", - 171 - ], - [ - "infrastructure", - 170 - ], - [ - "architect", - 169 - ], - [ - "framework", - 168 - ], - [ - "complex", - 164 - ], - [ - "vue", - 163 - ], - [ - "automation", - 157 - ], - [ - "microsoft", - 154 - ], - [ - "central", - 153 - ], - [ - "implementation", - 153 - ], - [ - "banking", - 152 - ], - [ - "microservices", - 150 - ], - [ - "kubernetes", - 150 - ], - [ - "mysql", - 148 - ], - [ - "remotely", - 148 - ], - [ - "databases", - 141 - ], - [ - "oracle", - 139 - ], - [ - "programme", - 138 - ], - [ - "mobile", - 136 - ], - [ - "linux", - 135 - ], - [ - "scrum", - 135 - ], - [ - "apis", - 131 - ], - [ - "analytics", - 130 - ], - [ - "nodejs", - 127 - ], - [ - "google", - 123 - ], - [ - "tdd", - 120 - ], - [ - "programmer", - 120 - ], - [ - "automated", - 120 - ], - [ - "transformation", - 114 - ], - [ - "documentation", - 113 - ], - [ - "jenkins", - 110 - ], - [ - "coding", - 110 - ], - [ - "php", - 107 - ], - [ - "lambda", - 99 - ], - [ - "sass", - 98 - ], - [ - "apps", - 96 - ], - [ - "jquery", - 96 - ], - [ - "professional", - 94 - ], - [ - "accessibility", - 92 - ], - [ - "implementing", - 92 - ], - [ - "redux", - 91 - ], - [ - "environments", - 88 - ], - [ - "windows", - 87 - ], - [ - "configuration", - 86 - ], - [ - "collaborative", - 84 - ], - [ - "intelligence", - 84 - ], - [ - "online", - 83 - ], - [ - "unix", - 83 - ], - [ - "functions", - 82 - ], - [ - "scripting", - 81 - ], - [ - "app", - 80 - ], - [ - "operating", - 79 - ], - [ - "etl", - 77 - ], - [ - "browser", - 74 - ], - [ - "international", - 74 - ], - [ - "postgresql", - 73 - ], - [ - "asp", - 73 - ], - [ - "engineers", - 72 - ], - [ - "fintech", - 71 - ], - [ - "patterns", - 71 - ], - [ - "apache", - 69 - ], - [ - "mvc", - 69 - ], - [ - "responsibility", - 69 - ], - [ - "network", - 69 - ], - [ - "excel", - 68 - ], - [ - "db", - 67 - ], - [ - "json", - 67 - ], - [ - "cycle", - 67 - ], - [ - "collaborating", - 67 - ], - [ - "capabilities", - 67 - ], - [ - "frontend", - 66 - ], - [ - "methodologies", - 66 - ], - [ - "mongodb", - 65 - ], - [ - "demonstrable", - 64 - ], - [ - "restful", - 62 - ], - [ - "nosql", - 62 - ], - [ - "model", - 61 - ], - [ - "developed", - 60 - ], - [ - "functionality", - 59 - ], - [ - "models", - 59 - ], - [ - "visual", - 58 - ], - [ - "advantageous", - 58 - ], - [ - "relationships", - 58 - ], - [ - "terraform", - 57 - ], - [ - "servers", - 57 - ], - [ - "spark", - 56 - ], - [ - "consideration", - 56 - ], - [ - "graphql", - 55 - ], - [ - "native", - 54 - ], - [ - "ecs", - 54 - ], - [ - "websites", - 54 - ], - [ - "documents", - 54 - ], - [ - "lifecycle", - 53 - ], - [ - "administration", - 52 - ], - [ - "reactjs", - 51 - ], - [ - "civil", - 51 - ], - [ - "edinburgh", - 51 - ], - [ - "storage", - 50 - ], - [ - "document", - 50 - ], - [ - "deliverables", - 50 - ], - [ - "iot", - 50 - ], - [ - "es", - 49 - ], - [ - "dashboards", - 49 - ], - [ - "troubleshooting", - 49 - ], - [ - "xml", - 49 - ], - [ - "android", - 48 - ], - [ - "quantitative", - 48 - ], - [ - "organisations", - 47 - ], - [ - "jira", - 47 - ], - [ - "kotlin", - 47 - ], - [ - "contractor", - 47 - ], - [ - "elasticsearch", - 46 - ], - [ - "templates", - 46 - ], - [ - "collaboration", - 46 - ], - [ - "qualifications", - 46 - ], - [ - "developments", - 46 - ], - [ - "hosted", - 46 - ], - [ - "api's", - 45 - ], - [ - "disciplinary", - 45 - ], - [ - "vuejs", - 44 - ], - [ - "availability", - 44 - ], - [ - "kafka", - 44 - ], - [ - "express", - 44 - ], - [ - "methods", - 43 - ], - [ - "tuning", - 43 - ], - [ - "visualisation", - 43 - ], - [ - "ruby", - 43 - ], - [ - "networking", - 42 - ], - [ - "communications", - 42 - ], - [ - "scripts", - 42 - ], - [ - "prototypes", - 42 - ], - [ - "bdd", - 42 - ], - [ - "contributing", - 42 - ], - [ - "collaboratively", - 42 - ], - [ - "dev", - 42 - ], - [ - "glasgow", - 42 - ], - [ - "transactions", - 41 - ], - [ - "bootstrap", - 40 - ], - [ - "grunt", - 40 - ], - [ - "micro", - 39 - ], - [ - "ios", - 39 - ], - [ - "specifically", - 39 - ], - [ - "improvements", - 39 - ], - [ - "apigee", - 38 - ], - [ - "architectures", - 38 - ], - [ - "bug", - 38 - ], - [ - "reassignment", - 38 - ], - [ - "angularjs", - 37 - ], - [ - "ansible", - 37 - ], - [ - "expectations", - 37 - ], - [ - "devices", - 36 - ], - [ - "query", - 36 - ], - [ - "enhancements", - 36 - ], - [ - "organization", - 36 - ], - [ - "partnerships", - 36 - ], - [ - "selenium", - 36 - ], - [ - "communicating", - 36 - ], - [ - "jest", - 36 - ], - [ - "particularly", - 35 - ], - [ - "powershell", - 35 - ], - [ - "boot", - 35 - ], - [ - "demonstrated", - 35 - ], - [ - "sites", - 35 - ], - [ - "kanban", - 35 - ], - [ - "considerations", - 35 - ], - [ - "dba", - 34 - ], - [ - "interpersonal", - 34 - ], - [ - "architectural", - 34 - ], - [ - "protocols", - 33 - ], - [ - "specification", - 33 - ], - [ - "optimisation", - 33 - ], - [ - "comprehensive", - 33 - ], - [ - "analyse", - 32 - ], - [ - "private", - 32 - ], - [ - "scotland", - 32 - ], - [ - "fullstack", - 32 - ], - [ - "ssrs", - 32 - ], - [ - "github", - 32 - ], - [ - "contracts", - 32 - ], - [ - "specialising", - 31 - ], - [ - "stored", - 31 - ], - [ - "graph", - 31 - ], - [ - "virtual", - 30 - ], - [ - "integrate", - 30 - ], - [ - "specifications", - 30 - ], - [ - "debugging", - 30 - ], - [ - "professionals", - 30 - ], - [ - "webpack", - 30 - ], - [ - "mac", - 29 - ], - [ - "independently", - 29 - ], - [ - "internet", - 29 - ], - [ - "scratch", - 28 - ], - [ - "function", - 28 - ], - [ - "https", - 28 - ], - [ - "contribution", - 28 - ], - [ - "vba", - 28 - ], - [ - "hires", - 28 - ], - [ - "containerisation", - 28 - ], - [ - "distributed", - 27 - ], - [ - "elastic", - 27 - ], - [ - "ai", - 27 - ], - [ - "soap", - 27 - ], - [ - "administrator", - 27 - ], - [ - "technologist", - 27 - ], - [ - "accountabilities", - 27 - ], - [ - "hadoop", - 26 - ], - [ - "wireframes", - 26 - ], - [ - "magento", - 26 - ], - [ - "postgres", - 26 - ], - [ - "recommendations", - 26 - ], - [ - "competencies", - 26 - ], - [ - "logstash", - 26 - ], - [ - "dynamodb", - 25 - ], - [ - "transform", - 25 - ], - [ - "paas", - 25 - ], - [ - "presentation", - 25 - ], - [ - "mapping", - 25 - ], - [ - "mocha", - 25 - ], - [ - "wordpress", - 24 - ], - [ - "sdk", - 24 - ], - [ - "dns", - 24 - ], - [ - "successfully", - 24 - ], - [ - "resolve", - 24 - ], - [ - "warehousing", - 24 - ], - [ - "npm", - 24 - ], - [ - "collectively", - 24 - ], - [ - "junit", - 24 - ], - [ - "www", - 23 - ], - [ - "integrations", - 23 - ], - [ - "communicator", - 23 - ], - [ - "prototyping", - 23 - ], - [ - "toolsets", - 23 - ], - [ - "certifications", - 23 - ], - [ - "mustache", - 23 - ], - [ - "modules", - 22 - ], - [ - "relationship", - 22 - ], - [ - "saas", - 22 - ], - [ - "middleware", - 22 - ], - [ - "hybrid", - 22 - ], - [ - "certification", - 22 - ], - [ - "schema", - 22 - ], - [ - "datamodelling", - 22 - ], - [ - "ibm", - 21 - ], - [ - "optimization", - 21 - ], - [ - "discriminate", - 21 - ], - [ - "qualification", - 21 - ], - [ - "library", - 21 - ], - [ - "forms", - 21 - ], - [ - "interactions", - 21 - ], - [ - "gitlab", - 21 - ], - [ - "device", - 21 - ], - [ - "manufacturing", - 21 - ], - [ - "tables", - 21 - ], - [ - "ip", - 20 - ], - [ - "organisational", - 20 - ], - [ - "sketch", - 20 - ], - [ - "streams", - 20 - ], - [ - "vanilla", - 20 - ], - [ - "peer", - 20 - ], - [ - "troubleshoot", - 20 - ], - [ - "multinational", - 19 - ], - [ - "cms", - 19 - ], - [ - "appointments", - 19 - ], - [ - "spec", - 19 - ], - [ - "portal", - 19 - ], - [ - "enthusiastic", - 19 - ], - [ - "objects", - 19 - ], - [ - "distribution", - 19 - ], - [ - "connectivity", - 19 - ], - [ - "alternatively", - 19 - ], - [ - "dhcp", - 19 - ], - [ - "gis", - 19 - ], - [ - "aggressively", - 19 - ], - [ - "scala", - 19 - ], - [ - "iis", - 19 - ], - [ - "webapi", - 18 - ], - [ - "automate", - 18 - ], - [ - "querying", - 18 - ], - [ - "architecting", - 18 - ], - [ - "manipulation", - 18 - ], - [ - "restrictions", - 18 - ], - [ - "records", - 18 - ], - [ - "authentication", - 18 - ], - [ - "implementations", - 18 - ], - [ - "investigation", - 18 - ], - [ - "gateway", - 17 - ], - [ - "swagger", - 17 - ], - [ - "prioritisation", - 17 - ], - [ - "multidisciplinary", - 17 - ], - [ - "module", - 17 - ], - [ - "unfortunately", - 17 - ], - [ - "rabbitmq", - 16 - ], - [ - "pdf", - 16 - ], - [ - "sdlc", - 16 - ], - [ - "ingestion", - 16 - ], - [ - "laravel", - 16 - ], - [ - "redis", - 16 - ], - [ - "desktop", - 16 - ], - [ - "appreciation", - 16 - ], - [ - "itil", - 16 - ], - [ - "appropriately", - 16 - ], - [ - "refactoring", - 15 - ], - [ - "conversation", - 15 - ], - [ - "cyber", - 15 - ], - [ - "sybase", - 15 - ], - [ - "microservice", - 15 - ], - [ - "dbs", - 15 - ], - [ - "sophisticated", - 15 - ], - [ - "golang", - 15 - ], - [ - "productivity", - 14 - ], - [ - "portals", - 14 - ], - [ - "ssas", - 14 - ], - [ - "plugins", - 14 - ], - [ - "databricks", - 14 - ], - [ - "identification", - 14 - ], - [ - "commercially", - 14 - ], - [ - "oauth", - 14 - ], - [ - "consultancies", - 14 - ], - [ - "notwithstanding", - 14 - ], - [ - "installation", - 14 - ], - [ - "bugs", - 13 - ], - [ - "testers", - 13 - ], - [ - "orchestration", - 13 - ], - [ - "participating", - 13 - ], - [ - "bash", - 13 - ], - [ - "spa", - 13 - ], - [ - "http", - 13 - ], - [ - "karma", - 13 - ], - [ - "continuously", - 13 - ], - [ - "nginx", - 12 - ], - [ - "routing", - 12 - ], - [ - "pivotal", - 12 - ], - [ - "fundamentals", - 12 - ], - [ - "revolutionise", - 12 - ], - [ - "mongo", - 12 - ], - [ - "rdbms", - 12 - ], - [ - "participation", - 12 - ], - [ - "scss", - 12 - ], - [ - "warwickshire", - 12 - ], - [ - "efficiencies", - 12 - ], - [ - "practitioner", - 12 - ], - [ - "organizational", - 12 - ], - [ - "presentations", - 11 - ], - [ - "mock", - 11 - ], - [ - "provisioning", - 11 - ], - [ - "quant", - 11 - ], - [ - "recovery", - 11 - ], - [ - "vmware", - 11 - ], - [ - "freelance", - 11 - ], - [ - "institutions", - 11 - ], - [ - "consultative", - 11 - ], - [ - "dependencies", - 11 - ], - [ - "confidential", - 11 - ], - [ - "rails", - 11 - ], - [ - "rpc", - 11 - ], - [ - "chef", - 11 - ], - [ - "construction", - 11 - ], - [ - "websockets", - 11 - ], - [ - "memory", - 11 - ], - [ - "blogs", - 11 - ], - [ - "swift", - 11 - ], - [ - "static", - 11 - ], - [ - "consultation", - 11 - ], - [ - "admin", - 10 - ], - [ - "svn", - 10 - ], - [ - "disaster", - 10 - ], - [ - "pharmaceutical", - 10 - ], - [ - "tomcat", - 10 - ], - [ - "communicates", - 10 - ], - [ - "telecommunications", - 10 - ], - [ - "functionally", - 10 - ], - [ - "interoperability", - 10 - ], - [ - "customization", - 10 - ], - [ - "representing", - 10 - ], - [ - "cucumber", - 10 - ], - [ - "implications", - 10 - ], - [ - "hertfordshire", - 10 - ], - [ - "openui", - 10 - ], - [ - "effectiveness", - 10 - ], - [ - "nunit", - 10 - ], - [ - "gov", - 10 - ], - [ - "geospatial", - 10 - ], - [ - "twitter", - 10 - ], - [ - "vsphere", - 10 - ], - [ - "gradle", - 10 - ], - [ - "modernisation", - 10 - ], - [ - "customizations", - 10 - ], - [ - "swql", - 10 - ], - [ - "lamp", - 9 - ], - [ - "sub", - 9 - ], - [ - "hosting", - 9 - ], - [ - "modeller", - 9 - ], - [ - "emails", - 9 - ], - [ - "transactional", - 9 - ], - [ - "axure", - 9 - ], - [ - "triggers", - 9 - ], - [ - "eclipse", - 9 - ], - [ - "maps", - 9 - ], - [ - "knowledgeable", - 9 - ], - [ - "iso", - 9 - ], - [ - "coordinating", - 9 - ], - [ - "differentiating", - 9 - ], - [ - "computappoint", - 9 - ], - [ - "demonstrating", - 9 - ], - [ - "threads", - 9 - ], - [ - "jsed", - 9 - ], - [ - "contributions", - 9 - ], - [ - "facilitating", - 9 - ], - [ - "schemas", - 9 - ], - [ - "escript", - 9 - ], - [ - "interpreting", - 9 - ], - [ - "progressively", - 9 - ], - [ - "dramatically", - 9 - ], - [ - "flex", - 9 - ], - [ - "department's", - 9 - ], - [ - "responsiveness", - 9 - ], - [ - "firewall", - 8 - ], - [ - "olap", - 8 - ], - [ - "contractexperience", - 8 - ], - [ - "autonomously", - 8 - ], - [ - "bedfordshire", - 8 - ], - [ - "datawarehouse", - 8 - ], - [ - "aptitude", - 8 - ], - [ - "ajax", - 8 - ], - [ - "visualisations", - 8 - ], - [ - "webgl", - 8 - ], - [ - "mining", - 8 - ], - [ - "facilitation", - 8 - ], - [ - "constructive", - 8 - ], - [ - "xamarin", - 8 - ], - [ - "postman", - 8 - ], - [ - "mq", - 8 - ], - [ - "customisation", - 8 - ], - [ - "technologists", - 8 - ], - [ - "kubternetes", - 8 - ], - [ - "iotl", - 8 - ], - [ - "audio", - 8 - ], - [ - "headless", - 8 - ], - [ - "embedded", - 8 - ], - [ - "mockups", - 8 - ], - [ - "consistently", - 8 - ], - [ - "toolset", - 8 - ], - [ - "characteristic", - 8 - ], - [ - "technological", - 8 - ], - [ - "interviewing", - 8 - ], - [ - "configurations", - 8 - ], - [ - "ssh", - 8 - ], - [ - "tsql", - 7 - ], - [ - "blockchain", - 7 - ], - [ - "ember", - 7 - ], - [ - "browsers", - 7 - ], - [ - "visualization", - 7 - ], - [ - "contractsalary", - 7 - ], - [ - "intermediary", - 7 - ], - [ - "mssql", - 7 - ], - [ - "debug", - 7 - ], - [ - "patches", - 7 - ], - [ - "hyper", - 7 - ], - [ - "modeling", - 7 - ], - [ - "benchmarking", - 7 - ], - [ - "tags", - 7 - ], - [ - "internationally", - 7 - ], - [ - "datastage", - 7 - ], - [ - "cypress", - 7 - ], - [ - "jsreact", - 7 - ], - [ - "canary", - 7 - ], - [ - "gherkin", - 7 - ], - [ - "routine", - 7 - ], - [ - "ionic", - 7 - ], - [ - "cognos", - 7 - ], - [ - "transforming", - 7 - ], - [ - "firebase", - 7 - ], - [ - "administrative", - 7 - ], - [ - "cache", - 7 - ], - [ - "synapse", - 7 - ], - [ - "circumstances", - 7 - ], - [ - "cassandra", - 7 - ], - [ - "yarn", - 7 - ], - [ - "wintel", - 7 - ], - [ - "predominantly", - 7 - ], - [ - "demonstrations", - 7 - ], - [ - "wifi", - 7 - ], - [ - "snmp", - 7 - ], - [ - "mercurial", - 7 - ], - [ - "certificates", - 7 - ], - [ - "redesign", - 6 - ], - [ - "verification", - 6 - ], - [ - "errors", - 6 - ], - [ - "mathematical", - 6 - ], - [ - "cloudformation", - 6 - ], - [ - "temps", - 6 - ], - [ - "perl", - 6 - ], - [ - "alternatives", - 6 - ], - [ - "ldap", - 6 - ], - [ - "additionally", - 6 - ], - [ - "embedding", - 6 - ], - [ - "teradata", - 6 - ], - [ - "satigo", - 6 - ], - [ - "maintainable", - 6 - ], - [ - "unsuccessful", - 6 - ], - [ - "configure", - 6 - ], - [ - "historically", - 6 - ], - [ - "visualizations", - 6 - ], - [ - "commit", - 6 - ], - [ - "codes", - 6 - ], - [ - "protractor", - 6 - ], - [ - "schemes", - 6 - ], - [ - "accountability", - 6 - ], - [ - "widgets", - 6 - ], - [ - "layouts", - 6 - ], - [ - "institutional", - 6 - ], - [ - "mstest", - 6 - ], - [ - "prototype", - 6 - ], - [ - "notifications", - 6 - ], - [ - "approximately", - 6 - ], - [ - "smartsourcing", - 6 - ], - [ - "geocortex", - 6 - ], - [ - "cdns", - 6 - ], - [ - "squid", - 6 - ], - [ - "ntp", - 6 - ], - [ - "proxies", - 6 - ], - [ - "establishing", - 6 - ], - [ - "xenapp", - 6 - ], - [ - "peterborough", - 6 - ], - [ - "sns", - 5 - ], - [ - "bigquery", - 5 - ], - [ - "compute", - 5 - ], - [ - "toad", - 5 - ], - [ - "patch", - 5 - ], - [ - "intermediate", - 5 - ], - [ - "typography", - 5 - ], - [ - "backbone", - 5 - ], - [ - "opportunitiesflexible", - 5 - ], - [ - "segmentation", - 5 - ], - [ - "publications", - 5 - ], - [ - "array", - 5 - ], - [ - "subscriptions", - 5 - ], - [ - "considerable", - 5 - ], - [ - "interpretation", - 5 - ], - [ - "analytic", - 5 - ], - [ - "bitbucket", - 5 - ], - [ - "pixel", - 5 - ], - [ - "xhtml", - 5 - ], - [ - "redevelopment", - 5 - ], - [ - "knockout", - 5 - ], - [ - "allegisgroup", - 5 - ], - [ - "sqs", - 5 - ], - [ - "conferencing", - 5 - ], - [ - "wlan", - 5 - ], - [ - "complimentary", - 5 - ], - [ - "xmapp", - 5 - ], - [ - "occasionally", - 5 - ], - [ - "folders", - 5 - ], - [ - "bot", - 5 - ], - [ - "ui's", - 5 - ], - [ - "jsreactsccleared", - 5 - ], - [ - "shortlisting", - 5 - ], - [ - "investigating", - 5 - ], - [ - "headquartered", - 5 - ], - [ - "automatable", - 5 - ], - [ - "gatsby", - 5 - ], - [ - "experimenting", - 5 - ], - [ - "amplify", - 5 - ], - [ - "pwa", - 5 - ], - [ - "exploitation", - 5 - ], - [ - "engines", - 5 - ], - [ - "vscode", - 5 - ], - [ - "reactive", - 5 - ], - [ - "entertainment", - 5 - ], - [ - "searchability", - 5 - ], - [ - "router", - 5 - ], - [ - "installations", - 5 - ], - [ - "modular", - 5 - ], - [ - "cocoa", - 5 - ], - [ - "tailwind", - 5 - ], - [ - "metadata", - 5 - ], - [ - "demonstrates", - 5 - ], - [ - "ethernet", - 5 - ], - [ - "jsv", - 5 - ], - [ - "transparency", - 5 - ], - [ - "perspectives", - 5 - ], - [ - "civilization", - 5 - ], - [ - "webservices", - 5 - ], - [ - "isp", - 5 - ], - [ - "memcached", - 5 - ], - [ - "vulnerabilities", - 5 - ], - [ - "polyglot", - 5 - ], - [ - "curves", - 5 - ], - [ - "instrumental", - 5 - ], - [ - "threejs", - 5 - ], - [ - "vulnerability", - 5 - ], - [ - "collaborates", - 5 - ], - [ - "clarifications", - 5 - ], - [ - "standardization", - 5 - ], - [ - "automatization", - 5 - ], - [ - "foundational", - 5 - ], - [ - "yaml", - 5 - ], - [ - "consideration!", - 5 - ], - [ - "understandable", - 4 - ], - [ - "stamp", - 4 - ], - [ - "refactor", - 4 - ], - [ - "cdn", - 4 - ], - [ - "customisations", - 4 - ], - [ - "administering", - 4 - ], - [ - "reconciliation", - 4 - ], - [ - "characteristics", - 4 - ], - [ - "transformations", - 4 - ], - [ - "northamptonshire", - 4 - ], - [ - "optimisations", - 4 - ], - [ - "mainframe", - 4 - ], - [ - "spreadsheets", - 4 - ], - [ - "jsp", - 4 - ], - [ - "accommodation", - 4 - ], - [ - "toolkit", - 4 - ], - [ - "repositories", - 4 - ], - [ - "calculations", - 4 - ], - [ - "vpn", - 4 - ], - [ - "snowflake", - 4 - ], - [ - "interventions", - 4 - ], - [ - "simultaneously", - 4 - ], - [ - "matrix", - 4 - ], - [ - "nasa", - 4 - ], - [ - "distributing", - 4 - ], - [ - "redhat", - 4 - ], - [ - "demonstratable", - 4 - ], - [ - "powerpoint", - 4 - ], - [ - "coordination", - 4 - ], - [ - "accomplished", - 4 - ], - [ - "highlighting", - 4 - ], - [ - "determination", - 4 - ], - [ - "introduction", - 4 - ], - [ - "cursors", - 4 - ], - [ - "lambdas", - 4 - ], - [ - "retrospectives", - 4 - ], - [ - "scopes", - 4 - ], - [ - "ssl", - 4 - ], - [ - "personalisation", - 4 - ], - [ - "lookups", - 4 - ], - [ - "supportability", - 4 - ], - [ - "virtualisation", - 4 - ], - [ - "microservces", - 4 - ], - [ - "natively", - 4 - ], - [ - "optimizations", - 4 - ], - [ - "cambridgeshire", - 4 - ], - [ - "widgit", - 4 - ], - [ - "sonar", - 4 - ], - [ - "agenda", - 4 - ], - [ - "domino", - 4 - ], - [ - "tp_eseye_frontend", - 4 - ], - [ - "webpacker", - 4 - ], - [ - "satisfaction", - 4 - ], - [ - "constructively", - 4 - ], - [ - "advertisement", - 4 - ], - [ - "gdpr", - 4 - ], - [ - "mobx", - 4 - ], - [ - "rhel", - 4 - ], - [ - "centos", - 4 - ], - [ - "formats", - 4 - ], - [ - "iconic", - 4 - ], - [ - "firetv", - 4 - ], - [ - "tvos", - 4 - ], - [ - "transact", - 4 - ], - [ - "drives", - 4 - ], - [ - "authorisation", - 4 - ], - [ - "participants", - 4 - ], - [ - "tablets", - 4 - ], - [ - "aosp", - 4 - ], - [ - "kitkat", - 4 - ], - [ - "environmental", - 4 - ], - [ - "headquarters", - 4 - ], - [ - "standardisation", - 4 - ], - [ - "multitasking", - 4 - ], - [ - "browserstack", - 4 - ], - [ - "netbeans", - 4 - ], - [ - "openapi", - 4 - ], - [ - "interestplease", - 4 - ], - [ - "compatibility", - 3 - ], - [ - "contractwork", - 3 - ], - [ - "reconciliations", - 3 - ], - [ - "representation", - 3 - ], - [ - "utility", - 3 - ], - [ - "esp", - 3 - ], - [ - "api’s", - 3 - ], - [ - "investigative", - 3 - ], - [ - "nlp", - 3 - ], - [ - "permanentsalary", - 3 - ], - [ - "yearexperience", - 3 - ], - [ - "calibre", - 3 - ], - [ - "satisfactory", - 3 - ], - [ - "buckinghamshire", - 3 - ], - [ - "cli", - 3 - ], - [ - "virus", - 3 - ], - [ - "xslt", - 3 - ], - [ - "profitability", - 3 - ], - [ - "clouds", - 3 - ], - [ - "firewalls", - 3 - ], - [ - "razor", - 3 - ], - [ - "font", - 3 - ], - [ - "correspondence", - 3 - ], - [ - "stirling", - 3 - ], - [ - "ubuntu", - 3 - ], - [ - "meta", - 3 - ], - [ - "suse", - 3 - ], - [ - "transportation", - 3 - ], - [ - "counterparts", - 3 - ], - [ - "pivot", - 3 - ], - [ - "ethical", - 3 - ], - [ - "webdriver", - 3 - ], - [ - "plsql", - 3 - ], - [ - "javasscript", - 3 - ], - [ - "csv", - 3 - ], - [ - "shareholders", - 3 - ], - [ - "filters", - 3 - ], - [ - "recognisable", - 3 - ], - [ - "arrays", - 3 - ], - [ - "variables", - 3 - ], - [ - "nestjs", - 3 - ], - [ - "heroku", - 3 - ], - [ - "cordova", - 3 - ], - [ - "conceptualizing", - 3 - ], - [ - "predict", - 3 - ], - [ - "individuality", - 3 - ], - [ - "cosmosdb", - 3 - ], - [ - "morgan", - 3 - ], - [ - "subsequently", - 3 - ], - [ - "acknowledged", - 3 - ], - [ - "replatforming", - 3 - ], - [ - "consolidation", - 3 - ], - [ - "strategically", - 3 - ], - [ - "immediately!", - 3 - ], - [ - "propositions", - 3 - ], - [ - "safeguarding", - 3 - ], - [ - "repos", - 3 - ], - [ - "multimedia", - 3 - ], - [ - "preventative", - 3 - ], - [ - "webapp", - 3 - ], - [ - "presentational", - 3 - ], - [ - "analytically", - 3 - ], - [ - "obligatoires", - 3 - ], - [ - "connaissance", - 3 - ], - [ - "environnement", - 3 - ], - [ - "approachable", - 3 - ], - [ - "automatically", - 3 - ], - [ - "surveillance", - 3 - ], - [ - "collaborators", - 3 - ], - [ - "hypertext", - 3 - ], - [ - "jmeter", - 3 - ], - [ - "appian", - 3 - ], - [ - "nodes", - 3 - ], - [ - "wsdl", - 3 - ], - [ - "jdbc", - 3 - ], - [ - "registration", - 3 - ], - [ - "transferring", - 3 - ], - [ - "functionalities", - 3 - ], - [ - "intellij", - 3 - ], - [ - "maintainability", - 3 - ], - [ - "authorization", - 3 - ], - [ - "sparta", - 3 - ], - [ - "render", - 3 - ], - [ - "christopherson", - 3 - ], - [ - "cybersecurity", - 3 - ], - [ - "integration's", - 3 - ], - [ - "understandings", - 3 - ], - [ - "middot", - 3 - ], - [ - "pascal", - 3 - ], - [ - "openvms", - 3 - ], - [ - "instructions", - 3 - ], - [ - "underwriting", - 3 - ], - [ - "deliverable's", - 3 - ], - [ - "vbscript", - 3 - ], - [ - "datacentres", - 3 - ], - [ - "etls", - 3 - ], - [ - "counhbase", - 3 - ], - [ - "infrastructures", - 3 - ], - [ - "operationally", - 3 - ], - [ - "conversations", - 3 - ], - [ - "frames", - 3 - ], - [ - "extensibility", - 3 - ], - [ - "underrepresented", - 3 - ], - [ - "multivariate", - 3 - ], - [ - "containerization", - 3 - ], - [ - "achievements", - 3 - ], - [ - "preprocessors", - 3 - ], - [ - "appliance", - 3 - ], - [ - "distributions", - 3 - ], - [ - "crime", - 3 - ], - [ - "grok", - 3 - ], - [ - "accreditation", - 3 - ], - [ - "editor", - 3 - ], - [ - "intermediaries", - 3 - ], - [ - "buckets", - 3 - ], - [ - "personalization", - 3 - ], - [ - "sustainability", - 3 - ], - [ - "sensors", - 3 - ], - [ - "advancements", - 3 - ], - [ - "flux", - 3 - ], - [ - "aria", - 3 - ], - [ - "jboss", - 3 - ], - [ - "estamp", - 2 - ], - [ - "pub", - 2 - ], - [ - "experiencing", - 2 - ], - [ - "ftp", - 2 - ], - [ - "sms", - 2 - ], - [ - "subsidiaries", - 2 - ], - [ - "contractually", - 2 - ], - [ - "ecosystems", - 2 - ], - [ - "significantly", - 2 - ], - [ - "personalized", - 2 - ], - [ - "aurora", - 2 - ], - [ - "programmatic", - 2 - ], - [ - "niederdorfer", - 2 - ], - [ - "libor", - 2 - ], - [ - "sysadmin", - 2 - ], - [ - "independence", - 2 - ], - [ - "architected", - 2 - ], - [ - "dayexperience", - 2 - ], - [ - "webpage", - 2 - ], - [ - "acquisitions", - 2 - ], - [ - "dataops", - 2 - ], - [ - "datastore", - 2 - ], - [ - "kaleidoscope", - 2 - ], - [ - "participates", - 2 - ], - [ - "clarification", - 2 - ], - [ - "fuzzy", - 2 - ], - [ - "commissioning", - 2 - ], - [ - "spikes", - 2 - ], - [ - "modifications", - 2 - ], - [ - "geo", - 2 - ], - [ - "confidentiality", - 2 - ], - [ - "undergraduates", - 2 - ], - [ - "businessobjects", - 2 - ], - [ - "contributors", - 2 - ], - [ - "scotland's", - 2 - ], - [ - "intel", - 2 - ], - [ - "macosx", - 2 - ], - [ - "meteor", - 2 - ], - [ - "contemporary", - 2 - ], - [ - "osql", - 2 - ], - [ - "olinux", - 2 - ], - [ - "gui", - 2 - ], - [ - "intervention", - 2 - ], - [ - "minimisation", - 2 - ], - [ - "pseudonymisation", - 2 - ], - [ - "websocket", - 2 - ], - [ - "kubernetesyaml", - 2 - ], - [ - "metropolitan", - 2 - ], - [ - "jsam", - 2 - ], - [ - "dom", - 2 - ], - [ - "scrums", - 2 - ], - [ - "deb", - 2 - ], - [ - "personality!", - 2 - ], - [ - "transferrable", - 2 - ], - [ - "interdependencies", - 2 - ], - [ - "entrepreneurial", - 2 - ], - [ - "influxdb", - 2 - ], - [ - "transferable", - 2 - ], - [ - "gitflow", - 2 - ], - [ - "telco", - 2 - ], - [ - "connectors", - 2 - ], - [ - "promise", - 2 - ], - [ - "chatbots", - 2 - ], - [ - "corresponding", - 2 - ], - [ - "conceptually", - 2 - ], - [ - "mariadb", - 2 - ], - [ - "specializing", - 2 - ], - [ - "phonegap", - 2 - ], - [ - "conventional", - 2 - ], - [ - "representatives", - 2 - ], - [ - "incorporating", - 2 - ], - [ - "personalisations", - 2 - ], - [ - "monolithic", - 2 - ], - [ - "gloucestershire", - 2 - ], - [ - "dissemination", - 2 - ], - [ - "laptopaccess", - 2 - ], - [ - "prioritizing", - 2 - ], - [ - "responsibilites", - 2 - ], - [ - "reddis", - 2 - ], - [ - "toolchains", - 2 - ], - [ - "jsazure", - 2 - ], - [ - "discrimination", - 2 - ], - [ - "balsamiq", - 2 - ], - [ - "stripe", - 2 - ], - [ - "couchbase", - 2 - ], - [ - "erlang", - 2 - ], - [ - "optionnelles", - 2 - ], - [ - "dataset", - 2 - ], - [ - "undergraduate", - 2 - ], - [ - "epidemiology", - 2 - ], - [ - "epidemiological", - 2 - ], - [ - "@contractswill", - 2 - ], - [ - "chrome", - 2 - ], - [ - "universities", - 2 - ], - [ - "digitally", - 2 - ], - [ - "null", - 2 - ], - [ - "revolutionary", - 2 - ], - [ - "sonarqube", - 2 - ], - [ - "responsabilit", - 2 - ], - [ - "connaissances", - 2 - ], - [ - "reduction", - 2 - ], - [ - "cinema", - 2 - ], - [ - "neurodiverse", - 2 - ], - [ - "jsnkglobalconleadlon", - 2 - ], - [ - "interrogation", - 2 - ], - [ - "xss", - 2 - ], - [ - "tagged", - 2 - ], - [ - "hierarchical", - 2 - ], - [ - "opporutunity", - 2 - ], - [ - "svg", - 2 - ], - [ - "localstorage", - 2 - ], - [ - "postresql", - 2 - ], - [ - "modernization", - 2 - ], - [ - "rdb", - 2 - ], - [ - "postgesql", - 2 - ], - [ - "systemv", - 2 - ], - [ - "jamstack", - 2 - ], - [ - "robotics", - 2 - ], - [ - "routes", - 2 - ], - [ - "datawarehouses", - 2 - ], - [ - "webm", - 2 - ], - [ - "apollo", - 2 - ], - [ - "thoughtonomy", - 2 - ], - [ - "mpeg", - 2 - ], - [ - "hevc", - 2 - ], - [ - "ioc", - 2 - ], - [ - "xcode", - 2 - ], - [ - "specialised", - 2 - ], - [ - "prescription", - 2 - ], - [ - "mozaic", - 2 - ], - [ - "referenceable", - 2 - ], - [ - "patton", - 2 - ], - [ - "nottinghamshire", - 2 - ], - [ - "commensurate", - 2 - ], - [ - "storytelling", - 2 - ], - [ - "legislations", - 2 - ], - [ - "containerized", - 2 - ], - [ - "instructional", - 2 - ], - [ - "arrangements", - 2 - ], - [ - "disabilities", - 2 - ], - [ - "requirejs", - 2 - ], - [ - "investigators", - 2 - ], - [ - "epics", - 2 - ], - [ - "normalisation", - 2 - ], - [ - "encompassing", - 2 - ], - [ - "mcguffin", - 2 - ], - [ - "jsappinfo", - 2 - ], - [ - "expressroute", - 2 - ], - [ - "corporations", - 2 - ], - [ - "jsshopify", - 2 - ], - [ - "notification", - 2 - ], - [ - "synthesizing", - 2 - ], - [ - "gazelle", - 2 - ], - [ - "assembly", - 2 - ], - [ - "rabbit", - 2 - ], - [ - "dedupe", - 2 - ], - [ - "gitbucket", - 2 - ], - [ - "recommending", - 2 - ], - [ - "implantation", - 2 - ], - [ - "hybrids", - 2 - ], - [ - "terminologies", - 2 - ], - [ - "rhapsody", - 2 - ], - [ - "practitioners", - 2 - ], - [ - "priyadarsini", - 2 - ], - [ - "interested!", - 2 - ], - [ - "investigations", - 2 - ], - [ - "computedb", - 2 - ], - [ - "persuasively", - 2 - ], - [ - "webcenter", - 2 - ], - [ - "modification", - 2 - ], - [ - "recommendation", - 2 - ], - [ - "intranet", - 2 - ], - [ - "sinon", - 2 - ], - [ - "exceptionless", - 2 - ], - [ - "classification", - 2 - ], - [ - "maria", - 2 - ], - [ - "classic", - 2 - ], - [ - "sensor", - 2 - ], - [ - "vuetify", - 2 - ], - [ - "containerised", - 2 - ], - [ - "constituents", - 2 - ], - [ - "virtualization", - 2 - ], - [ - "scottish", - 2 - ], - [ - "retrospectively", - 2 - ], - [ - "disappointment", - 2 - ], - [ - "probationary", - 2 - ], - [ - "leicestershire", - 2 - ], - [ - "technology's", - 2 - ], - [ - "props", - 2 - ], - [ - "immutability", - 2 - ], - [ - "reproducible", - 2 - ], - [ - "nonsql", - 2 - ], - [ - "dbms", - 2 - ], - [ - "standardized", - 2 - ], - [ - "cmake", - 2 - ], - [ - "subcontractor", - 2 - ], - [ - "opengl", - 2 - ], - [ - "directx", - 2 - ], - [ - "activex", - 2 - ], - [ - "merchandising", - 2 - ], - [ - "controllership", - 2 - ], - [ - "storevirtual", - 2 - ], - [ - "transformational", - 2 - ], - [ - "revolutionises", - 2 - ], - [ - "manufactures", - 2 - ], - [ - "electrochemistry", - 2 - ], - [ - "successfactors", - 2 - ], - [ - "tcpip", - 2 - ], - [ - "rdms", - 2 - ], - [ - "broadcasting", - 2 - ], - [ - "phenomenally", - 2 - ], - [ - "jslint", - 1 - ], - [ - "jshint", - 1 - ], - [ - "med", - 1 - ], - [ - "dashboarding", - 1 - ], - [ - "dataflow", - 1 - ], - [ - "loadbalancer", - 1 - ], - [ - "organisationally", - 1 - ], - [ - "controllerview", - 1 - ], - [ - "sql·", - 1 - ], - [ - "communicatordesirables", - 1 - ], - [ - "regulationsif", - 1 - ], - [ - "axiomslldnjob", - 1 - ], - [ - "interchangeably", - 1 - ], - [ - "confirmations", - 1 - ], - [ - "grammatically", - 1 - ], - [ - "volunteering", - 1 - ], - [ - "carbon", - 1 - ], - [ - "modellinggood", - 1 - ], - [ - "desirablefluent", - 1 - ], - [ - "elasticity", - 1 - ], - [ - "nhibernate", - 1 - ], - [ - "defraggler", - 1 - ], - [ - "speccy", - 1 - ], - [ - "aspirational", - 1 - ], - [ - "carts", - 1 - ], - [ - "geeks", - 1 - ], - [ - "requirementsknowledge", - 1 - ], - [ - "reactjswebsockets", - 1 - ], - [ - "jsoncross", - 1 - ], - [ - "practicesexperience", - 1 - ], - [ - "wordpresssolid", - 1 - ], - [ - "skillsfluent", - 1 - ], - [ - "englishresponsibilitiesdevelopment", - 1 - ], - [ - "macos", - 1 - ], - [ - "hoursreference", - 1 - ], - [ - "governmental", - 1 - ], - [ - "londoncontractdaily", - 1 - ], - [ - "discontinuation", - 1 - ], - [ - "managercreating", - 1 - ], - [ - "testsextracting", - 1 - ], - [ - "systemperform", - 1 - ], - [ - "smesensuring", - 1 - ], - [ - "expectationspre", - 1 - ], - [ - "scenariospresenting", - 1 - ], - [ - "offproviding", - 1 - ], - [ - "requiredtesting", - 1 - ], - [ - "appropriatelythe", - 1 - ], - [ - "zeromq", - 1 - ], - [ - "pytorch", - 1 - ], - [ - "dscrocontribute", - 1 - ], - [ - "sourcescontribute", - 1 - ], - [ - "“housekeeping”", - 1 - ], - [ - "levelextensive", - 1 - ], - [ - "typographyexperience", - 1 - ], - [ - "skillsproficiency", - 1 - ], - [ - "invisionexperience", - 1 - ], - [ - "prototypesgood", - 1 - ], - [ - "trendsunderstanding", - 1 - ], - [ - "prolancer", - 1 - ], - [ - "hourscontract", - 1 - ], - [ - "datawarehousing", - 1 - ], - [ - "manufacturer", - 1 - ], - [ - "compromising", - 1 - ], - [ - "webassembly", - 1 - ], - [ - "iosmobile", - 1 - ], - [ - "bourne", - 1 - ], - [ - "korn", - 1 - ], - [ - "shells", - 1 - ], - [ - "vtl", - 1 - ], - [ - "electron", - 1 - ], - [ - "circular", - 1 - ], - [ - "developerjob", - 1 - ], - [ - "contractjob", - 1 - ], - [ - "description·", - 1 - ], - [ - "reactjs·", - 1 - ], - [ - "ecma", - 1 - ], - [ - "jestjob", - 1 - ], - [ - "establishments", - 1 - ], - [ - "environmentshas", - 1 - ], - [ - "correctedproviding", - 1 - ], - [ - "andexperience", - 1 - ], - [ - "environmentoracle", - 1 - ], - [ - "sqlbdd", - 1 - ], - [ - "microservicestesting", - 1 - ], - [ - "hermesjmsrestassuredreadyapi", - 1 - ], - [ - "equivalentexperience", - 1 - ], - [ - "sassexperience", - 1 - ], - [ - "designability", - 1 - ], - [ - "prototypesexcellent", - 1 - ], - [ - "abilitiesstrong", - 1 - ], - [ - "playerdegree", - 1 - ], - [ - "mysq", - 1 - ], - [ - "doingcombining", - 1 - ], - [ - "requirementsdesigning", - 1 - ], - [ - "aestheticsresearching", - 1 - ], - [ - "projectstaking", - 1 - ], - [ - "teamcollaborating", - 1 - ], - [ - "differenceresponsibilitiesas", - 1 - ], - [ - "experiencesensuring", - 1 - ], - [ - "standardscollaborating", - 1 - ], - [ - "visionunderstand", - 1 - ], - [ - "psychologyconduct", - 1 - ], - [ - "feedbackcreate", - 1 - ], - [ - "lifecommunicate", - 1 - ], - [ - "developerskeep", - 1 - ], - [ - "toolsrequirementsa", - 1 - ], - [ - "platformsstrong", - 1 - ], - [ - "projectsbackground", - 1 - ], - [ - "researchfamiliarity", - 1 - ], - [ - "architectureproblem", - 1 - ], - [ - "aptitudeanalytical", - 1 - ], - [ - "acumenexcellent", - 1 - ], - [ - "skillsworking", - 1 - ], - [ - "advantagesknowledge", - 1 - ], - [ - "axureenthusiasm", - 1 - ], - [ - "necessaryknowledge", - 1 - ], - [ - "londonflexible", - 1 - ], - [ - "hoursopportunity", - 1 - ], - [ - "bonusesattendance", - 1 - ], - [ - "includedtraining", - 1 - ], - [ - "neededinternational", - 1 - ], - [ - "necessarypaid", - 1 - ], - [ - "daysrefreshments", - 1 - ], - [ - "officemacbook", - 1 - ], - [ - "acclimatedtrust", - 1 - ], - [ - "entrepreneurs", - 1 - ], - [ - "capitalising", - 1 - ], - [ - "opportunitiesprofit", - 1 - ], - [ - "transformative", - 1 - ], - [ - "simultaneous", - 1 - ], - [ - "requiredapidatabase", - 1 - ], - [ - "architecturedatabase", - 1 - ], - [ - "applicationwebsite", - 1 - ], - [ - "developmentapi", - 1 - ], - [ - "integrationux", - 1 - ], - [ - "languagesjavascriptphppythonhtml", - 1 - ], - [ - "csshtmldatabasesmysqlfull", - 1 - ], - [ - "skillsbootstrap", - 1 - ], - [ - "contractapplication", - 1 - ], - [ - "monthexperience", - 1 - ], - [ - "androidthings", - 1 - ], - [ - "prerequisite", - 1 - ], - [ - "skillsproven", - 1 - ], - [ - "xssiknowledge", - 1 - ], - [ - "standardsexperience", - 1 - ], - [ - "ncarolan@mcgregor", - 1 - ], - [ - "png", - 1 - ], - [ - "employmenttype", - 1 - ], - [ - "hiringorganization", - 1 - ], - [ - "url", - 1 - ], - [ - "postaladdress", - 1 - ], - [ - "addresslocality", - 1 - ], - [ - "addressregion", - 1 - ], - [ - "streetaddress", - 1 - ], - [ - "monetaryamount", - 1 - ], - [ - "propertyvalue", - 1 - ], - [ - "xssi", - 1 - ], - [ - "solutionssoftware", - 1 - ], - [ - "solutionstesting", - 1 - ], - [ - "abovegeneration", - 1 - ], - [ - "estimatestesting", - 1 - ], - [ - "functionalityadherence", - 1 - ], - [ - "practicesaccurately", - 1 - ], - [ - "leadershipsupporting", - 1 - ], - [ - "activitiesproduction", - 1 - ], - [ - "documentationparticipation", - 1 - ], - [ - "productsconfiguration", - 1 - ], - [ - "rcp", - 1 - ], - [ - "environmentsobject", - 1 - ], - [ - "umlmicrosoft", - 1 - ], - [ - "architectjob", - 1 - ], - [ - "servicesgood", - 1 - ], - [ - "bigtable", - 1 - ], - [ - "integrationjob", - 1 - ], - [ - "foundation’s", - 1 - ], - [ - "simplistically", - 1 - ], - [ - "multidiscipline", - 1 - ], - [ - "responsibilitiesanalyze", - 1 - ], - [ - "programsestablish", - 1 - ], - [ - "executionmonthly", - 1 - ], - [ - "executioneducation", - 1 - ], - [ - "experiencestrong", - 1 - ], - [ - "skillsdetail", - 1 - ], - [ - "executiondependable", - 1 - ], - [ - "motivatedexcellent", - 1 - ], - [ - "abilitytableau", - 1 - ], - [ - "dressreference", - 1 - ], - [ - "pricingconsultantjob", - 1 - ], - [ - "systemparticipates", - 1 - ], - [ - "askedidentifies", - 1 - ], - [ - "similarminimum", - 1 - ], - [ - "methodologiesproficient", - 1 - ], - [ - "peoplefluent", - 1 - ], - [ - "powerbiexperience", - 1 - ], - [ - "warehouseexperience", - 1 - ], - [ - "kafkasexperienced", - 1 - ], - [ - "experiencemust", - 1 - ], - [ - "sourceenthusiastic", - 1 - ], - [ - "individualdesirable", - 1 - ], - [ - "experiencemicrosoft", - 1 - ], - [ - "experienceknowledge", - 1 - ], - [ - "environmentbackground", - 1 - ], - [ - "platformsexperience", - 1 - ], - [ - "pythonexperienced", - 1 - ], - [ - "dataflows", - 1 - ], - [ - "matchingexperience", - 1 - ], - [ - "platformstatistics", - 1 - ], - [ - "systemsbuild", - 1 - ], - [ - "objectivesensure", - 1 - ], - [ - "practicestest", - 1 - ], - [ - "solutionssupport", - 1 - ], - [ - "platformmaintain", - 1 - ], - [ - "servicesimplement", - 1 - ], - [ - "datareference", - 1 - ], - [ - "permanentexperience", - 1 - ], - [ - "lambethcontract", - 1 - ], - [ - "knowledgedemonstrable", - 1 - ], - [ - "legislationdetailed", - 1 - ], - [ - "requirementsqualificationsa", - 1 - ], - [ - "responsibilitiesbuild", - 1 - ], - [ - "serviceswork", - 1 - ], - [ - "designsproduce", - 1 - ], - [ - "teamdevelopment", - 1 - ], - [ - "technologiesdevelopment", - 1 - ], - [ - "conceptsdemonstration", - 1 - ], - [ - "criteriaparticipation", - 1 - ], - [ - "retro", - 1 - ], - [ - "estimatessupport", - 1 - ], - [ - "componentsmandatory", - 1 - ], - [ - "pythonsqlworking", - 1 - ], - [ - "apisdev", - 1 - ], - [ - "experiencepytestunit", - 1 - ], - [ - "testsexposure", - 1 - ], - [ - "methodologiesdesirable", - 1 - ], - [ - "analyticsjava", - 1 - ], - [ - "testingopenshift", - 1 - ], - [ - "kubernetesspringboot", - 1 - ], - [ - "reactiveexcel", - 1 - ], - [ - "vbdata", - 1 - ], - [ - "mappingfamiliarity", - 1 - ], - [ - "solutionsgit", - 1 - ], - [ - "pipelinesdomain", - 1 - ], - [ - "experiencework", - 1 - ], - [ - "standardswork", - 1 - ], - [ - "portfoliogood", - 1 - ], - [ - "symbolsexperience", - 1 - ], - [ - "ccexperience", - 1 - ], - [ - "guidelinescreative", - 1 - ], - [ - "itunderstanding", - 1 - ], - [ - "javascriptsantander", - 1 - ], - [ - "descriptionjob", - 1 - ], - [ - "architectcontract", - 1 - ], - [ - "lesslocation", - 1 - ], - [ - "assessmentreview", - 1 - ], - [ - "performanceknowledge", - 1 - ], - [ - "analysistarget", - 1 - ], - [ - "resiliencesensitive", - 1 - ], - [ - "stakeholdersmicrosoft", - 1 - ], - [ - "mangerremoteendeavour", - 1 - ], - [ - "managementserver", - 1 - ], - [ - "upgradeshardware", - 1 - ], - [ - "upgradessecurity", - 1 - ], - [ - "firewallslan", - 1 - ], - [ - "directoryexchangesql", - 1 - ], - [ - "serverwindowsfurther", - 1 - ], - [ - "opportunitiesjob", - 1 - ], - [ - "serverweb", - 1 - ], - [ - "enviromentproven", - 1 - ], - [ - "開発エンジニア【求人概要】", - 1 - ], - [ - "日系itベンダーが金融機関でのit技術者マイクロソフト系開発エンジニアを募集【勤務地】ロンドン", - 1 - ], - [ - "大手メガバンクのシステム部門・企画部門に常駐する", - 1 - ], - [ - "【勤務地】ロンドン【仕事内容】・c#", - 1 - ], - [ - "での開発・開発チームでのリーダーもしくは教育担当・業務分析、業務改善提案などプロジェクト推進のための開発要望事項の取りまとめ・海外拠点間", - 1 - ], - [ - "における開発スケジュールや開発仕様の調整【応募条件】・itバックグラウンド必須・金融システム開発経験歓迎・mysql", - 1 - ], - [ - "sql、phpの使用経験優遇【語学力】母国語レベルの日本語、英語中級レベル", - 1 - ], - [ - "必須【ビザ】・英国で正規で労働可能なビザを保持している方優遇・適任者にはビザ・スポンサーあり", - 1 - ], - [ - "※弊社では、新型コロナウィルス対策のため、在宅勤務を実施しております。ご不便お掛け致しますが、お問い合わせ頂く際は、メールにてご連絡お願い致します。当社担当者より折り返しご連絡させて頂きます。", - 1 - ], - [ - "schemereference", - 1 - ], - [ - "campaignstroubleshoot", - 1 - ], - [ - "reportingcreate", - 1 - ], - [ - "toolsregularly", - 1 - ], - [ - "flashtalking", - 1 - ], - [ - "illegalities", - 1 - ], - [ - "rainforestfoundationuk", - 1 - ], - [ - "redevelopment’", - 1 - ], - [ - "hoursapplication", - 1 - ], - [ - "mapbox", - 1 - ], - [ - "unsupervised", - 1 - ], - [ - "computerised", - 1 - ], - [ - "descriptionthe", - 1 - ], - [ - "chaotic", - 1 - ], - [ - "descriptionwe", - 1 - ], - [ - "softwarebenefits", - 1 - ], - [ - "hourexperience", - 1 - ], - [ - "descriptiondue", - 1 - ], - [ - "technologystrong", - 1 - ], - [ - "growthability", - 1 - ], - [ - "attitudebenefit", - 1 - ], - [ - "dotnet", - 1 - ], - [ - "organisationhands", - 1 - ], - [ - "skillsunderstanding", - 1 - ], - [ - "verbalability", - 1 - ], - [ - "summaryexperience", - 1 - ], - [ - "locationsstrong", - 1 - ], - [ - "recursive", - 1 - ], - [ - "whisperclaims", - 1 - ], - [ - "intellectually", - 1 - ], - [ - "econometrics", - 1 - ], - [ - "jsriskmanager", - 1 - ], - [ - "turnkey", - 1 - ], - [ - "cancellation", - 1 - ], - [ - "statistically", - 1 - ], - [ - "jqueryui", - 1 - ], - [ - "cancellations", - 1 - ], - [ - "compensation", - 1 - ], - [ - "extraordinary", - 1 - ], - [ - "xilinx", - 1 - ], - [ - "industrialization", - 1 - ], - [ - "datahub", - 1 - ], - [ - "lynx", - 1 - ], - [ - "prioritization", - 1 - ], - [ - "xaml", - 1 - ], - [ - "scraping", - 1 - ], - [ - "manufacturers", - 1 - ], - [ - "tape", - 1 - ], - [ - "geojson", - 1 - ], - [ - "subscription", - 1 - ], - [ - "callbacks", - 1 - ], - [ - "appsync", - 1 - ], - [ - "stageinterviews", - 1 - ], - [ - "elasitcsearch", - 1 - ], - [ - "jsjbcybersec", - 1 - ], - [ - "gatling", - 1 - ], - [ - "manipulating", - 1 - ], - [ - "bracket", - 1 - ], - [ - "chartjs", - 1 - ], - [ - "jsangular", - 1 - ], - [ - "simplification", - 1 - ], - [ - "organizations", - 1 - ], - [ - "increasingly", - 1 - ], - [ - "administratoryou", - 1 - ], - [ - "void", - 1 - ], - [ - "compile", - 1 - ], - [ - "discriminatory", - 1 - ], - [ - "preact", - 1 - ], - [ - "oraclehcm", - 1 - ], - [ - "interconnecting", - 1 - ], - [ - "bots", - 1 - ], - [ - "multithreaded", - 1 - ], - [ - "sparksql", - 1 - ], - [ - "angluarjs", - 1 - ], - [ - "adb", - 1 - ], - [ - "mscrm", - 1 - ], - [ - "webservice", - 1 - ], - [ - "interconnected", - 1 - ], - [ - "scott@nigelfrank", - 1 - ], - [ - "jira's", - 1 - ], - [ - "sammonspensions", - 1 - ], - [ - "jswebopscontract", - 1 - ], - [ - "eccomerce", - 1 - ], - [ - "github's", - 1 - ], - [ - "proportionately", - 1 - ], - [ - "communicators", - 1 - ], - [ - "collaborativley", - 1 - ], - [ - "professionally", - 1 - ], - [ - "balsamic", - 1 - ], - [ - "graphical", - 1 - ], - [ - "northallerton", - 1 - ], - [ - "multiplatform", - 1 - ], - [ - "superintendent", - 1 - ], - [ - "metallurgist", - 1 - ], - [ - "jsnkprodmandalon", - 1 - ], - [ - "university's", - 1 - ], - [ - "ticks", - 1 - ], - [ - "synchronization", - 1 - ], - [ - "mutex", - 1 - ], - [ - "commercialization", - 1 - ], - [ - "differentiated", - 1 - ], - [ - "commercialisation", - 1 - ], - [ - "mobilisation", - 1 - ], - [ - "homelessness", - 1 - ], - [ - "abuse", - 1 - ], - [ - "async", - 1 - ], - [ - "compsci", - 1 - ], - [ - "individually", - 1 - ], - [ - "automaton", - 1 - ], - [ - "jsqwcrmlesftdev", - 1 - ], - [ - "geographical", - 1 - ], - [ - "forestresearch", - 1 - ], - [ - "incorporated", - 1 - ], - [ - "kubernetese", - 1 - ], - [ - "auth", - 1 - ], - [ - "multichannel", - 1 - ], - [ - "microstrategy", - 1 - ], - [ - "jscouchbase", - 1 - ], - [ - "informatique", - 1 - ], - [ - "informatiques", - 1 - ], - [ - "actuellement", - 1 - ], - [ - "significative", - 1 - ], - [ - "atlassian", - 1 - ], - [ - "springmvc", - 1 - ], - [ - "informations", - 1 - ], - [ - "professionnel", - 1 - ], - [ - "contechauthor", - 1 - ], - [ - "wireframe", - 1 - ], - [ - "flutter", - 1 - ], - [ - "coder", - 1 - ], - [ - "vcenter", - 1 - ], - [ - "vcloud", - 1 - ], - [ - "demographics", - 1 - ], - [ - "mcg", - 1 - ], - [ - "acrobat", - 1 - ], - [ - "commonwealth", - 1 - ], - [ - "junk", - 1 - ], - [ - "spam", - 1 - ], - [ - "jscloudarchitect", - 1 - ], - [ - "'interesting", - 1 - ], - [ - "bluewaveselect", - 1 - ], - [ - "microsrvices", - 1 - ], - [ - "jslinkaalinkcndk", - 1 - ], - [ - "jsdataintegrationdev", - 1 - ], - [ - "accessibilit", - 1 - ], - [ - "manageability", - 1 - ], - [ - "sockets", - 1 - ], - [ - "gestionnaire", - 1 - ], - [ - "mule", - 1 - ], - [ - "responsibilies", - 1 - ], - [ - "paired", - 1 - ], - [ - "familiarisation", - 1 - ], - [ - "terabyte", - 1 - ], - [ - "commonalities", - 1 - ], - [ - "appreciating", - 1 - ], - [ - "articulating", - 1 - ], - [ - "allegorithmic", - 1 - ], - [ - "artistically", - 1 - ], - [ - "wcms", - 1 - ], - [ - "compensating", - 1 - ], - [ - "wastedataflow", - 1 - ], - [ - "contamination", - 1 - ], - [ - "odbc", - 1 - ], - [ - "cart", - 1 - ], - [ - "physicalization", - 1 - ], - [ - "modularising", - 1 - ], - [ - "scfrontendev", - 1 - ], - [ - "exceptionally", - 1 - ], - [ - "servicefabric", - 1 - ], - [ - "postgraduate", - 1 - ], - [ - "postgraduates", - 1 - ], - [ - "coders", - 1 - ], - [ - "cryptographic", - 1 - ], - [ - "koltin", - 1 - ], - [ - "@contractgeorge", - 1 - ], - [ - "cosmeceutical", - 1 - ], - [ - "gcc", - 1 - ], - [ - "loadbalancing", - 1 - ], - [ - "webdriverio", - 1 - ], - [ - "modeler", - 1 - ], - [ - "jsdata", - 1 - ], - [ - "digitalisation", - 1 - ], - [ - "technologically", - 1 - ], - [ - "friendliness", - 1 - ], - [ - "webhooks", - 1 - ], - [ - "subnets", - 1 - ], - [ - "receptionist", - 1 - ], - [ - "compassionate", - 1 - ], - [ - "receptionists", - 1 - ], - [ - "gifs", - 1 - ], - [ - "cakephp", - 1 - ], - [ - "wrigglesworth", - 1 - ], - [ - "[reinsurance", - 1 - ], - [ - "pm_insurance_london", - 1 - ], - [ - "softwaredeveloper", - 1 - ], - [ - "netc", - 1 - ], - [ - "biodiversity", - 1 - ], - [ - "superuser", - 1 - ], - [ - "webgis", - 1 - ], - [ - "viewer", - 1 - ], - [ - "getmap", - 1 - ], - [ - "contributory", - 1 - ], - [ - "jsld", - 1 - ], - [ - "compositions", - 1 - ], - [ - "geographically", - 1 - ], - [ - "techleadcontract", - 1 - ], - [ - "vine", - 1 - ], - [ - "nixon", - 1 - ], - [ - "jsmanualtester", - 1 - ], - [ - "brink", - 1 - ], - [ - "conversational", - 1 - ], - [ - "alexa", - 1 - ], - [ - "unparalleled", - 1 - ], - [ - "scms", - 1 - ], - [ - "odba", - 1 - ], - [ - "directorates", - 1 - ], - [ - "underperforming", - 1 - ], - [ - "complementing", - 1 - ], - [ - "synchronising", - 1 - ], - [ - "inequalities", - 1 - ], - [ - "antimicrobial", - 1 - ], - [ - "inappropriate", - 1 - ], - [ - "commissioned", - 1 - ], - [ - "anticipating", - 1 - ], - [ - "adaptability", - 1 - ], - [ - "rehabilitation", - 1 - ], - [ - "orchestrated", - 1 - ], - [ - "bibliographic", - 1 - ], - [ - "customizable", - 1 - ], - [ - "datamodel", - 1 - ], - [ - "unmodernised", - 1 - ], - [ - "services@justice", - 1 - ], - [ - "enquiries@gov", - 1 - ], - [ - "representative", - 1 - ], - [ - "consistencies", - 1 - ], - [ - "standardising", - 1 - ], - [ - "investigator", - 1 - ], - [ - "encode", - 1 - ], - [ - "statistician", - 1 - ], - [ - "sopal@harringtonstarr", - 1 - ], - [ - "entreprenuers", - 1 - ], - [ - "mstech", - 1 - ], - [ - "vxrail", - 1 - ], - [ - "proxy", - 1 - ], - [ - "resynchronization", - 1 - ], - [ - "vcentre", - 1 - ], - [ - "vxlans", - 1 - ], - [ - "vxlan", - 1 - ], - [ - "hosts", - 1 - ], - [ - "jsbsdevsecopsapigee", - 1 - ], - [ - "tuxedo", - 1 - ], - [ - "constructing", - 1 - ], - [ - "recomendations", - 1 - ], - [ - "restructuring", - 1 - ], - [ - "preferential", - 1 - ], - [ - "middlesbrough", - 1 - ], - [ - "productising", - 1 - ], - [ - "departmental", - 1 - ], - [ - "sesamedesign", - 1 - ], - [ - "linq", - 1 - ], - [ - "fsdev", - 1 - ], - [ - "inefficiency", - 1 - ], - [ - "proportionate", - 1 - ], - [ - "policyholders", - 1 - ], - [ - "macro", - 1 - ], - [ - "jurisdictional", - 1 - ], - [ - "jsinfoaystnhs", - 1 - ], - [ - "govt", - 1 - ], - [ - "geoserver", - 1 - ], - [ - "desirability", - 1 - ], - [ - "questionnaires", - 1 - ], - [ - "walkthroughs", - 1 - ], - [ - "bigdata", - 1 - ], - [ - "pcie", - 1 - ], - [ - "vpx", - 1 - ], - [ - "firmware", - 1 - ], - [ - "microprocessors", - 1 - ], - [ - "rtos", - 1 - ], - [ - "vhdl", - 1 - ], - [ - "verilog", - 1 - ], - [ - "acls", - 1 - ], - [ - "ruleset", - 1 - ], - [ - "webflow", - 1 - ], - [ - "delphi", - 1 - ], - [ - "–nodejs", - 1 - ], - [ - "nextjs", - 1 - ], - [ - "evolutionary", - 1 - ], - [ - "sqlite", - 1 - ], - [ - "implentation", - 1 - ], - [ - "concurrencies", - 1 - ], - [ - "manipulations", - 1 - ], - [ - "jsdl", - 1 - ], - [ - "accomplishment", - 1 - ], - [ - "surprisingly", - 1 - ], - [ - "extraordinaire", - 1 - ], - [ - "shikha_software", - 1 - ], - [ - "developement", - 1 - ], - [ - "shikha_spark", - 1 - ], - [ - "intergration", - 1 - ], - [ - "chai", - 1 - ], - [ - "decomposition", - 1 - ], - [ - "groundbreaking", - 1 - ], - [ - "mesh", - 1 - ], - [ - "postcss", - 1 - ], - [ - "babel", - 1 - ], - [ - "eslint", - 1 - ], - [ - "ddfc", - 1 - ], - [ - "sparkcontext", - 1 - ], - [ - "jsux", - 1 - ], - [ - "que", - 1 - ], - [ - "mindsphere", - 1 - ], - [ - "jslb_cloudplatform_sidestep", - 1 - ], - [ - "typescipt", - 1 - ], - [ - "sysops", - 1 - ], - [ - "citric", - 1 - ], - [ - "decommission", - 1 - ], - [ - "sphere", - 1 - ], - [ - "netbackup", - 1 - ], - [ - "jserve_winsysops_sm", - 1 - ], - [ - "lemp", - 1 - ], - [ - "kotli", - 1 - ], - [ - "typecript", - 1 - ], - [ - "micoservice", - 1 - ], - [ - "mqtt", - 1 - ], - [ - "foss", - 1 - ], - [ - "anthropology", - 1 - ], - [ - "freelancer", - 1 - ], - [ - "joomla", - 1 - ], - [ - "academically", - 1 - ], - [ - "establishment", - 1 - ], - [ - "encountering", - 1 - ], - [ - "observerships", - 1 - ], - [ - "transitioned", - 1 - ], - [ - "scripted", - 1 - ], - [ - "restapis", - 1 - ], - [ - "interrogates", - 1 - ], - [ - "serverside", - 1 - ], - [ - "postgress", - 1 - ], - [ - "debugger", - 1 - ], - [ - "deeptech", - 1 - ], - [ - "productionising", - 1 - ], - [ - "partitioning", - 1 - ], - [ - "javare", - 1 - ], - [ - "iimplementation", - 1 - ], - [ - "organization's", - 1 - ], - [ - "@beitresourcing", - 1 - ], - [ - "ualifications", - 1 - ], - [ - "promoveritas", - 1 - ], - [ - "competitions", - 1 - ], - [ - "haproxy", - 1 - ], - [ - "configurator", - 1 - ], - [ - "unauthorised", - 1 - ], - [ - "breakthroughs", - 1 - ], - [ - "determinations", - 1 - ], - [ - "routers", - 1 - ], - [ - "savethechildren", - 1 - ], - [ - "donnelly", - 1 - ], - [ - "decommissioning", - 1 - ], - [ - "@searchablechris", - 1 - ], - [ - "ellipse", - 1 - ], - [ - "jsdev", - 1 - ], - [ - "instrumentation", - 1 - ], - [ - "kubernets", - 1 - ], - [ - "hackers", - 1 - ], - [ - "streamlining", - 1 - ], - [ - "solaris", - 1 - ], - [ - "interviewers", - 1 - ], - [ - "interdependent", - 1 - ], - [ - "meritocratic", - 1 - ], - [ - "balancer", - 1 - ], - [ - "keyvault", - 1 - ], - [ - "multibillion", - 1 - ], - [ - "enterpriseanalytics", - 1 - ], - [ - "trajectories", - 1 - ], - [ - "jsinteraction", - 1 - ], - [ - "consequences", - 1 - ], - [ - "characterised", - 1 - ], - [ - "jswminteractionlon", - 1 - ], - [ - "requisitions", - 1 - ], - [ - "markdown", - 1 - ], - [ - "contractsonline", - 1 - ], - [ - "geek", - 1 - ], - [ - "capitalization", - 1 - ], - [ - "personalised", - 1 - ], - [ - "registrations", - 1 - ], - [ - "multithreading", - 1 - ], - [ - "octopusdeploy", - 1 - ], - [ - "resharper", - 1 - ], - [ - "axios", - 1 - ], - [ - "unstructured", - 1 - ], - [ - "preferableclients", - 1 - ], - [ - "personalities", - 1 - ], - [ - "governanance", - 1 - ], - [ - "xunit", - 1 - ], - [ - "netcore", - 1 - ], - [ - "systemsaccountants", - 1 - ], - [ - "xapi", - 1 - ], - [ - "rdbs", - 1 - ], - [ - "pragmatically", - 1 - ], - [ - "restapi", - 1 - ], - [ - "polygot", - 1 - ], - [ - "collaborator", - 1 - ], - [ - "mozilla", - 1 - ], - [ - "bde", - 1 - ], - [ - "ghost", - 1 - ], - [ - "jsap", - 1 - ], - [ - "@searchableolly", - 1 - ], - [ - "orginisation", - 1 - ], - [ - "vbs", - 1 - ], - [ - "repo", - 1 - ], - [ - "centralisation", - 1 - ], - [ - "fpga", - 1 - ], - [ - "vlan", - 1 - ], - [ - "jspfwireless", - 1 - ], - [ - "nfrastructure", - 1 - ], - [ - "centralising", - 1 - ], - [ - "unprecedented", - 1 - ], - [ - "reputational", - 1 - ], - [ - "peterbourogh", - 1 - ], - [ - "reachjs", - 1 - ], - [ - "multifunctional", - 1 - ], - [ - "supermarkets", - 1 - ], - [ - "operationalisation", - 1 - ], - [ - "webapps", - 1 - ], - [ - "london's", - 1 - ], - [ - "revolutionising", - 1 - ], - [ - "duping", - 1 - ], - [ - "consequentially", - 1 - ], - [ - "struts", - 1 - ], - [ - "assocciation", - 1 - ], - [ - "clydebank", - 1 - ], - [ - "switch", - 1 - ], - [ - "descriptions", - 1 - ], - [ - "motif", - 1 - ], - [ - "considerably", - 1 - ], - [ - "unify", - 1 - ], - [ - "typographical", - 1 - ], - [ - "illustration", - 1 - ], - [ - "diversification", - 1 - ], - [ - "jardinemotors", - 1 - ], - [ - "diversityandinclusion", - 1 - ], - [ - "physiological", - 1 - ], - [ - "communicative", - 1 - ], - [ - "eventsourcing", - 1 - ], - [ - "cswain@redlinegroup", - 1 - ], - [ - "flextrade", - 1 - ], - [ - "tinymce", - 1 - ], - [ - "methodically", - 1 - ], - [ - "quantifiable", - 1 - ], - [ - "multienvironmental", - 1 - ], - [ - "preproduction", - 1 - ] -] +[["contract",1441],["developer",1255],["javascript",1173],["london",1093],["js",1066],["web",879],["development",865],["sql",841],["client",823],["react",662],["html",614],["software",607],["data",606],["remote",580],["technical",568],["agile",561],["css",540],["project",480],["applications",477],["aws",474],["requirements",428],["angular",427],["server",413],["tools",409],["application",409],["understanding",408],["engineer",400],["python",398],["systems",389],["java",383],["node",359],["net",351],["technologies",348],["testing",329],["code",320],["azure",317],["c#",296],["architecture",290],["digital",273],["responsibilities",258],["c",254],["communication",231],["finance",224],["git",220],["amazon",218],["devops",216],["manager",214],["trading",213],["typescript",213],["programming",209],["api",205],["frameworks",205],["ui",203],["opportunities",199],["database",197],["organisation",196],["stakeholders",188],["vue",178],["architect",173],["docker",171],["complex",169],["infrastructure",169],["framework",167],["automation",158],["implementation",158],["central",153],["banking",153],["microsoft",152],["kubernetes",150],["microservices",149],["mysql",149],["remotely",148],["databases",145],["oracle",139],["mobile",139],["programmer",138],["programme",135],["scrum",135],["linux",134],["analytics",132],["apis",131],["nodejs",129],["tdd",123],["google",121],["automated",120],["documentation",114],["transformation",112],["jenkins",110],["coding",110],["php",109],["apps",100],["jquery",99],["sass",99],["redux",97],["lambda",97],["professional",94],["implementing",93],["accessibility",92],["configuration",88],["collaborative",88],["environments",88],["windows",85],["online",84],["intelligence",84],["functions",83],["app",82],["scripting",82],["unix",82],["operating",79],["etl",78],["asp",76],["browser",75],["international",73],["patterns",73],["engineers",73],["fintech",72],["postgresql",72],["mvc",71],["capabilities",70],["apache",69],["network",69],["excel",68],["responsibility",68],["frontend",67],["db",67],["json",67],["cycle",67],["collaborating",67],["methodologies",66],["mongodb",66],["restful",65],["demonstrable",65],["nosql",64],["visual",63],["model",63],["functionality",60],["models",60],["relationships",60],["advantageous",59],["developed",59],["terraform",58],["graphql",57],["websites",57],["consideration",57],["spark",56],["servers",56],["native",55],["es",55],["lifecycle",55],["documents",55],["reactjs",53],["administration",53],["hosted",53],["ecs",52],["deliverables",51],["storage",50],["document",50],["civil",50],["edinburgh",50],["xml",50],["iot",50],["dashboards",49],["troubleshooting",49],["kotlin",49],["quantitative",49],["contractor",48],["elasticsearch",47],["vuejs",47],["organisations",47],["android",47],["qualifications",47],["jira",47],["templates",46],["collaboration",46],["api's",46],["developments",46],["kafka",45],["disciplinary",45],["ruby",45],["glasgow",45],["methods",44],["prototypes",44],["bdd",44],["express",44],["availability",43],["contributing",43],["visualisation",43],["dev",43],["transactions",42],["communications",42],["bootstrap",42],["scripts",42],["collaboratively",42],["tuning",41],["improvements",41],["micro",40],["networking",40],["specifically",40],["grunt",40],["ios",39],["selenium",39],["angularjs",38],["architectures",38],["reassignment",38],["expectations",38],["organization",37],["bug",37],["sites",37],["jest",37],["apigee",36],["devices",36],["query",36],["enhancements",36],["partnerships",36],["communicating",36],["dba",35],["particularly",35],["demonstrated",35],["architectural",35],["kanban",35],["ansible",35],["considerations",35],["protocols",34],["powershell",34],["boot",34],["interpersonal",34],["comprehensive",34],["analyse",33],["specification",33],["graph",33],["github",33],["contracts",33],["webpack",33],["private",32],["specialising",32],["scotland",32],["fullstack",32],["stored",32],["ssrs",32],["professionals",32],["optimisation",32],["specifications",31],["debugging",30],["independently",30],["virtual",29],["mac",29],["integrate",29],["https",29],["ai",29],["contribution",29],["soap",29],["internet",29],["distributed",28],["scratch",28],["function",28],["magento",28],["vba",28],["hires",28],["containerisation",28],["elastic",27],["integrations",27],["wireframes",27],["recommendations",27],["technologist",27],["accountabilities",27],["dynamodb",26],["hadoop",26],["transform",26],["postgres",26],["paas",26],["presentation",26],["administrator",26],["competencies",26],["mocha",26],["logstash",26],["sdk",25],["successfully",25],["resolve",25],["warehousing",25],["npm",25],["mapping",25],["wordpress",24],["www",24],["prototyping",24],["certifications",24],["collectively",24],["junit",24],["dns",23],["modules",23],["communicator",23],["toolsets",23],["hybrid",23],["forms",23],["mustache",23],["vanilla",22],["relationship",22],["saas",22],["middleware",22],["interactions",22],["certification",22],["schema",22],["datamodelling",22],["ip",21],["sketch",21],["ibm",21],["portal",21],["discriminate",21],["qualification",21],["library",21],["gitlab",21],["device",21],["manufacturing",21],["tables",21],["scala",21],["organisational",20],["optimization",20],["spec",20],["streams",20],["peer",20],["objects",20],["troubleshoot",20],["swagger",20],["multinational",19],["cms",19],["appointments",19],["enthusiastic",19],["distribution",19],["architecting",19],["connectivity",19],["alternatively",19],["records",19],["gis",19],["aggressively",19],["webapi",18],["automate",18],["querying",18],["manipulation",18],["dhcp",18],["restrictions",18],["authentication",18],["implementations",18],["investigation",18],["unfortunately",18],["iis",18],["pdf",17],["itil",17],["gateway",17],["prioritisation",17],["multidisciplinary",17],["module",17],["rabbitmq",16],["sdlc",16],["ingestion",16],["laravel",16],["redis",16],["desktop",16],["appreciation",16],["appropriately",16],["golang",16],["productivity",15],["refactoring",15],["ssas",15],["plugins",15],["conversation",15],["cyber",15],["microservice",15],["commercially",15],["consultancies",15],["dbs",15],["sophisticated",15],["routing",14],["portals",14],["participating",14],["sybase",14],["databricks",14],["bash",14],["identification",14],["oauth",14],["notwithstanding",14],["bugs",13],["testers",13],["fundamentals",13],["orchestration",13],["participation",13],["spa",13],["http",13],["karma",13],["continuously",13],["installation",13],["nginx",12],["pivotal",12],["revolutionise",12],["mongo",12],["rdbms",12],["scss",12],["warwickshire",12],["efficiencies",12],["practitioner",12],["memory",12],["organizational",12],["presentations",11],["mock",11],["provisioning",11],["quant",11],["recovery",11],["vmware",11],["freelance",11],["institutions",11],["consultative",11],["dependencies",11],["confidential",11],["demonstrating",11],["rails",11],["rpc",11],["chef",11],["construction",11],["websockets",11],["blogs",11],["swift",11],["static",11],["customizations",11],["consultation",11],["transactional",10],["admin",10],["svn",10],["ajax",10],["disaster",10],["tomcat",10],["communicates",10],["telecommunications",10],["functionally",10],["interoperability",10],["customization",10],["contributions",10],["representing",10],["cucumber",10],["implications",10],["hertfordshire",10],["openui",10],["effectiveness",10],["nunit",10],["gov",10],["geospatial",10],["vsphere",10],["gradle",10],["modernisation",10],["swql",10],["lamp",9],["sub",9],["hosting",9],["modeller",9],["emails",9],["autonomously",9],["axure",9],["triggers",9],["eclipse",9],["maps",9],["iso",9],["pharmaceutical",9],["coordinating",9],["differentiating",9],["computappoint",9],["threads",9],["jsed",9],["audio",9],["facilitating",9],["schemas",9],["escript",9],["interpreting",9],["twitter",9],["progressively",9],["dramatically",9],["flex",9],["department's",9],["responsiveness",9],["firewall",8],["olap",8],["contractexperience",8],["bedfordshire",8],["datawarehouse",8],["aptitude",8],["visualisations",8],["webgl",8],["mining",8],["knowledgeable",8],["facilitation",8],["constructive",8],["xamarin",8],["postman",8],["jsreact",8],["mq",8],["customisation",8],["technologists",8],["kubternetes",8],["iotl",8],["headless",8],["pwa",8],["embedded",8],["mockups",8],["consistently",8],["toolset",8],["characteristic",8],["technological",8],["yarn",8],["interviewing",8],["configurations",8],["predominantly",8],["ssh",8],["snmp",8],["tsql",7],["blockchain",7],["ember",7],["browsers",7],["visualization",7],["contractsalary",7],["intermediary",7],["mssql",7],["debug",7],["perl",7],["patches",7],["hyper",7],["modeling",7],["benchmarking",7],["tags",7],["internationally",7],["datastage",7],["cypress",7],["canary",7],["gherkin",7],["routine",7],["ionic",7],["cognos",7],["accountability",7],["transforming",7],["firebase",7],["administrative",7],["cache",7],["synapse",7],["circumstances",7],["cassandra",7],["wintel",7],["demonstrations",7],["wifi",7],["mercurial",7],["typography",6],["redesign",6],["verification",6],["errors",6],["mathematical",6],["cloudformation",6],["temps",6],["alternatives",6],["ldap",6],["additionally",6],["embedding",6],["teradata",6],["satigo",6],["bitbucket",6],["maintainable",6],["pixel",6],["unsuccessful",6],["configure",6],["historically",6],["visualizations",6],["commit",6],["codes",6],["protractor",6],["schemes",6],["widgets",6],["layouts",6],["institutional",6],["engines",6],["mstest",6],["prototype",6],["notifications",6],["approximately",6],["smartsourcing",6],["geocortex",6],["cdns",6],["squid",6],["ntp",6],["proxies",6],["certificates",6],["establishing",6],["xenapp",6],["peterborough",6],["sns",5],["bigquery",5],["compute",5],["toad",5],["customisations",5],["intermediate",5],["backbone",5],["opportunitiesflexible",5],["segmentation",5],["publications",5],["array",5],["subscriptions",5],["interpretation",5],["analytic",5],["xhtml",5],["knockout",5],["redhat",5],["allegisgroup",5],["sqs",5],["conferencing",5],["wlan",5],["complimentary",5],["xmapp",5],["occasionally",5],["personalisation",5],["folders",5],["bot",5],["ui's",5],["jsreactsccleared",5],["shortlisting",5],["investigating",5],["headquartered",5],["automatable",5],["gatsby",5],["experimenting",5],["amplify",5],["exploitation",5],["vscode",5],["reactive",5],["entertainment",5],["searchability",5],["router",5],["installations",5],["modular",5],["cocoa",5],["tailwind",5],["metadata",5],["satisfaction",5],["demonstrates",5],["ethernet",5],["jsv",5],["transparency",5],["perspectives",5],["civilization",5],["webservices",5],["isp",5],["memcached",5],["vulnerabilities",5],["polyglot",5],["curves",5],["instrumental",5],["threejs",5],["vulnerability",5],["collaborates",5],["clarifications",5],["standardization",5],["automatization",5],["foundational",5],["yaml",5],["understandable",4],["stamp",4],["compatibility",4],["refactor",4],["cdn",4],["patch",4],["administering",4],["reconciliation",4],["characteristics",4],["transformations",4],["northamptonshire",4],["optimisations",4],["mainframe",4],["spreadsheets",4],["webassembly",4],["considerable",4],["jsp",4],["accommodation",4],["toolkit",4],["repositories",4],["calculations",4],["vpn",4],["firewalls",4],["razor",4],["snowflake",4],["interventions",4],["redevelopment",4],["simultaneously",4],["matrix",4],["nasa",4],["distributing",4],["demonstratable",4],["powerpoint",4],["coordination",4],["accomplished",4],["highlighting",4],["determination",4],["introduction",4],["cursors",4],["lambdas",4],["retrospectives",4],["scopes",4],["ssl",4],["filters",4],["lookups",4],["supportability",4],["virtualisation",4],["microservces",4],["natively",4],["optimizations",4],["cambridgeshire",4],["widgit",4],["sonar",4],["appian",4],["wsdl",4],["jdbc",4],["agenda",4],["domino",4],["functionalities",4],["tp_eseye_frontend",4],["webpacker",4],["constructively",4],["advertisement",4],["gdpr",4],["mobx",4],["rhel",4],["centos",4],["formats",4],["iconic",4],["firetv",4],["tvos",4],["transact",4],["drives",4],["authorisation",4],["conversations",4],["multivariate",4],["participants",4],["tablets",4],["aosp",4],["kitkat",4],["environmental",4],["headquarters",4],["standardisation",4],["multitasking",4],["browserstack",4],["netbeans",4],["openapi",4],["consideration!",4],["interestplease",4],["contractwork",3],["reconciliations",3],["representation",3],["utility",3],["esp",3],["api’s",3],["investigative",3],["nlp",3],["permanentsalary",3],["yearexperience",3],["calibre",3],["satisfactory",3],["buckinghamshire",3],["cli",3],["acquisitions",3],["virus",3],["xslt",3],["kaleidoscope",3],["profitability",3],["clouds",3],["font",3],["correspondence",3],["stirling",3],["ubuntu",3],["meta",3],["scotland's",3],["suse",3],["olinux",3],["gui",3],["transportation",3],["counterparts",3],["pivot",3],["ethical",3],["webdriver",3],["plsql",3],["javasscript",3],["csv",3],["shareholders",3],["recognisable",3],["arrays",3],["variables",3],["nestjs",3],["heroku",3],["cordova",3],["conceptualizing",3],["predict",3],["individuality",3],["cosmosdb",3],["morgan",3],["subsequently",3],["acknowledged",3],["replatforming",3],["consolidation",3],["strategically",3],["immediately!",3],["propositions",3],["discrimination",3],["safeguarding",3],["repos",3],["multimedia",3],["preventative",3],["webapp",3],["presentational",3],["analytically",3],["obligatoires",3],["connaissance",3],["environnement",3],["approachable",3],["automatically",3],["surveillance",3],["collaborators",3],["hypertext",3],["jmeter",3],["digitally",3],["nodes",3],["registration",3],["transferring",3],["intellij",3],["maintainability",3],["authorization",3],["sparta",3],["render",3],["christopherson",3],["cybersecurity",3],["integration's",3],["understandings",3],["middot",3],["pascal",3],["openvms",3],["instructions",3],["underwriting",3],["deliverable's",3],["datacentres",3],["etls",3],["counhbase",3],["infrastructures",3],["operationally",3],["frames",3],["extensibility",3],["underrepresented",3],["containerization",3],["achievements",3],["preprocessors",3],["appliance",3],["distributions",3],["crime",3],["grok",3],["accreditation",3],["editor",3],["intermediaries",3],["buckets",3],["personalization",3],["classic",3],["sustainability",3],["sensors",3],["advancements",3],["flux",3],["aria",3],["jboss",3],["neo",3],["estamp",2],["pub",2],["experiencing",2],["ftp",2],["sms",2],["subsidiaries",2],["contractually",2],["carbon",2],["ecosystems",2],["significantly",2],["personalized",2],["aurora",2],["programmatic",2],["niederdorfer",2],["libor",2],["sysadmin",2],["independence",2],["architected",2],["dayexperience",2],["webpage",2],["dataops",2],["datastore",2],["participates",2],["clarification",2],["fuzzy",2],["commissioning",2],["spikes",2],["modifications",2],["geo",2],["confidentiality",2],["undergraduates",2],["businessobjects",2],["contributors",2],["intel",2],["macosx",2],["meteor",2],["contemporary",2],["osql",2],["intervention",2],["minimisation",2],["pseudonymisation",2],["websocket",2],["kubernetesyaml",2],["metropolitan",2],["jsam",2],["dom",2],["scrums",2],["deb",2],["personality!",2],["transferrable",2],["interdependencies",2],["subscription",2],["entrepreneurial",2],["influxdb",2],["transferable",2],["gitflow",2],["simplification",2],["telco",2],["connectors",2],["promise",2],["chatbots",2],["corresponding",2],["conceptually",2],["mariadb",2],["specializing",2],["phonegap",2],["conventional",2],["representatives",2],["incorporating",2],["personalisations",2],["monolithic",2],["gloucestershire",2],["dissemination",2],["laptopaccess",2],["prioritizing",2],["responsibilites",2],["reddis",2],["toolchains",2],["jsazure",2],["balsamiq",2],["stripe",2],["couchbase",2],["erlang",2],["optionnelles",2],["dataset",2],["undergraduate",2],["epidemiology",2],["epidemiological",2],["@contractswill",2],["chrome",2],["universities",2],["null",2],["revolutionary",2],["sonarqube",2],["responsabilit",2],["connaissances",2],["reduction",2],["cinema",2],["neurodiverse",2],["jsnkglobalconleadlon",2],["interrogation",2],["xss",2],["tagged",2],["hierarchical",2],["opporutunity",2],["svg",2],["localstorage",2],["postresql",2],["modernization",2],["rdb",2],["postgesql",2],["systemv",2],["jamstack",2],["robotics",2],["routes",2],["datawarehouses",2],["webm",2],["apollo",2],["thoughtonomy",2],["mpeg",2],["hevc",2],["ioc",2],["vbscript",2],["xcode",2],["specialised",2],["prescription",2],["mozaic",2],["referenceable",2],["patton",2],["nottinghamshire",2],["commensurate",2],["storytelling",2],["legislations",2],["containerized",2],["instructional",2],["arrangements",2],["disabilities",2],["requirejs",2],["epics",2],["normalisation",2],["encompassing",2],["linq",2],["mcguffin",2],["jsappinfo",2],["expressroute",2],["corporations",2],["jsshopify",2],["notification",2],["synthesizing",2],["gazelle",2],["assembly",2],["rabbit",2],["dedupe",2],["gitbucket",2],["recommending",2],["implantation",2],["hybrids",2],["terminologies",2],["rhapsody",2],["practitioners",2],["priyadarsini",2],["interested!",2],["investigations",2],["computedb",2],["persuasively",2],["webcenter",2],["modification",2],["recommendation",2],["intranet",2],["sinon",2],["exceptionless",2],["classification",2],["babel",2],["maria",2],["sensor",2],["vuetify",2],["containerised",2],["constituents",2],["virtualization",2],["scottish",2],["retrospectively",2],["disappointment",2],["probationary",2],["leicestershire",2],["technology's",2],["props",2],["immutability",2],["reproducible",2],["nonsql",2],["dbms",2],["standardized",2],["cmake",2],["subcontractor",2],["opengl",2],["directx",2],["activex",2],["merchandising",2],["controllership",2],["storevirtual",2],["transformational",2],["revolutionises",2],["manufactures",2],["electrochemistry",2],["unstructured",2],["successfactors",2],["tcpip",2],["rdms",2],["broadcasting",2],["clojure",2],["triaging",2],["delight",2],["jslint",1],["jshint",1],["med",1],["dashboarding",1],["dataflow",1],["loadbalancer",1],["organisationally",1],["controllerview",1],["sql·",1],["communicatordesirables",1],["regulationsif",1],["axiomslldnjob",1],["interchangeably",1],["confirmations",1],["grammatically",1],["volunteering",1],["modellinggood",1],["desirablefluent",1],["elasticity",1],["nhibernate",1],["defraggler",1],["speccy",1],["aspirational",1],["carts",1],["geeks",1],["requirementsknowledge",1],["reactjswebsockets",1],["jsoncross",1],["practicesexperience",1],["wordpresssolid",1],["skillsfluent",1],["englishresponsibilitiesdevelopment",1],["macos",1],["hoursreference",1],["governmental",1],["londoncontractdaily",1],["discontinuation",1],["managercreating",1],["testsextracting",1],["systemperform",1],["smesensuring",1],["expectationspre",1],["scenariospresenting",1],["offproviding",1],["requiredtesting",1],["appropriatelythe",1],["zeromq",1],["pytorch",1],["dscrocontribute",1],["sourcescontribute",1],["“housekeeping”",1],["levelextensive",1],["typographyexperience",1],["skillsproficiency",1],["invisionexperience",1],["prototypesgood",1],["trendsunderstanding",1],["prolancer",1],["hourscontract",1],["datawarehousing",1],["manufacturer",1],["compromising",1],["iosmobile",1],["bourne",1],["korn",1],["shells",1],["vtl",1],["electron",1],["circular",1],["developerjob",1],["contractjob",1],["description·",1],["reactjs·",1],["ecma",1],["jestjob",1],["establishments",1],["environmentshas",1],["correctedproviding",1],["andexperience",1],["environmentoracle",1],["sqlbdd",1],["microservicestesting",1],["hermesjmsrestassuredreadyapi",1],["equivalentexperience",1],["sassexperience",1],["designability",1],["prototypesexcellent",1],["abilitiesstrong",1],["playerdegree",1],["mysq",1],["doingcombining",1],["requirementsdesigning",1],["aestheticsresearching",1],["projectstaking",1],["teamcollaborating",1],["differenceresponsibilitiesas",1],["experiencesensuring",1],["standardscollaborating",1],["visionunderstand",1],["psychologyconduct",1],["feedbackcreate",1],["lifecommunicate",1],["developerskeep",1],["toolsrequirementsa",1],["platformsstrong",1],["projectsbackground",1],["researchfamiliarity",1],["architectureproblem",1],["aptitudeanalytical",1],["acumenexcellent",1],["skillsworking",1],["advantagesknowledge",1],["axureenthusiasm",1],["necessaryknowledge",1],["londonflexible",1],["hoursopportunity",1],["bonusesattendance",1],["includedtraining",1],["neededinternational",1],["necessarypaid",1],["daysrefreshments",1],["officemacbook",1],["acclimatedtrust",1],["entrepreneurs",1],["capitalising",1],["opportunitiesprofit",1],["transformative",1],["simultaneous",1],["requiredapidatabase",1],["architecturedatabase",1],["applicationwebsite",1],["developmentapi",1],["integrationux",1],["languagesjavascriptphppythonhtml",1],["csshtmldatabasesmysqlfull",1],["skillsbootstrap",1],["contractapplication",1],["monthexperience",1],["androidthings",1],["prerequisite",1],["skillsproven",1],["xssiknowledge",1],["standardsexperience",1],["ncarolan@mcgregor",1],["png",1],["employmenttype",1],["hiringorganization",1],["url",1],["postaladdress",1],["addresslocality",1],["addressregion",1],["streetaddress",1],["monetaryamount",1],["propertyvalue",1],["xssi",1],["solutionssoftware",1],["solutionstesting",1],["abovegeneration",1],["estimatestesting",1],["functionalityadherence",1],["practicesaccurately",1],["leadershipsupporting",1],["activitiesproduction",1],["documentationparticipation",1],["productsconfiguration",1],["rcp",1],["environmentsobject",1],["umlmicrosoft",1],["architectjob",1],["servicesgood",1],["bigtable",1],["integrationjob",1],["foundation’s",1],["simplistically",1],["multidiscipline",1],["responsibilitiesanalyze",1],["programsestablish",1],["executionmonthly",1],["executioneducation",1],["experiencestrong",1],["skillsdetail",1],["executiondependable",1],["motivatedexcellent",1],["abilitytableau",1],["dressreference",1],["pricingconsultantjob",1],["systemparticipates",1],["askedidentifies",1],["similarminimum",1],["methodologiesproficient",1],["peoplefluent",1],["powerbiexperience",1],["warehouseexperience",1],["kafkasexperienced",1],["experiencemust",1],["sourceenthusiastic",1],["individualdesirable",1],["experiencemicrosoft",1],["experienceknowledge",1],["environmentbackground",1],["platformsexperience",1],["pythonexperienced",1],["dataflows",1],["matchingexperience",1],["platformstatistics",1],["systemsbuild",1],["objectivesensure",1],["practicestest",1],["solutionssupport",1],["platformmaintain",1],["servicesimplement",1],["datareference",1],["permanentexperience",1],["lambethcontract",1],["knowledgedemonstrable",1],["legislationdetailed",1],["requirementsqualificationsa",1],["responsibilitiesbuild",1],["serviceswork",1],["designsproduce",1],["teamdevelopment",1],["technologiesdevelopment",1],["conceptsdemonstration",1],["criteriaparticipation",1],["retro",1],["estimatessupport",1],["componentsmandatory",1],["pythonsqlworking",1],["apisdev",1],["experiencepytestunit",1],["testsexposure",1],["methodologiesdesirable",1],["analyticsjava",1],["testingopenshift",1],["kubernetesspringboot",1],["reactiveexcel",1],["vbdata",1],["mappingfamiliarity",1],["solutionsgit",1],["pipelinesdomain",1],["experiencework",1],["standardswork",1],["portfoliogood",1],["symbolsexperience",1],["ccexperience",1],["guidelinescreative",1],["itunderstanding",1],["javascriptsantander",1],["descriptionjob",1],["architectcontract",1],["lesslocation",1],["assessmentreview",1],["performanceknowledge",1],["analysistarget",1],["resiliencesensitive",1],["stakeholdersmicrosoft",1],["mangerremoteendeavour",1],["managementserver",1],["upgradeshardware",1],["upgradessecurity",1],["firewallslan",1],["directoryexchangesql",1],["serverwindowsfurther",1],["opportunitiesjob",1],["serverweb",1],["enviromentproven",1],["開発エンジニア【求人概要】",1],["日系itベンダーが金融機関でのit技術者マイクロソフト系開発エンジニアを募集【勤務地】ロンドン",1],["大手メガバンクのシステム部門・企画部門に常駐する",1],["【勤務地】ロンドン【仕事内容】・c#",1],["での開発・開発チームでのリーダーもしくは教育担当・業務分析、業務改善提案などプロジェクト推進のための開発要望事項の取りまとめ・海外拠点間",1],["における開発スケジュールや開発仕様の調整【応募条件】・itバックグラウンド必須・金融システム開発経験歓迎・mysql",1],["sql、phpの使用経験優遇【語学力】母国語レベルの日本語、英語中級レベル",1],["必須【ビザ】・英国で正規で労働可能なビザを保持している方優遇・適任者にはビザ・スポンサーあり",1],["※弊社では、新型コロナウィルス対策のため、在宅勤務を実施しております。ご不便お掛け致しますが、お問い合わせ頂く際は、メールにてご連絡お願い致します。当社担当者より折り返しご連絡させて頂きます。",1],["schemereference",1],["campaignstroubleshoot",1],["reportingcreate",1],["toolsregularly",1],["flashtalking",1],["illegalities",1],["rainforestfoundationuk",1],["redevelopment’",1],["hoursapplication",1],["mapbox",1],["unsupervised",1],["computerised",1],["descriptionthe",1],["chaotic",1],["descriptionwe",1],["softwarebenefits",1],["hourexperience",1],["descriptiondue",1],["technologystrong",1],["growthability",1],["attitudebenefit",1],["dotnet",1],["organisationhands",1],["skillsunderstanding",1],["verbalability",1],["summaryexperience",1],["locationsstrong",1],["recursive",1],["whisperclaims",1],["intellectually",1],["econometrics",1],["jsriskmanager",1],["turnkey",1],["cancellation",1],["statistically",1],["jqueryui",1],["cancellations",1],["compensation",1],["extraordinary",1],["xilinx",1],["industrialization",1],["datahub",1],["lynx",1],["prioritization",1],["xaml",1],["scraping",1],["manufacturers",1],["tape",1],["geojson",1],["callbacks",1],["appsync",1],["stageinterviews",1],["elasitcsearch",1],["jsjbcybersec",1],["gatling",1],["manipulating",1],["bracket",1],["chartjs",1],["jsangular",1],["organizations",1],["increasingly",1],["administratoryou",1],["void",1],["compile",1],["discriminatory",1],["preact",1],["oraclehcm",1],["interconnecting",1],["bots",1],["multithreaded",1],["sparksql",1],["angluarjs",1],["adb",1],["mscrm",1],["webservice",1],["interconnected",1],["scott@nigelfrank",1],["jira's",1],["sammonspensions",1],["jswebopscontract",1],["eccomerce",1],["github's",1],["proportionately",1],["communicators",1],["collaborativley",1],["professionally",1],["balsamic",1],["graphical",1],["northallerton",1],["multiplatform",1],["superintendent",1],["metallurgist",1],["jsnkprodmandalon",1],["university's",1],["ticks",1],["synchronization",1],["mutex",1],["commercialization",1],["differentiated",1],["commercialisation",1],["mobilisation",1],["homelessness",1],["abuse",1],["async",1],["compsci",1],["individually",1],["automaton",1],["jsqwcrmlesftdev",1],["geographical",1],["forestresearch",1],["incorporated",1],["kubernetese",1],["auth",1],["multichannel",1],["microstrategy",1],["jscouchbase",1],["informatique",1],["informatiques",1],["actuellement",1],["significative",1],["atlassian",1],["springmvc",1],["informations",1],["professionnel",1],["contechauthor",1],["wireframe",1],["flutter",1],["coder",1],["vcenter",1],["vcloud",1],["demographics",1],["mcg",1],["acrobat",1],["commonwealth",1],["junk",1],["spam",1],["jscloudarchitect",1],["'interesting",1],["bluewaveselect",1],["microsrvices",1],["jslinkaalinkcndk",1],["jsdataintegrationdev",1],["accessibilit",1],["manageability",1],["sockets",1],["gestionnaire",1],["mule",1],["responsibilies",1],["paired",1],["familiarisation",1],["terabyte",1],["commonalities",1],["appreciating",1],["articulating",1],["allegorithmic",1],["artistically",1],["wcms",1],["compensating",1],["wastedataflow",1],["contamination",1],["odbc",1],["cart",1],["physicalization",1],["modularising",1],["scfrontendev",1],["exceptionally",1],["servicefabric",1],["postgraduate",1],["postgraduates",1],["coders",1],["cryptographic",1],["koltin",1],["@contractgeorge",1],["cosmeceutical",1],["gcc",1],["loadbalancing",1],["webdriverio",1],["modeler",1],["jsdata",1],["digitalisation",1],["technologically",1],["friendliness",1],["webhooks",1],["subnets",1],["receptionist",1],["compassionate",1],["receptionists",1],["gifs",1],["cakephp",1],["wrigglesworth",1],["[reinsurance",1],["pm_insurance_london",1],["softwaredeveloper",1],["netc",1],["biodiversity",1],["superuser",1],["webgis",1],["viewer",1],["getmap",1],["contributory",1],["jsld",1],["compositions",1],["geographically",1],["techleadcontract",1],["vine",1],["nixon",1],["jsmanualtester",1],["brink",1],["conversational",1],["alexa",1],["unparalleled",1],["scms",1],["odba",1],["directorates",1],["underperforming",1],["complementing",1],["synchronising",1],["inequalities",1],["antimicrobial",1],["inappropriate",1],["commissioned",1],["anticipating",1],["adaptability",1],["rehabilitation",1],["orchestrated",1],["bibliographic",1],["customizable",1],["datamodel",1],["unmodernised",1],["services@justice",1],["enquiries@gov",1],["representative",1],["consistencies",1],["standardising",1],["investigator",1],["investigators",1],["encode",1],["statistician",1],["sopal@harringtonstarr",1],["entreprenuers",1],["mstech",1],["vxrail",1],["proxy",1],["resynchronization",1],["vcentre",1],["vxlans",1],["vxlan",1],["hosts",1],["jsbsdevsecopsapigee",1],["tuxedo",1],["constructing",1],["recomendations",1],["restructuring",1],["preferential",1],["middlesbrough",1],["productising",1],["departmental",1],["sesamedesign",1],["fsdev",1],["inefficiency",1],["proportionate",1],["policyholders",1],["macro",1],["jurisdictional",1],["jsinfoaystnhs",1],["govt",1],["geoserver",1],["desirability",1],["questionnaires",1],["walkthroughs",1],["bigdata",1],["pcie",1],["vpx",1],["firmware",1],["microprocessors",1],["rtos",1],["vhdl",1],["verilog",1],["acls",1],["ruleset",1],["webflow",1],["delphi",1],["–nodejs",1],["nextjs",1],["evolutionary",1],["sqlite",1],["implentation",1],["concurrencies",1],["manipulations",1],["jsdl",1],["accomplishment",1],["surprisingly",1],["extraordinaire",1],["shikha_software",1],["developement",1],["shikha_spark",1],["intergration",1],["chai",1],["decomposition",1],["groundbreaking",1],["mesh",1],["postcss",1],["eslint",1],["ddfc",1],["sparkcontext",1],["jsux",1],["que",1],["mindsphere",1],["jslb_cloudplatform_sidestep",1],["typescipt",1],["sysops",1],["citric",1],["decommission",1],["sphere",1],["netbackup",1],["jserve_winsysops_sm",1],["lemp",1],["kotli",1],["typecript",1],["micoservice",1],["mqtt",1],["foss",1],["anthropology",1],["freelancer",1],["joomla",1],["academically",1],["establishment",1],["encountering",1],["observerships",1],["transitioned",1],["scripted",1],["restapis",1],["interrogates",1],["serverside",1],["postgress",1],["debugger",1],["deeptech",1],["productionising",1],["partitioning",1],["javare",1],["iimplementation",1],["organization's",1],["@beitresourcing",1],["ualifications",1],["promoveritas",1],["competitions",1],["haproxy",1],["configurator",1],["unauthorised",1],["breakthroughs",1],["determinations",1],["routers",1],["savethechildren",1],["donnelly",1],["decommissioning",1],["@searchablechris",1],["ellipse",1],["jsdev",1],["instrumentation",1],["kubernets",1],["hackers",1],["streamlining",1],["solaris",1],["interviewers",1],["interdependent",1],["meritocratic",1],["balancer",1],["keyvault",1],["multibillion",1],["enterpriseanalytics",1],["trajectories",1],["jsinteraction",1],["consequences",1],["characterised",1],["jswminteractionlon",1],["requisitions",1],["markdown",1],["contractsonline",1],["geek",1],["capitalization",1],["personalised",1],["registrations",1],["multithreading",1],["octopusdeploy",1],["resharper",1],["axios",1],["preferableclients",1],["personalities",1],["governanance",1],["xunit",1],["netcore",1],["systemsaccountants",1],["xapi",1],["rdbs",1],["pragmatically",1],["restapi",1],["polygot",1],["collaborator",1],["mozilla",1],["bde",1],["ghost",1],["jsap",1],["@searchableolly",1],["orginisation",1],["vbs",1],["repo",1],["centralisation",1],["fpga",1],["vlan",1],["jspfwireless",1],["nfrastructure",1],["centralising",1],["unprecedented",1],["reputational",1],["peterbourogh",1],["reachjs",1],["multifunctional",1],["supermarkets",1],["operationalisation",1],["webapps",1],["london's",1],["revolutionising",1],["duping",1],["consequentially",1],["struts",1],["assocciation",1],["clydebank",1],["switch",1],["descriptions",1],["motif",1],["considerably",1],["unify",1],["typographical",1],["illustration",1],["diversification",1],["jardinemotors",1],["diversityandinclusion",1],["physiological",1],["communicative",1],["eventsourcing",1],["cswain@redlinegroup",1],["phenomenally",1],["flextrade",1],["fulltime",1],["origination",1],["cao",1],["spreading",1],["timesheet",1],["stablelogic",1],["materialui",1],["wage",1],["javascipt",1],["prop",1],["influential",1],["herselman",1],["orbis",1],["jsmh",1],["doncaster",1],["hursley",1],["redevelop",1],["syssc",1],["frg",1],["webrtc",1],["icecast",1],["mmt",1],["toolchain",1],["inputting",1],["embrace",1],["bearing",1],["motivates",1],["fairness",1],["commercialism",1],["tolerate",1],["bullying",1],["intimidation",1],["happens",1],["celebrating",1],["passionately",1],["fun!",1],["bacardi",1],["bp",1],["comparethemarket",1],["honest",1],["msq",1],["drum",1],["recommends",1],["picked",1],["prix",1],["successive",1],["negative",1],["pledge",1],["extends",1],["specialisation",1],["verticals",1],["abound",1],["rank",1],["ukoug",1],["oic",1],["fbdi",1],["bipublsiher",1],["otbi",1],["prescribed",1],["oum",1],["adi",1],["ame",1],["obiee",1],["obia",1],["ev",1],["cld",1],["ocl",1],["permits",1],["suzanne",1],["whelan",1],["tel",1],["netcool",1],["sevone",1],["appdynamics",1],["showcases",1],["odevelop",1],["onetwork",1],["topologies",1],["corba",1],["bgp",1],["odatabase",1],["oone",1],["oexperience",1],["ointerest",1],["onetworking",1],["obig",1],["omachine",1],["ocontinuous",1],["rationalise",1],["cluttered",1],["inefficient",1],["mga",1],["icons",1],["obsessive",1],["mavis",1],["workplaces",1],["folio",1],["sincerely",1],["inventively",1],["concepting",1],["branded",1],["brave",1],["tactics",1],["hearts",1],["beating",1],["flowing",1],["spanning",1],["toe",1],["miles",1],["npb",1],["▪",1],["kevin",1],["·good",1],["·strong",1],["complexities",1],["indefinite",1],["bl",1],["expericne",1],["magconrem",1],["lightweight",1],["separation",1],["binding",1],["helpers",1],["subtle",1],["lookig",1],["guis",1]] diff --git a/lib/base.js b/lib/base.js index a05ce19..cddca1c 100644 --- a/lib/base.js +++ b/lib/base.js @@ -10,6 +10,8 @@ const filterAccept = require('../lib/filter_md_jobs'); const dbmanager = require('../lib/dbmanager'); const JobsModel = require('../lib/mongoManager'); +const SHA = require('crypto-js/sha256'); + const { Utils } = require('@rakh/utils'); const { Corpus } = require('./corpus'); @@ -75,7 +77,7 @@ class MasterBase { newJob.save().then((m) => { console.log('m', m.details.title); }).catch((err) => { - console.error(err); + console.error('m', err); }); } } @@ -112,10 +114,20 @@ class MasterBase { * @returns {{data: {read: number, autoclass: number, applied: number, jobtype: number, class: number}, details: {}}} */ reduceData(d) { + const clearPremium = /(\n+)(Featured|Premium)/gi; + const otherStupid = /((↵\s+)+)(Featured|Premium)/gi; + const outObj = { 'details':{}, 'data':{ 'read':0, 'applied':0, 'jobtype': 0, 'class':0, 'autoclass':0 } }; outObj.details = Utils.extractFromObj(d, ['title', 'site', 'url', 'id', 'summary', 'company', 'location', 'postdate', 'salary', 'easyapply', 'timestamp']); + outObj.details.title = outObj.details.title.replace(clearPremium, ''); + outObj.details.title = outObj.details.title.replace(otherStupid, ''); + outObj.details.hashed = SHA(outObj.details.summary); + + outObj.data.read = 0; + outObj.data.applied = d.applied || 0; + outObj.data.jobtype = this.analyseRate(d.salary); outObj.data.autoclass = Corpus.process(d.summary); diff --git a/lib/corpus.js b/lib/corpus.js index edb966f..3e24c3b 100644 --- a/lib/corpus.js +++ b/lib/corpus.js @@ -18,7 +18,7 @@ const desymbolNumberRegex = /[\n\t+$,\?\.\%\*=&:;()\\/\-£…"]|\d+/gi; const deSpace = /\s+/g; function cleanText(intext) { - if (arguments.length === 0 || intext === null ) return ''; + if (arguments.length === 0 || typeof intext === 'undefined' || intext === null ) return ''; return intext.replace(emailRegex, ' ').replace(detagRegex, ' ').replace(desymbolNumberRegex, ' ').replace(deSpace, ' ').trim().toLowerCase(); } diff --git a/lib/mongoManager.js b/lib/mongoManager.js index ad3b085..76778f9 100644 --- a/lib/mongoManager.js +++ b/lib/mongoManager.js @@ -18,9 +18,15 @@ require('dotenv').config(); logger.level = 'debug'; -logger.debug(`mongodb://martin:1V3D4m526i@${ process.env.DBHOST }/${ process.env.DBNAME}`); +const mongoConnect = process.env.MONGOCONNECT; -mongoose.connect(`mongodb://martin:1V3D4m526i@127.0.0.1/jobs`); +// logger.debug(`mongodb://martin:1V3D4m526i@${ process.env.DBHOST }/${ process.env.DBNAME}`); + +// mongoose.connect(`mongodb://martin:1V3D4m526i@127.0.0.1/jobs`); + +logger.debug(mongoConnect); + +mongoose.connect(mongoConnect); const mDB = mongoose.connection; mDB.on('error', console.error.bind(console, 'connection error:')); diff --git a/lib/scraper.js b/lib/scraper.js index 7bff2ef..aa532f1 100644 --- a/lib/scraper.js +++ b/lib/scraper.js @@ -22,7 +22,7 @@ class MasterScraper extends MasterBase { } /** - * + * * @param url * @param useStone * @returns {Promise} @@ -59,23 +59,28 @@ fetch(url, { resolve(response.body); }) .catch((e) => { + console.error('getContent', e ); reject(e.response.body); }); }); }; - /** - * - * @returns {Promise} - */ + async savePage(html) { + const now = fecha.format(new Date(), 'YYYY-MM-DD--hh'); + + const filename = `pages/${this.siteid}-${now}.html`; + + fs.writeFileSync(filename, html); + } + async getPage() { console.log('>> getPage: fetching', this.url); - const now = fecha.format(new Date(), 'YYYY-MM-DD--hhmmss'); - const filename = `${this.siteid}-${now}.html`; await this.getContent(this.url, this.useStone) .then((html) => { - fs.writeFileSync(filename, html); + // console.log('>> getPage:: got', html); + console.log('>> getPage:: OK'); + if (this.saveFile) this.savePage(html); const $ = cheerio.load(html); this.loadPage($); }) diff --git a/migrate.js b/migrate.js index 8646e07..da7ad84 100644 --- a/migrate.js +++ b/migrate.js @@ -12,7 +12,12 @@ const { Utils } = require('@rakh/utils'); const { Corpus } = require('./lib/corpus'); +const SHA = require('crypto-js/sha256'); + /* + +2604 + const mongoose = require('mongoose'); const log4js = require('log4js'); const logger = log4js.getLogger(); @@ -49,7 +54,8 @@ const migrate = (function() { else if ((item > 100) && (item < 5000)) outVal = 1; else if (item >= 5000) outVal = 2; } - + else return 0; + return outVal; } function reduceData(d) { @@ -62,6 +68,7 @@ const migrate = (function() { outObj.details.title = outObj.details.title.replace(clearPremium, ''); outObj.details.title = outObj.details.title.replace(otherStupid, ''); + outObj.details.hashed = SHA(outObj.details.summary); // outObj.data.read = d.read || 0; outObj.data.read = 0; @@ -94,8 +101,8 @@ const migrate = (function() { }); } - function start() { - getCurrent().then((d) => { + async function start() { + await getCurrent().then(async (d) => { logger.debug(d.length); for (let t = 0;t < (d.length - 1);t++) { @@ -105,10 +112,10 @@ const migrate = (function() { const newJob = Jobs(newD); - newJob.save().then((m) => { + await newJob.save().then((m) => { logger.debug('m', m.details.title); }).catch((err) => { - logger.error(err); + logger.error(err.keyPattern); }); } }).then(() => { @@ -116,14 +123,34 @@ const migrate = (function() { Corpus.exportUnused(); }) .catch((err) => { - logger.error(err); + logger.error(err.keyPattern); }); } + async function deleteOld() { + const oneDay = 86400000; + const twoWeeksAgo = new Date().getTime() - ( 14 * oneDay); + + logger.debug('Delete older than: ', new Date(twoWeeksAgo), twoWeeksAgo); + + logger.debug({ 'data.timestamp': { '$lt': twoWeeksAgo } }); + Jobs.deleteMany({ 'data.timestamp': { '$lt': twoWeeksAgo }, 'data.applied': 0 }).then((m) => { + logger.debug('m', m); + }).catch((err) => { + logger.error(err); + }); + } + + // newJob.find({ 'data': { 'timestamp': { '$lt': 1587034346000 } } }); + return { - 'start':start + 'start':start, + 'deleteOld': deleteOld }; })(); -migrate.start(); -logger.info('Done??'); +(async function() { + await migrate.start(); + await migrate.deleteOld(); + logger.info('Done??'); +})(); diff --git a/models/jobs.js b/models/jobs.js index fc8bcb6..f8f8bed 100644 --- a/models/jobs.js +++ b/models/jobs.js @@ -20,7 +20,8 @@ const jobSchema = new Schema({ 'postdate': String, 'salary': String, 'easyapply': Number, - 'timestamp': Number + 'timestamp': Number, + 'hashed' : { 'type': String, 'required':true, 'unique':true } }, 'data': { 'read': { 'type': Number, 'default': 0 }, diff --git a/onetime.js b/onetime.js new file mode 100644 index 0000000..e127960 --- /dev/null +++ b/onetime.js @@ -0,0 +1,66 @@ +/** + * Created by WebStorm. + * User: martin + * Date: 16/04/2020 + * Time: 23:35 + + */ +const CronJob = require('cron').CronJob; +const IndeedScraper = require('./scrapers/indeed'); +const TotaljobsScraper = require('./scrapers/totaljobs'); +const CwjobsScraper = require('./scrapers/cwjobs'); +const JobserveScraper = require('./scrapers/rss.jobserve'); +const RssS1Jobs = require('./scrapers/rss.s1jobs'); +const RssTechnojobs = require('./scrapers/rss.technojobs'); + +(async function () { + console.log('Started..'); + const indeedScraper = new IndeedScraper(); + const totaljobsScraper = new TotaljobsScraper(); + const cwjobsScraper = new CwjobsScraper(); + const jobserveScraper = new JobserveScraper(); + const s1jobsScraper = new RssS1Jobs(); + const technojobsScraper = new RssTechnojobs(); + + await indeedScraper.go('london'); + await totaljobsScraper.go('london'); + await cwjobsScraper.go('london'); + + await indeedScraper.go('glasgow'); + await totaljobsScraper.go('glasgow'); + await cwjobsScraper.go('glasgow'); + await indeedScraper.go('edinburgh'); + await totaljobsScraper.go('edinburgh'); + await cwjobsScraper.go('edinburgh'); + await indeedScraper.go('milton keynes'); + await totaljobsScraper.go('milton keynes'); + await cwjobsScraper.go('milton keynes'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/BAEBF3BDF82B8FEF.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/9BCBF25C586A0E3F.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/F3A56475D5FD4966.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/4E2AC50E02AD128B.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/6DA9769BA89834AA.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/EDF47BEA6B31EF.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/3CAD044BEF2BFA.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/C7B25D86D0844A.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/64A3EEF615FA4C.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/6FC7E9ED5F042ECB.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/CA49421A86CA3F74.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/846CDA8658FF93A3.rss'); + await jobserveScraper.go('https://www.jobserve.com/MySearch/ED1708BF42EF3513.rss'); // javascript node 2 Jul 2020 + await jobserveScraper.go('https://www.jobserve.com/MySearch/4C67595E323E3453.rss'); // vuejs 2 Jul 2020 + await jobserveScraper.go('https://www.jobserve.com/MySearch/DCD6B8CE431FE402.rss'); // svelte 2 Jul 2020 + + await s1jobsScraper.go('http://www.s1jobs.com/xml/m7dp711z2r.xml'); + await s1jobsScraper.go('http://www.s1jobs.com/xml/pfvf7o7z2r.xml'); + await s1jobsScraper.go('http://www.s1jobs.com/xml/lluqnt8z2r.xml'); + await s1jobsScraper.go('http://www.s1jobs.com/xml/tu33qt8z2r.xml'); + await s1jobsScraper.go('http://www.s1jobs.com/xml/u3btnz8z2r.xml'); + await s1jobsScraper.go('http://www.s1jobs.com/xml/b1d7e6c3a9a11964z3r.xml'); + await s1jobsScraper.go('http://www.s1jobs.com/xml/ddeded091b6f6d33z3r.xml'); + + await technojobsScraper.go('https://www.technojobs.co.uk/rss.php/html%20OR%20node%20OR%20web%20OR%20sql%20OR%20delphi%20OR%20javascript%20OR%20ajax/excludekeywords/locationglasgow/radius25/termsin0/salary0/postedwithinall/jobtypeall/searchfieldRSearchIndex/page1'); + await technojobsScraper.go('https://www.technojobs.co.uk/rss.php/html%20OR%20node%20OR%20web%20OR%20sql%20OR%20delphi%20OR%20javascript%20OR%20ajax/excludekeywords/locationLONDON/radius25/termsin0/salary0/postedwithinall/jobtypeall/searchfieldRSearchIndex/page1'); + await technojobsScraper.go('https://www.technojobs.co.uk/rss.php/html%20OR%20node%20OR%20web%20OR%20sql%20OR%20delphi%20OR%20javascript%20OR%20ajax/excludekeywords/locationMilton%20Keynes/radius25/termsin0/salary0/postedwithinall/jobtypeall/searchfieldRSearchIndex/page1'); + +})(); diff --git a/package-lock.json b/package-lock.json index 63e8a1a..2bc766f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,444 +5,82 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", - "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==" + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" }, "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "requires": { - "@babel/helper-validator-identifier": "^7.9.0", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@rakh/utils": { - "version": "file:../utils", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rakh/utils/-/utils-1.0.0.tgz", + "integrity": "sha512-7bQT0VT0KfC8k6blF7/6qvgY6C7t72cPLJjFaQEPSttlBxnaDLyL3OKyhvmui0FiY+dbE4Qdp2/fhTxo3r2Vmw==", "requires": { "@rollup/plugin-commonjs": "^12.0.0", "@rollup/plugin-node-resolve": "^8.0.0", "consola": "^2.13.0", "rollup": "^2.12.0", "rollup-plugin-terser": "^6.1.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", - "requires": { - "@babel/highlight": "^7.10.1" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", - "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==" - }, - "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", - "requires": { - "@babel/helper-validator-identifier": "^7.10.1", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@rollup/plugin-commonjs": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-12.0.0.tgz", - "integrity": "sha512-8+mDQt1QUmN+4Y9D3yCG8AJNewuTSLYPJVzKKUZ+lGeQrI+bV12Tc5HCyt2WdlnG6ihIL/DPbKRJlB40DX40mw==", - "requires": { - "@rollup/pluginutils": "^3.0.8", - "commondir": "^1.0.1", - "estree-walker": "^1.0.1", - "glob": "^7.1.2", - "is-reference": "^1.1.2", - "magic-string": "^0.25.2", - "resolve": "^1.11.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.0.0.tgz", - "integrity": "sha512-5poJCChrkVggXXND/sQ7yNqwjUNT4fP31gpRWCnSNnlXuUXTCMHT33xZrTGxgjm5Rl18MHj7iEzlCT8rYWwQSA==", - "requires": { - "@rollup/pluginutils": "^3.0.8", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "deep-freeze": "^0.0.1", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - } - }, - "@rollup/pluginutils": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.10.tgz", - "integrity": "sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw==", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "@types/node": { - "version": "14.0.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.6.tgz", - "integrity": "sha512-FbNmu4F67d3oZMWBV6Y4MaPER+0EpE9eIYf2yaHhCWovc1dlXCZkqGX4NLHfVVr6umt20TNBdRzrNJIzIKfdbw==" - }, - "@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "requires": { - "@types/node": "*" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "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" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "consola": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.14.0.tgz", - "integrity": "sha512-A2j1x4u8d6SIVikhZROfpFJxQZie+cZOfQMyI/tu2+hWXe8iAv7R6FW6s6x04/7zBCst94lPddztot/d6GJiuQ==" - }, - "deep-freeze": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", - "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "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==" - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "is-reference": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.0.tgz", - "integrity": "sha512-ZVxq+5TkOx6GQdnoMm2aRdCKADdcrOWXLGzGT+vIA8DMpqEJaRk5AL1bS80zJ2bjHunVmjdzfCt0e4BymIEqKQ==", - "requires": { - "@types/estree": "0.0.44" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.44", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.44.tgz", - "integrity": "sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g==" - } - } - }, - "jest-worker": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz", - "integrity": "sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "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-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "rollup": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.12.0.tgz", - "integrity": "sha512-vKwc/xFkZGM9DRai3Eztpr/4g0yYDgNKVq8tLXhq/aSLbR+/EVL6rTjEW9bgWgeYEIKoN66/5w2Bjv1gzyHR/w==", - "requires": { - "fsevents": "~2.1.2" - } - }, - "rollup-plugin-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-6.1.0.tgz", - "integrity": "sha512-4fB3M9nuoWxrwm39habpd4hvrbrde2W2GG4zEGPQg1YITNkM3Tqur5jSuXlWNzbv/2aMLJ+dZJaySc3GCD8oDw==", - "requires": { - "@babel/code-frame": "^7.8.3", - "jest-worker": "^26.0.0", - "serialize-javascript": "^3.0.0", - "terser": "^4.7.0" - } - }, - "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==" - }, - "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "terser": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz", - "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } + } + }, + "@rollup/plugin-commonjs": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-12.0.0.tgz", + "integrity": "sha512-8+mDQt1QUmN+4Y9D3yCG8AJNewuTSLYPJVzKKUZ+lGeQrI+bV12Tc5HCyt2WdlnG6ihIL/DPbKRJlB40DX40mw==", + "requires": { + "@rollup/pluginutils": "^3.0.8", + "commondir": "^1.0.1", + "estree-walker": "^1.0.1", + "glob": "^7.1.2", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz", + "integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deep-freeze": "^0.0.1", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.17.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" } }, "@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz", + "integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==" }, "@szmarczak/http-timer": { "version": "4.0.5", @@ -468,6 +106,11 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, "@types/http-cache-semantics": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", @@ -482,9 +125,17 @@ } }, "@types/node": { - "version": "13.11.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.1.tgz", - "integrity": "sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==" + "version": "14.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.4.tgz", + "integrity": "sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ==" + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "requires": { + "@types/node": "*" + } }, "@types/responselike": { "version": "1.0.0", @@ -509,9 +160,9 @@ } }, "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==" }, "acorn-jsx": { "version": "5.2.0", @@ -519,9 +170,9 @@ "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==" }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -613,39 +264,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "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": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" - }, "axios": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", @@ -664,14 +287,6 @@ "resolved": "https://registry.npmjs.org/bayes/-/bayes-1.0.0.tgz", "integrity": "sha512-dJkTHtGBbOLtrmcm37R44jelbgKalMPXLLmhNceEgeLRJLdDTU2DoEF7L+UqM3m36dve7/Vka4hgaacT7a8Jjw==" }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, "bl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz", @@ -748,16 +363,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" } } }, @@ -786,6 +391,16 @@ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz", "integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q==" }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==" + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -821,11 +436,6 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -868,9 +478,9 @@ } }, "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, "clone-response": { "version": "1.0.2", @@ -898,19 +508,26 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "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" - } + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "consola": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.0.tgz", + "integrity": "sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ==" + }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -994,6 +611,11 @@ } } }, + "crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", + "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" + }, "css-select": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", @@ -1010,14 +632,6 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, "dasherize": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", @@ -1030,11 +644,11 @@ "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==" }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "ms": "^2.1.1" + "ms": "2.0.0" } }, "decompress-response": { @@ -1070,11 +684,21 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, + "deep-freeze": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=" + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, "defer-to-connect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", @@ -1093,11 +717,6 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -1123,12 +742,6 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" }, - "dns-prefetch-control": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz", - "integrity": "sha512-hvSnros73+qyZXhHFjx2CMLwoj3Fe7eR9EJsFsqmcI1bB2OBWL/+0YzaEaKssCHnj/6crawNnUyw74Gm2EKe+Q==", - "dev": true - }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1187,15 +800,6 @@ "minimatch": "^3.0.4" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "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", @@ -1225,21 +829,31 @@ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "dependencies": { + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + } } }, "es-to-primitive": { @@ -1304,12 +918,27 @@ "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -1324,9 +953,9 @@ } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" }, "espree": { "version": "6.2.1", @@ -1344,26 +973,33 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.0.tgz", - "integrity": "sha512-/5qB+Mb0m2bh86tjGbA8pB0qBfdmCIK6ZNPjcw4/TtEH0+tTf0wLA5HK4KMTweSMwLGHwBDWCBV+6+2+EuHmgg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "requires": { - "estraverse": "^5.0.0" + "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", - "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } } }, "estraverse": { @@ -1371,6 +1007,11 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -1381,12 +1022,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "expect-ct": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.2.0.tgz", - "integrity": "sha512-6SK3MG/Bbhm8MsgyJAylg+ucIOU71/FzyFalcfu5nY19dH8y/z0tBJU0wrNBXD4B27EoQtqPF/9wqH0iYAd04g==", - "dev": true - }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -1432,16 +1067,6 @@ "ms": "2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -1480,19 +1105,14 @@ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true } } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -1503,15 +1123,10 @@ "tmp": "^0.0.33" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + "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", @@ -1571,11 +1186,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -1600,21 +1210,6 @@ "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "requires": { "debug": "=3.1.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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } } }, "for-each": { @@ -1625,32 +1220,11 @@ "is-callable": "^1.1.3" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "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.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, - "frameguard": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/frameguard/-/frameguard-3.1.0.tgz", - "integrity": "sha512-TxgSKM+7LTA6sidjOiSZK9wxY0ffMPY3Wta//MqwmX0nZuEHc8QrkV8Fh3ZhMJeiH+Uyh/tcaarImRy8u77O7g==", - "dev": true - }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -1689,6 +1263,12 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -1748,21 +1328,13 @@ } }, "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { "pump": "^3.0.0" } }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -1793,19 +1365,18 @@ } }, "got": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/got/-/got-11.2.0.tgz", - "integrity": "sha512-68pBow9XXXSdVRV5wSx0kWMCZsag4xE3Ru0URVe0PWsSYmU4SJrUmEO6EVYFlFHc9rq/6Yqn6o1GxIb9torQxg==", + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-11.6.0.tgz", + "integrity": "sha512-ErhWb4IUjQzJ3vGs3+RR12NWlBDDkRciFpAkQ1LPUxi6OnwhGj07gQxjPsyIk69s7qMihwKrKquV6VQq7JNYLA==", "requires": { - "@sindresorhus/is": "^2.1.1", + "@sindresorhus/is": "^3.1.1", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", "cacheable-lookup": "^5.0.3", "cacheable-request": "^7.0.1", "decompress-response": "^6.0.0", - "get-stream": "^5.1.0", - "http2-wrapper": "^1.0.0-beta.4.5", + "http2-wrapper": "^1.0.0-beta.5.2", "lowercase-keys": "^2.0.0", "p-cancelable": "^2.0.0", "responselike": "^2.0.0" @@ -1816,20 +1387,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1854,23 +1411,19 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "helmet": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.22.0.tgz", - "integrity": "sha512-Xrqicn2nm1ZIUxP3YGuTBmbDL04neKsIT583Sjh0FkiwKDXYCMUqGqC88w3NUvVXtA75JyR2Jn6jw6ZEMOD+ZA==", + "version": "3.23.3", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.23.3.tgz", + "integrity": "sha512-U3MeYdzPJQhtvqAVBPntVgAvNSOJyagwZwyKsFdyRa8TV3pOKVFljalPOCxbw5Wwf2kncGhmP0qHjyazIdNdSA==", "dev": true, "requires": { "depd": "2.0.0", - "dns-prefetch-control": "0.2.0", "dont-sniff-mimetype": "1.1.0", - "expect-ct": "0.2.0", "feature-policy": "0.3.0", - "frameguard": "3.1.0", "helmet-crossdomain": "0.4.0", "helmet-csp": "2.10.0", "hide-powered-by": "1.1.0", "hpkp": "2.0.0", "hsts": "2.2.0", - "ienoopen": "1.1.0", "nocache": "2.1.0", "referrer-policy": "1.2.0", "x-xss-protection": "1.3.0" @@ -1959,31 +1512,14 @@ "setprototypeof": "1.1.1", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" } }, "http2-wrapper": { - "version": "1.0.0-beta.4.6", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.4.6.tgz", - "integrity": "sha512-9oB4BiGDTI1FmIBlOF9OJ5hwJvcBEmPCqk/hy314Uhy2uq5TjekUZM8w8SPLLlUEM+mxNhXdPAXfrJN2Zbb/GQ==", + "version": "1.0.0-beta.5.2", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", + "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==", "requires": { - "quick-lru": "^5.0.0", + "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" } }, @@ -1995,12 +1531,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "ienoopen": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.1.0.tgz", - "integrity": "sha512-MFs36e/ca6ohEKtinTJ5VvAJ6oDRAYFdYXweUnGY9L9vcoqFOU4n2ZhmJ0C4z/cwGZ3YIQRSB3XZ1+ghZkY5NQ==", - "dev": true - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -2038,9 +1568,9 @@ } }, "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", @@ -2048,20 +1578,20 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", - "rxjs": "^6.5.3", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" @@ -2077,9 +1607,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2112,9 +1642,9 @@ } }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { "has-flag": "^4.0.0" } @@ -2132,9 +1662,9 @@ "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" }, "is-date-object": { "version": "1.0.2", @@ -2159,10 +1689,23 @@ "is-extglob": "^2.1.1" } }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + }, "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "requires": { + "@types/estree": "*" + } }, "is-regex": { "version": "1.0.5", @@ -2180,11 +1723,6 @@ "has-symbols": "^1.0.1" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -2195,10 +1733,30 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "jest-worker": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } }, "js-tokens": { "version": "4.0.0", @@ -2206,29 +1764,19 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, "json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2239,11 +1787,6 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, "jsonfile": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", @@ -2260,17 +1803,6 @@ } } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "kareem": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", @@ -2294,9 +1826,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, "log4js": { "version": "6.3.0", @@ -2308,6 +1840,21 @@ "flatted": "^2.0.1", "rfdc": "^1.1.4", "streamroller": "^2.2.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, "lowercase-keys": { @@ -2315,6 +1862,14 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -2331,6 +1886,11 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -2342,16 +1902,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "requires": { - "mime-db": "1.43.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -2403,14 +1963,14 @@ } }, "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" }, "moment-timezone": { - "version": "0.5.28", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz", - "integrity": "sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==", + "version": "0.5.31", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.31.tgz", + "integrity": "sha512-+GgHNg8xRhMXfEbv81iDtrVeTcWt0kWmTEY1XQK14dICTXnWJnT0dxdlPspwqF3keKMVPXwayEsk1DI0AA/jdA==", "requires": { "moment": ">= 2.9.0" } @@ -2446,6 +2006,11 @@ "sliced": "1.0.1" }, "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -2496,9 +2061,9 @@ } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mute-stream": { "version": "0.0.8", @@ -2506,9 +2071,9 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" }, "natural-compare": { "version": "1.4.0", @@ -2516,9 +2081,9 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "needle": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.1.tgz", - "integrity": "sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz", + "integrity": "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==", "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -2532,6 +2097,11 @@ "requires": { "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -2636,11 +2206,6 @@ "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", @@ -2699,9 +2264,9 @@ } }, "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { "mimic-fn": "^2.1.0" } @@ -2784,10 +2349,10 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "prelude-ls": { "version": "1.1.2", @@ -2818,11 +2383,6 @@ "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==" - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -2838,14 +2398,14 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "quick-lru": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.0.tgz", - "integrity": "sha512-WjAKQ9ORzvqjLijJXiXWqc3Gcs1ivoxCj6KJmEjoWBE6OtHwuaDLSAUqGHALUiid7A1KqGqsSHZs8prxF5xxAQ==" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, "random-bytes": { "version": "1.0.0", @@ -2853,6 +2413,14 @@ "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", "dev": true }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -2922,33 +2490,6 @@ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" }, - "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" - } - }, "require_optional": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", @@ -2971,9 +2512,9 @@ } }, "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "requires": { "path-parse": "^1.0.6" } @@ -3026,35 +2567,58 @@ "glob": "^7.1.3" } }, - "rss-parser": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.8.0.tgz", - "integrity": "sha512-EvjM0r3IymXnk+SCUawLhdH36D2WQCwpEfIyvu4hpPswYuMSk/jlCLOcg24OvXwVdcJcEocAlTZVjGNjOOSJXg==", + "rollup": { + "version": "2.26.10", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.10.tgz", + "integrity": "sha512-dUnjCWOA0h9qNX6qtcHidyatz8FAFZxVxt1dbcGtKdlJkpSxGK3G9+DLCYvtZr9v94D129ij9zUhG+xbRoqepw==", "requires": { - "entities": "^1.1.1", + "fsevents": "~2.1.2" + } + }, + "rollup-plugin-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-6.1.0.tgz", + "integrity": "sha512-4fB3M9nuoWxrwm39habpd4hvrbrde2W2GG4zEGPQg1YITNkM3Tqur5jSuXlWNzbv/2aMLJ+dZJaySc3GCD8oDw==", + "requires": { + "@babel/code-frame": "^7.8.3", + "jest-worker": "^26.0.0", + "serialize-javascript": "^3.0.0", + "terser": "^4.7.0" + } + }, + "rss-parser": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.9.0.tgz", + "integrity": "sha512-wlRSfGrotOXuWo19Dtl2KmQt7o9i5zzCExUrxpechE0O54BAx7JD+xhWyGumPPqiJj771ndflV3sE3bTHen0HQ==", + "requires": { + "entities": "^2.0.3", "xml2js": "^0.4.19" + }, + "dependencies": { + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" + } } }, "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "requires": { - "is-promise": "^2.1.0" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", "requires": { "tslib": "^1.9.0" } }, "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "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", @@ -3122,6 +2686,14 @@ } } }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "requires": { + "randombytes": "^2.1.0" + } + }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -3188,6 +2760,25 @@ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -3203,29 +2794,12 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sqlite3": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.1.tgz", - "integrity": "sha512-CvT5XY+MWnn0HkbwVKJAyWEMfzpAPwnTiB3TobA5Mri44SrTovmmh499NPQP+gatkeOipqPlBLel7rn4E/PCQg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz", + "integrity": "sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==", "requires": { "nan": "^2.12.1", - "node-pre-gyp": "^0.11.0", - "request": "^2.87.0" - } - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "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" + "node-pre-gyp": "^0.11.0" } }, "statuses": { @@ -3247,6 +2821,19 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -3289,26 +2876,6 @@ "es-abstract": "^1.17.5" } }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, "string.prototype.trimstart": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", @@ -3342,9 +2909,9 @@ } }, "strip-json-comments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", - "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "supports-color": { "version": "5.5.0", @@ -3388,9 +2955,9 @@ } }, "tape": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.2.tgz", - "integrity": "sha512-waWwC/OqYVE9TS6r1IynlP2sEdk4Lfo6jazlgkuNkPTHIbuG2BTABIaKdlQWwPeB6Oo4ksZ1j33Yt0NTOAlYMQ==", + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", + "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", "requires": { "deep-equal": "~1.1.1", "defined": "~1.0.0", @@ -3401,12 +2968,19 @@ "has": "~1.0.3", "inherits": "~2.0.4", "is-regex": "~1.0.5", - "minimist": "~1.2.0", + "minimist": "~1.2.5", "object-inspect": "~1.7.0", - "resolve": "~1.15.1", + "resolve": "~1.17.0", "resumer": "~0.0.0", "string.prototype.trim": "~1.2.1", "through": "~2.3.8" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + } } }, "tape-promise": { @@ -3447,6 +3021,16 @@ "yallist": "^3.0.3" } }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -3470,32 +3054,10 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "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" - } - }, "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - }, - "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=" + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" }, "type-check": { "version": "0.3.2", @@ -3539,9 +3101,9 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "requires": { "punycode": "^2.1.0" } @@ -3556,31 +3118,16 @@ "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==" - }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" }, "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" - } - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index 4f26fce..4032137 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,13 @@ "author": "", "license": "ISC", "dependencies": { - "@rakh/utils": "file:../utils", + "@rakh/utils": "^1.0.0", "axios": "^0.19.2", "bayes": "^1.0.0", "body-parser": "^1.19.0", "cheerio": "^1.0.0-rc.3", "cron": "^1.8.2", + "crypto-js": "^4.0.0", "dotenv": "^8.2.0", "eslint": "^6.8.0", "express": "^4.17.1", diff --git a/scrapers/indeed.js b/scrapers/indeed.js index a9d0f24..a9f3e83 100644 --- a/scrapers/indeed.js +++ b/scrapers/indeed.js @@ -139,7 +139,9 @@ class IndeedScraper extends MasterScraper { async go(location = 'london') { this.setStartUrl(`https://www.indeed.co.uk/jobs?as_and=&as_phr=&as_any=Html+Web+Sql+Delphi+Vb+Vbscript+Php+Ajax+Mysql+Sqlserver+Javascript+Nodejs+vuejs+sveltejs&as_not=React&as_ttl=&as_cmp=&jt=contract&st=&as_src=&salary=&radius=0&l=${encodeURIComponent(location)}&fromage=1&limit=50&sort=&psf=advsrch&from=advancedsearch`); - await this.processSite(); + await this.processSite().catch((err) => { + console.error('Indeed Go', err); + }); console.log(`Indeed ${location} completed`); } diff --git a/server/controllers/jobs.v2.controller.js b/server/controllers/jobs.v2.controller.js index e866ddc..e7771d9 100644 --- a/server/controllers/jobs.v2.controller.js +++ b/server/controllers/jobs.v2.controller.js @@ -35,7 +35,7 @@ function reduceRecord(record) { exports.getList = (req, res) => { console.log('>getList req', req.params); - Jobs.find( {}, { 'details.title':1, 'details.site':1, 'details.company':1, 'data':1, '_id':1 }).limit(200).then((doc) => { + Jobs.find({}, { 'details.title':1, 'details.site':1, 'details.company':1, 'data':1, '_id':1 }).limit(200).sort( { 'data.timestamp': -1 } ).then((doc) => { if (doc) { res.send(reduceList(doc)); diff --git a/server/dist/build/bundle.css b/server/dist/build/bundle.css index c092a7c..0e5e0f5 100644 --- a/server/dist/build/bundle.css +++ b/server/dist/build/bundle.css @@ -1,6 +1,6 @@ @import url("https://fonts.googleapis.com/css?family=Roboto+Condensed");:root{--primary-color:#607D8B;--dark-color:#294c5d;--light-color:#CFD8DC;--danger-color:#dc3545;--success-color:#28a745;--highlight-color:#dcc894;--highlight-color2:#dca394;--navbar-height:4rem}*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Roboto Condensed', sans-serif;font-size:1rem;line-height:1.6;background-color:#fff;color:#333;padding:0}a{color:var(--primary-color);text-decoration:none}a:hover{color:#666}a.active{color:var(--highlight-color)}ul{list-style:none}img{width:100%}.dataRow{cursor:pointer}.container{max-width:1100px;margin:auto;overflow:hidden;padding:0 2rem}.fullWidth{max-width:100vw;padding:0 0}.x-large{font-size:4rem;line-height:1.2;margin-bottom:1rem}.large{font-size:3rem;line-height:1.2;margin-bottom:1rem}.lead{font-size:1.5rem;margin-bottom:1rem}.text-center{text-align:center}.text-primary{color:var(--primary-color)}.text-dark{color:var(--dark-color)}.text-success{color:var(--success-color)}.text-danger{color:var(--danger-color)}.text-highlight{color:var(--highlight-color)}.text-highlight2{color:var(--highlight-color2)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-title,h3{font-weight:400;font-size:20px;line-height:28px}.text-subhead,h4{font-weight:400;font-size:16px;line-height:24px}.text-body2,h5{font-weight:500;font-size:14px;line-height:24px}.text-body1{font-weight:400;font-size:14px;line-height:20px}.text-caption{font-weight:400;font-size:12px;line-height:16px}.all-center{display:flex;flex-direction:column;width:100%;margin:auto;justify-content:center;align-items:center;text-align:center}.card{padding:1rem;border:#ccc 1px dotted;margin:0.7rem 0}.list{margin:0.5rem 0}.list li{padding-bottom:0.3rem}.p{padding:0.5rem}.p-1{padding:1rem}.p-2{padding:2rem}.p-3{padding:3rem}.py{padding:0.5rem 0}.py-1{padding:1rem 0}.py-2{padding:2rem 0}.py-3{padding:3rem 0}.m{margin:0.5rem}.m-1{margin:1rem}.mb-1{margin-bottom:.2rem !important}.ml-1{margin-left:.2rem !important}.mr-1{margin-right:.2rem !important}.mt-1{margin-top:.2rem !important}.mx-1{margin-left:1rem !important;margin-right:1rem !important}.m-2{margin:2rem}.mb-2{margin-bottom:.4rem !important}.ml-2{margin-left:.4rem !important}.mr-2{margin-right:.4rem !important}.mt-2{margin-top:.4rem !important}.mx-2{margin-left:2rem !important;margin-right:2rem !important}.m-3{margin:3rem}.my{margin:0.5rem 0}.my-1{margin:1rem 0}.my-2{margin:2rem 0}.my-3{margin:3rem 0}.grid{display:flex;display:-ms-flexbox;flex-wrap:wrap}.grid-1{display:grid;grid-template-columns:repeat(1, 1fr);grid-gap:1rem}.grid-2{display:grid;grid-template-columns:repeat(2, 1fr);grid-gap:1rem}.grid-3{display:grid;grid-template-columns:repeat(3, 1fr);grid-gap:1rem}.grid-4{display:grid;grid-template-columns:repeat(4, 1fr);grid-gap:1rem}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{width:100%;margin-left:0}.col-1-3rd{width:32.666667%}.col-2-3rd{width:65.3333333333%}.col-half{width:48%}.offset-1-col{margin-left:8.66666666667%}.offset-2-col{margin-left:17.3333333333%}.offset-3-col{margin-left:26%}.offset-4-col{margin-left:34.6666666667%}.offset-5-col{margin-left:43.3333333333%}.offset-6-col{margin-left:52%}.offset-7-col{margin-left:60.6666666667%}.offset-8-col{margin-left:69.3333333333%}.offset-9-col{margin-left:78.0%}.offset-10-col{margin-left:86.6666666667%}.offset-11-col{margin-left:95.3333333333%}.offset-1-3rd-col{margin-left:34.6666666667%}.offset-2-3rd-col{margin-left:69.3333333333%}.offset-half-col{margin-left:52%}.btn{display:inline-block;background:var(--light-color);color:#333;padding:0.4rem 1.3rem;font-size:1rem;border:none;cursor:pointer;margin-right:0.5rem;transition:opacity 0.2s ease-in;outline:none}.btn-link{background:none;padding:0;margin:0}.btn-block{display:block;width:100%}.btn-sm{font-size:0.8rem;padding:0.3rem 1rem;margin-right:0.2rem}.badge{display:inline-block;font-size:0.6rem;padding:0.1rem 0.4rem;text-align:center;margin:0.3rem;background:var(--light-color);color:#333;border-radius:3px}.alert{padding:0.7rem;margin:1rem 0;opacity:0.9;background:var(--light-color);color:#333}.btn-primary,.bg-primary,.badge-primary,.alert-primary{background:var(--primary-color);color:#fff}.btn-light,.bg-light,.badge-light,.alert-light{background:var(--light-color);color:#333}.btn-dark,.bg-dark,.badge-dark,.alert-dark{background:var(--dark-color);color:#fff}.btn-danger,.bg-danger,.badge-danger,.alert-danger{background:var(--danger-color);color:#fff}.btn-success,.bg-success,.badge-success,.alert-success{background:var(--success-color);color:#fff}.btn-white,.bg-white,.badge-white,.alert-white{background:#fff;color:#333;border:#ccc solid 1px}.btn:disabled{cursor:not-allowed;pointer-events:none;opacity:0.60;box-shadow:none}.btn:enabled:hover{opacity:0.8}.bg-light,.badge-light{border:#ccc solid 1px}.round-img{border-radius:50%}input{margin:.2rem 0}.form-text{display:block;margin-top:0.3rem;color:#888}input[type='text'],input[type='email'],input[type='password'],input[type='date'],select,textarea{display:block;width:100%;padding:0.1rem;border:1px solid #ccc}input[type='submit'],button{font:inherit}label,legend{display:block;margin-bottom:.1rem;font-weight:600}input[type="checkbox"],input[type="radio"]{display:inline}label > .label-body{display:inline-block;margin-left:.5rem;font-weight:normal;background-color:#dcc894}table th,table td{padding:1rem;text-align:left}table th{background:var(--light-color)}.navbar{position:fixed;display:flex;justify-content:space-between;align-items:center;padding:0.7rem 0rem;z-index:2;width:100%;opacity:0.9;margin-bottom:1rem;min-height:var(--navbar-height)}.navbar ul{display:flex}.navbar a{color:#fff;padding:0.45rem;margin:0 0.25rem}.navbar a:hover{color:var(--light-color)}.navbar .welcome span{margin-right:0.6rem}.navbar .navbar-section{align-items:center;display:flex;display:-ms-flexbox;flex:1 0 0;-ms-flex-align:center}.navbar .navbar-section:not(:first-child):last-child{justify-content:flex-end}.navbar .navbar-brand{font-size:125%;font-weight:bold}@media(max-width: 700px){.hide-sm{display:none}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.x-large{font-size:3rem}.large{font-size:2rem}.lead{font-size:1rem}.navbar{display:flex;text-align:center}.navbar ul{text-align:center;justify-content:center}}.table-responsive{display:block;overflow-x:auto;width:100%}.cardV2{border-radius:4px;background-color:#fff;box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.14), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);min-width:0}table{max-width:100%;width:100%;border:0;margin-bottom:1rem;border-collapse:collapse}tr{border-top:1px solid #ccc}tbody tr:nth-of-type(odd){background-color:rgba(0, 0, 0, 0.04)}tbody td{border-top:1px solid #e1e1e1}hr{margin-top:2.2rem;margin-bottom:2rem;border-width:0;border-top:1px solid var(--dark-color)}.modalWindow{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0, 0, 0, 0.2);z-index:99999;opacity:0;pointer-events:none;text-align:center}.modalWindow:target{opacity:1;pointer-events:auto}.modalWindow > div{width:500px;position:relative;margin:10% auto;background:#fff}header + div.container{position:relative;top:var(--navbar-height);min-height:calc(100vh - var(--navbar-height));max-height:calc(100vh - var(--navbar-height))}.mui-dropdown{display:inline-block;position:relative}[data-mui-toggle="dropdown"]{outline:0}.mui-dropdown__menu{position:absolute;display:none;min-width:160px;padding:5px 3px;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#FFF;border-radius:2px;z-index:1;background-clip:padding-box;border:1px solid var(--light-color);box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-dropdown__menu{border-top:1px solid rgba(0, 0, 0, 0.12);border-left:1px solid rgba(0, 0, 0, 0.12)}}@supports (-ms-ime-align: auto){.mui-dropdown__menu{border-top:1px solid rgba(0, 0, 0, 0.12);border-left:1px solid rgba(0, 0, 0, 0.12)}}.mui-dropdown__menu.mui--is-open{display:block}.mui-dropdown__menu > li > a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.429;color:rgba(0, 0, 0, 0.87);text-decoration:none;white-space:nowrap}.mui-dropdown__menu > li > a:hover,.mui-dropdown__menu > li > a:focus{text-decoration:none;color:rgba(0, 0, 0, 0.87);background-color:#EEEEEE}.mui-dropdown__menu > .mui--is-disabled > a,.mui-dropdown__menu > .mui--is-disabled > a:hover,.mui-dropdown__menu > .mui--is-disabled > a:focus{color:#EEEEEE}.mui-dropdown__menu > .mui--is-disabled > a:hover,.mui-dropdown__menu > .mui--is-disabled > a:focus{text-decoration:none;background-color:transparent;background-image:none;cursor:not-allowed}.mui-dropdown__menu--right{left:auto;right:0}.mui-dropdown--up > .mui-dropdown__menu{margin:0 0 2px}.mui-dropdown--right > .mui-dropdown__menu{margin:0 0 0 2px}.mui-dropdown--left > .mui-dropdown__menu{margin:0 2px 0 0}.alias{cursor:alias}.all-scroll{cursor:all-scroll}.auto{cursor:auto}.cell{cursor:cell}.context-menu{cursor:context-menu}.col-resize{cursor:col-resize}.copy{cursor:copy}.crosshair{cursor:crosshair}.default{cursor:default}.e-resize{cursor:e-resize}.ew-resize{cursor:ew-resize}.grab{cursor:-webkit-grab;cursor:grab}.grabbing{cursor:-webkit-grabbing;cursor:grabbing}.help{cursor:help}.move{cursor:move}.n-resize{cursor:n-resize}.ne-resize{cursor:ne-resize}.nesw-resize{cursor:nesw-resize}.ns-resize{cursor:ns-resize}.nw-resize{cursor:nw-resize}.nwse-resize{cursor:nwse-resize}.no-drop{cursor:no-drop}.none{cursor:none}.not-allowed{cursor:not-allowed}.pointer{cursor:pointer}.progress{cursor:progress}.row-resize{cursor:row-resize}.s-resize{cursor:s-resize}.se-resize{cursor:se-resize}.sw-resize{cursor:sw-resize}.text{cursor:text}.url{cursor:url(myBall.cur), auto}.w-resize{cursor:w-resize}.wait{cursor:wait}.zoom-in{cursor:zoom-in}.zoom-out{cursor:zoom-out}.hour27{border-left:10px solid #50b5dd}.hour26{border-left:10px solid #4eb2ce}.hour25{border-left:10px solid #4cb0be}.hour24{border-left:10px solid #49adaf}.hour23{border-left:10px solid #48ab9f}.hour22{border-left:10px solid #46a88e}.hour21{border-left:10px solid #44a67d}.hour20{border-left:10px solid #42a46c}.hour19{border-left:10px solid #66ad5e}.hour18{border-left:10px solid #87be40}.hour17{border-left:10px solid #b3cc1a}.hour16{border-left:10px solid #d6d51c}.hour15{border-left:10px solid #f9ca03}.hour14{border-left:10px solid #f6b503}.hour13{border-left:10px solid #f4961a}.hour12{border-left:10px solid #ec6e05}.hour11{border-left:10px solid #ea5a24}.hour10{border-left:10px solid #e4572b}.hour09{border-left:10px solid #e14a29}.hour08{border-left:10px solid #e04127}.hour07{border-left:10px solid #d9372b}.hour06{border-left:10px solid #d63129}.hour05{border-left:10px solid #d12b2b}.hour04{border-left:10px solid #cd282f}.hour03{border-left:10px solid #c82432}.hour02{border-left:10px solid #c32334}.hour01{border-left:10px solid #be2138}.hour00{border-left:10px solid #b9203b}.view{height:100vh} .detail.svelte-r7f80i{width:100%;border-top:2px solid #e1e1e1;height:50vh;max-height:50vh;overflow-y:scroll}.detailHead.svelte-r7f80i{box-sizing:border-box;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row.svelte-r7f80i{margin:1% 0;overflow:auto;display:flex}.applied.svelte-r7f80i{box-shadow:inset 0 0 5px 5px #f7de2f69} -.lister.svelte-bblkbk{height:50vh;max-height:50vh;overflow-y:scroll}.dataRow.svelte-bblkbk{font-weight:bold;color:darkslategrey}.read.svelte-bblkbk{font-weight:normal !important;color:dimgrey}.applied.svelte-bblkbk{box-shadow:inset 0 0 5px 5px #f7de2f69}.dataRow.svelte-bblkbk:hover{background-color:rgba(245, 238, 100, 0.54)} +.lister.svelte-15500pg{height:50vh;max-height:50vh;overflow-y:scroll}.hide.svelte-15500pg{display:none}.company.svelte-15500pg{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dataRow.svelte-15500pg{font-weight:bold;color:darkslategrey}.read.svelte-15500pg{font-weight:normal !important;color:dimgrey}.applied.svelte-15500pg{box-shadow:inset 0 0 5px 5px #f7de2f69}.dataRow.svelte-15500pg:hover{background-color:rgba(245, 238, 100, 0.54)}.small.svelte-15500pg{font-size:70%}.noOverflow.svelte-15500pg{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .menu.svelte-s6mfqx{border-right:2px solid #e1e1e1;background-color:#f4f4f4;height:100vh} /*# sourceMappingURL=bundle.css.map */ \ No newline at end of file diff --git a/server/dist/build/bundle.css.map b/server/dist/build/bundle.css.map index 0d07b1b..c3c379c 100644 --- a/server/dist/build/bundle.css.map +++ b/server/dist/build/bundle.css.map @@ -9,10 +9,10 @@ ], "sourcesContent": [ "\n\n\n\n
\n
\n
\n \n \n
\n
\n\n", - "\n\n\n\n\n{#if visible}\n
\n
\n
\n
\n {$JobDetails.title}\n
\n\n
\n
\n
\n Company: {$JobDetails.company}\n
\n
\n Location: {$JobDetails.location}\n
\n
\n Applied:\n {#if !$JobDetails.a}\n \n {:else}\n Applied!\n {/if}\n\n
\n\n
\n\n
\n
\n Salary: {$JobDetails.salary}\n
\n
\n Scraped: {$JobDetails.date}\n
\n
\n Site: {$JobDetails.site}\n
\n\n
\n\n\n
\n
\n {@html $JobDetails.summary}\n
\n
\n\n{/if}\n", - "\n\n\n\n\n
\n \n \n \n \n \n \n \n \n \n \n {#each $JobList as item, _id}\n \n \n \n \n \n \n \n {/each}\n \n
\n Title\n \n Site\n \n Company\n \n Date\n
{item.title}{item.site}{ellipses(item.company)}{item.date}
\n
\n\n\n", + "\n\n\n\n\n{#if visible}\n
\n
\n
\n
\n {$JobDetails.title}\n\n
\n\n {#if jobtype === 1}\n Contract\n {:else if jobtype === 2}\n Permanent\n {/if}\n\n
\n
\n
\n Company: {$JobDetails.company}\n
\n
\n Location: {$JobDetails.location}\n
\n
\n Applied:\n {#if !$JobDetails.a}\n \n {:else}\n Applied!\n {/if}\n\n
\n\n
\n\n
\n
\n Salary: {@html $JobDetails.salary}\n
\n
\n Scraped: {$JobDetails.date}\n
\n
\n Site: {$JobDetails.site}\n
\n\n
\n\n
\n
\n {#each $JobDetails.data.autoclass.words as word, _wid}\n {#if $JobDetails.data.autoclass.good.indexOf(word) !== -1}\n {word}\n {:else if $JobDetails.data.autoclass.bad.indexOf(word) !== -1}\n {word}\n {:else }\n {word}\n {/if}\n {/each}\n\n
\n \n\n
\n\n\n
\n
\n {@html $JobDetails.summary}\n
\n
\n\n{/if}\n", + "\n\n\n\n\n
\n \n \n \n \n \n \n \n \n \n \n {#each $JobList as item, _id}\n \n \n \n \n \n \n \n {/each}\n \n
\n Title\n \n Site\n \n Company\n \n Date\n
\n {item.title}\n \n {item.site}{ellipses(item.company)}{timeStamptoLocaleDate(item.timestamp)}
\n
\n\n\n", "\n\n\n\n
\n

Jobs

\n
\n
\n \n
\n\n
\n" ], "names": [], - "mappings": "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C,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,KAAK,AAAE,CAAC,AACd,MAAM,CAAE,KAAK,AAAE,CAAC;ACj6BlB,OAAO,cAAC,CAAC,AAEL,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAE7B,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,IAAI,CAChB,UAAU,CAAE,MAAM,AAEtB,CAAC,AAED,WAAW,cAAC,CAAC,AACT,UAAU,CAAE,UAAU,CACtB,YAAY,CAAE,IAAI,CAClB,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,IAAI,CAClB,aAAa,CAAE,IAAI,AACvB,CAAC,AAED,IAAI,cAAC,CAAC,AACF,MAAM,CAAE,EAAE,CAAC,CAAC,CACZ,QAAQ,CAAE,IAAI,CACd,OAAO,CAAE,IAAI,AACjB,CAAC,AAED,QAAQ,cAAC,CAAC,AACN,UAAU,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,AAC3C,CAAC;AC9BD,OAAO,cAAC,CAAC,AACL,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,IAAI,CAChB,UAAU,CAAE,MAAM,AACtB,CAAC,AAYD,QAAQ,cAAC,CAAC,AACN,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,aAAa,AACxB,CAAC,AAED,KAAK,cAAC,CAAC,AACH,WAAW,CAAE,MAAM,CAAC,UAAU,CAC9B,KAAK,CAAE,OAAO,AAClB,CAAC,AAED,QAAQ,cAAC,CAAC,AACN,UAAU,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,AAC3C,CAAC,AAED,sBAAQ,MAAM,AAAC,CAAC,AACZ,gBAAgB,CAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,AAE/C,CAAC;AC9CD,KAAK,cAAC,CAAC,AAEH,YAAY,CAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAC/B,gBAAgB,CAAE,OAAO,CACzB,MAAM,CAAE,KAAK,AACjB,CAAC" + "mappings": "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C,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,OAAO,AAAE,CAAC,AAChB,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE5B,KAAK,AAAE,CAAC,AACd,MAAM,CAAE,KAAK,AAAE,CAAC;ACr4BlB,OAAO,cAAC,CAAC,AAEL,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAE7B,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,IAAI,CAChB,UAAU,CAAE,MAAM,AAEtB,CAAC,AAED,WAAW,cAAC,CAAC,AACT,UAAU,CAAE,UAAU,CACtB,YAAY,CAAE,IAAI,CAClB,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,IAAI,CAClB,aAAa,CAAE,IAAI,AACvB,CAAC,AAED,IAAI,cAAC,CAAC,AACF,MAAM,CAAE,EAAE,CAAC,CAAC,CACZ,QAAQ,CAAE,IAAI,CACd,OAAO,CAAE,IAAI,AACjB,CAAC,AAED,QAAQ,cAAC,CAAC,AACN,UAAU,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,AAC3C,CAAC;AC9CD,OAAO,eAAC,CAAC,AACL,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,IAAI,CAChB,UAAU,CAAE,MAAM,AACtB,CAAC,AAED,KAAK,eAAC,CAAC,AACH,OAAO,CAAE,IAAI,AACjB,CAAC,AAED,QAAQ,eAAC,CAAC,AACN,WAAW,CAAE,MAAM,CACnB,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,AAC3B,CAAC,AAED,QAAQ,eAAC,CAAC,AACN,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,aAAa,AACxB,CAAC,AAED,KAAK,eAAC,CAAC,AACH,WAAW,CAAE,MAAM,CAAC,UAAU,CAC9B,KAAK,CAAE,OAAO,AAClB,CAAC,AAED,QAAQ,eAAC,CAAC,AACN,UAAU,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,AAC3C,CAAC,AAED,uBAAQ,MAAM,AAAC,CAAC,AACZ,gBAAgB,CAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,AAE/C,CAAC,AAED,MAAM,eAAC,CAAC,AACJ,SAAS,CAAE,GAAG,AAClB,CAAC,AAED,WAAW,eAAC,CAAC,AACT,WAAW,CAAE,MAAM,CACnB,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,AAC3B,CAAC;ACpED,KAAK,cAAC,CAAC,AAEH,YAAY,CAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAC/B,gBAAgB,CAAE,OAAO,CACzB,MAAM,CAAE,KAAK,AACjB,CAAC" } \ No newline at end of file diff --git a/server/dist/build/bundle.js b/server/dist/build/bundle.js index 97874e4..8e3b8f5 100644 --- a/server/dist/build/bundle.js +++ b/server/dist/build/bundle.js @@ -1 +1 @@ -var app=function(){"use strict";function t(){}function e(t){return t()}function n(){return Object.create(null)}function r(t){t.forEach(e)}function o(t){return"function"==typeof t}function a(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}function s(e,n,r){e.$$.on_destroy.push(function(e,...n){if(null==e)return t;const r=e.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}(n,r))}function c(t,e){t.appendChild(e)}function i(t,e,n){t.insertBefore(e,n||null)}function l(t){t.parentNode.removeChild(t)}function u(t){return document.createElement(t)}function d(t){return document.createTextNode(t)}function f(){return d(" ")}function p(t,e,n,r){return t.addEventListener(e,n,r),()=>t.removeEventListener(e,n,r)}function h(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function m(t,e){e=""+e,t.data!==e&&(t.data=e)}let g;function b(t){g=t}const y=[],v=[],$=[],x=[],w=Promise.resolve();let k=!1;function J(t){$.push(t)}let _=!1;const A=new Set;function C(){if(!_){_=!0;do{for(let t=0;t{L.delete(t),r&&(n&&t.d(1),r())}),t.o(e)}}function M(t){t&&t.c()}function N(t,n,a){const{fragment:s,on_mount:c,on_destroy:i,after_update:l}=t.$$;s&&s.m(n,a),J(()=>{const n=c.map(e).filter(o);i?i.push(...n):r(n),t.$$.on_mount=[]}),l.forEach(J)}function O(t,e){const n=t.$$;null!==n.fragment&&(r(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function R(t,e){-1===t.$$.dirty[0]&&(y.push(t),k||(k=!0,w.then(C)),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const o=r.length?r[0]:n;return p.ctx&&c(p.ctx[t],p.ctx[t]=o)&&(p.bound[t]&&p.bound[t](o),h&&R(e,t)),n}):[],p.update(),h=!0,r(p.before_update),p.fragment=!!s&&s(p.ctx),o.target){if(o.hydrate){const t=function(t){return Array.from(t.childNodes)}(o.target);p.fragment&&p.fragment.l(t),t.forEach(l)}else p.fragment&&p.fragment.c();o.intro&&S(e.$$.fragment),N(e,o.target,o.anchor),C()}b(d)}class D{$destroy(){O(this,1),this.$destroy=t}$on(t,e){const n=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return n.push(e),()=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(){}}const q=[];function H(e,n=t){let r;const o=[];function s(t){if(a(e,t)&&(e=t,r)){const t=!q.length;for(let t=0;t{const t=o.indexOf(i);-1!==t&&o.splice(t,1),0===o.length&&(r(),r=null)}}}}var P=function t(e){function n(t){return function(e,n){return a(e,Object.assign({method:t},n))}}function r(t){return function(e,n,r){return a(e,Object.assign({method:t,data:n},r))}}function o(t,e,n){if(Array.isArray(t))return t.concat(e);if(e&&"object"==typeof e){var r,a={};if(t)for(r in t)a[n?r.toLowerCase():r]=t[r];for(r in e){var s=n?r.toLowerCase():r;"headers"===s&&(n=!0),a[s]=r in a?o(a[s],e[r],n):e[r]}return a}return e}function a(t,n){"string"!=typeof t&&(t=(n=t).url);var r=o(e,n||{}),a=r.data;if(r.transformRequest)for(var s=0;s{const e=JSON.parse(t.data);F.set(e)}).catch(t=>{console.error("getJobList",t)})},loadJobDetail(t){if(console.log("loadJobDetail: "+t),t){const e=`${z.jobs}/${t}`;P.get(e).then(t=>{const e=JSON.parse(t.data);B.set(e)}).catch(t=>{console.error("loadJobDetail",t)})}},async touchJob(t){if(console.log("touchJob: "+t),t){const e=`${z.jobs}/${t}`;await P.put(e).then(t=>{200!==t.status&&console.error(t)}).catch(t=>{console.error("touchJob",t)});const n=parseInt(t,10);F.update(t=>(t.map(t=>{if(t._id===n)return t.d=(new Date).getTime(),t}),t))}},async appliedJob(t){console.log("touchJob: "+t);const e=(new Date).getTime();if(t){console.log("Applying..");const n=`${z.apply}/${t}`;await P.put(n).then(t=>{200!==t.status&&console.error(t)}).catch(t=>{console.error("appliedJob",t)});const r=parseInt(t,10);F.update(t=>(t.map(t=>{if(t._id===r)return t.a=e,t}),t)),B.update(t=>(t.a=e,t))}},async markAllRead(){console.log(">> markAllRead");const t=""+z.readall;await P.put(t).then(t=>{200!==t.status&&console.error(t)}).catch(t=>{console.error("markAllRead",t)}),this.getJobList()}};function W(t,e,n){const r=t.slice();return r[4]=e[n],r[6]=n,r}function G(t){let e,n,r,o,a,s,g,b,y,v,$,x,w,k,J,_,A=t[4].title+"",C=t[4].site+"",j=Q(t[4].company)+"",L=t[4].date+"";return{c(){e=u("tr"),n=u("td"),r=d(A),o=f(),a=u("td"),s=d(C),g=f(),b=u("td"),y=d(j),v=f(),$=u("td"),x=d(L),w=f(),h(e,"class",k="dataRow "+(t[4].d?"read":"")+" "+(t[4].a?"applied":"")+" svelte-bblkbk"),h(e,"data-id",J=t[4]._id)},m(l,u,d){var f;i(l,e,u),c(e,n),c(n,r),c(e,o),c(e,a),c(a,s),c(e,g),c(e,b),c(b,y),c(e,v),c(e,$),c($,x),c(e,w),d&&_(),_=p(e,"click",(f=t[1],function(t){return t.stopPropagation(),f.call(this,t)}))},p(t,n){1&n&&A!==(A=t[4].title+"")&&m(r,A),1&n&&C!==(C=t[4].site+"")&&m(s,C),1&n&&j!==(j=Q(t[4].company)+"")&&m(y,j),1&n&&L!==(L=t[4].date+"")&&m(x,L),1&n&&k!==(k="dataRow "+(t[4].d?"read":"")+" "+(t[4].a?"applied":"")+" svelte-bblkbk")&&h(e,"class",k),1&n&&J!==(J=t[4]._id)&&h(e,"data-id",J)},d(t){t&&l(e),_()}}}function K(e){let n,r,o,a,s,d=e[0],p=[];for(let t=0;t\n Title\n \n \n Site\n \n \n Company\n \n \n Date\n ',a=f(),s=u("tbody");for(let t=0;tn(0,r=t)),[r,function(t){const e=t.target.parentElement.dataset.id;U.loadJobDetail(e),U.touchJob(e)}]}class X extends D{constructor(t){super(),E(this,t,V,K,a,{})}}function Y(t){let e,n,r,o,a,s,p,g,b,y,v,$,x,w,k,J,_,A,C,j,L,S,T,M,N,O,R,E,D,q,H,P,I,z,F,B,U,W,G,K=t[2].title+"",Q=t[2].company+"",V=t[2].location+"",X=t[2].salary+"",Y=t[2].date+"",et=t[2].site+"",nt=t[2].summary+"";function rt(t,e){return t[2].a?Z:tt}let ot=rt(t),at=ot(t);return{c(){e=u("div"),n=u("div"),r=u("div"),o=u("div"),a=d(K),s=f(),p=u("div"),g=u("div"),b=d("Company: "),y=u("span"),v=d(Q),$=f(),x=u("div"),w=d("Location: "),k=u("span"),J=d(V),_=f(),A=u("div"),C=d("Applied:\n "),at.c(),j=f(),L=u("div"),S=u("div"),T=d("Salary: "),M=u("span"),N=d(X),O=f(),R=u("div"),E=d("Scraped: "),D=u("span"),q=d(Y),H=f(),P=u("div"),I=d("Site: "),z=u("a"),F=d(et),W=f(),G=u("blockquote"),h(o,"class","col-12 text-primary lead"),h(r,"class","row svelte-r7f80i"),h(y,"class","text-primary"),h(g,"class","col-1-3rd"),h(k,"class","text-primary"),h(x,"class","col-1-3rd"),h(A,"class","col-1-3rd"),h(p,"class","row svelte-r7f80i"),h(M,"class","text-primary"),h(S,"class","col-1-3rd"),h(D,"class","text-primary"),h(R,"class","col-1-3rd"),h(z,"href",B=t[2].url),h(z,"class","text-capitalize"),h(z,"target","_blank"),h(P,"class","col-1-3rd"),h(L,"class","row svelte-r7f80i"),h(n,"class",U="detailHead bg-light "+(t[1]?"applied":"")+" svelte-r7f80i"),h(e,"class","detail svelte-r7f80i")},m(t,l){i(t,e,l),c(e,n),c(n,r),c(r,o),c(o,a),c(n,s),c(n,p),c(p,g),c(g,b),c(g,y),c(y,v),c(p,$),c(p,x),c(x,w),c(x,k),c(k,J),c(p,_),c(p,A),c(A,C),at.m(A,null),c(n,j),c(n,L),c(L,S),c(S,T),c(S,M),c(M,N),c(L,O),c(L,R),c(R,E),c(R,D),c(D,q),c(L,H),c(L,P),c(P,I),c(P,z),c(z,F),c(e,W),c(e,G),G.innerHTML=nt},p(t,e){4&e&&K!==(K=t[2].title+"")&&m(a,K),4&e&&Q!==(Q=t[2].company+"")&&m(v,Q),4&e&&V!==(V=t[2].location+"")&&m(J,V),ot===(ot=rt(t))&&at?at.p(t,e):(at.d(1),at=ot(t),at&&(at.c(),at.m(A,null))),4&e&&X!==(X=t[2].salary+"")&&m(N,X),4&e&&Y!==(Y=t[2].date+"")&&m(q,Y),4&e&&et!==(et=t[2].site+"")&&m(F,et),4&e&&B!==(B=t[2].url)&&h(z,"href",B),2&e&&U!==(U="detailHead bg-light "+(t[1]?"applied":"")+" svelte-r7f80i")&&h(n,"class",U),4&e&&nt!==(nt=t[2].summary+"")&&(G.innerHTML=nt)},d(t){t&&l(e),at.d()}}}function Z(e){let n;return{c(){n=d("Applied!")},m(t,e){i(t,n,e)},p:t,d(t){t&&l(n)}}}function tt(e){let n,r;return{c(){n=u("button"),n.textContent="Applied",h(n,"class","btn btn-sm btn-primary")},m(t,o,a){i(t,n,o),a&&r(),r=p(n,"click",e[3])},p:t,d(t){t&&l(n),r()}}}function et(e){let n,r=e[0]&&Y(e);return{c(){r&&r.c(),n=d("")},m(t,e){r&&r.m(t,e),i(t,n,e)},p(t,[e]){t[0]?r?r.p(t,e):(r=Y(t),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i:t,o:t,d(t){r&&r.d(t),t&&l(n)}}}function nt(t,e,n){let r;s(t,B,t=>n(2,r=t));let o,a=!1;return B.subscribe(t=>{n(0,a=!function(t){for(const e in t)if(t.hasOwnProperty(e))return!1;return!0}(t))}),t.$$.update=()=>{4&t.$$.dirty&&n(1,o="number"==typeof r.a)},[a,o,r,function(){U.appliedJob(r._id)}]}class rt extends D{constructor(t){super(),E(this,t,nt,et,a,{})}}function ot(e){let n,r,o,a,s,d,m;return{c(){n=u("header"),r=u("section"),o=u("span"),o.textContent=""+at,a=f(),s=u("section"),d=u("button"),d.textContent="Mark All Read",h(o,"class","text-bold navbar-brand mx-1 text-uppercase"),h(r,"class","navbar-section"),h(d,"class","btn btn-sm btn-primary"),h(s,"class","navbar-section text-right"),h(n,"class","navbar bg-primary")},m(t,l,u){i(t,n,l),c(n,r),c(r,o),c(n,a),c(n,s),c(s,d),u&&m(),m=p(d,"click",e[0])},p:t,i:t,o:t,d(t){t&&l(n),m()}}}let at="Jobs";function st(t){return[function(){U.markAllRead()}]}class ct extends D{constructor(t){super(),E(this,t,st,ot,a,{})}}function it(e){let n,r,o,a,s;const d=new ct({}),p=new X({}),m=new rt({});return{c(){M(d.$$.fragment),n=f(),r=u("div"),o=u("div"),M(p.$$.fragment),a=f(),M(m.$$.fragment),h(o,"class","col-12"),h(r,"class","container fullWidth")},m(t,e){N(d,t,e),i(t,n,e),i(t,r,e),c(r,o),N(p,o,null),c(o,a),N(m,o,null),s=!0},p:t,i(t){s||(S(d.$$.fragment,t),S(p.$$.fragment,t),S(m.$$.fragment,t),s=!0)},o(t){T(d.$$.fragment,t),T(p.$$.fragment,t),T(m.$$.fragment,t),s=!1},d(t){O(d,t),t&&l(n),t&&l(r),O(p),O(m)}}}var lt=1e3,ut=6e4,dt=60*ut,ft=24*dt,pt=function(t,e){e=e||{};var n=typeof t;if("string"===n&&t.length>0)return function(t){if((t=String(t)).length>100)return;var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(!e)return;var n=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*n;case"weeks":case"week":case"w":return 6048e5*n;case"days":case"day":case"d":return n*ft;case"hours":case"hour":case"hrs":case"hr":case"h":return n*dt;case"minutes":case"minute":case"mins":case"min":case"m":return n*ut;case"seconds":case"second":case"secs":case"sec":case"s":return n*lt;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}(t);if("number"===n&&isFinite(t))return e.long?function(t){var e=Math.abs(t);if(e>=ft)return ht(t,e,ft,"day");if(e>=dt)return ht(t,e,dt,"hour");if(e>=ut)return ht(t,e,ut,"minute");if(e>=lt)return ht(t,e,lt,"second");return t+" ms"}(t):function(t){var e=Math.abs(t);if(e>=ft)return Math.round(t/ft)+"d";if(e>=dt)return Math.round(t/dt)+"h";if(e>=ut)return Math.round(t/ut)+"m";if(e>=lt)return Math.round(t/lt)+"s";return t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function ht(t,e,n,r){var o=e>=1.5*n;return Math.round(t/n)+" "+r+(o?"s":"")}let mt=0;const gt=new class extends D{constructor(t){super(),E(this,t,null,it,a,{})}}({target:document.body});return function t(){U.getJobList();const e=function(t=0){return 36e5-(new Date).getTime()%36e5+t}()+pt("10m");console.log("Next:",e),mt=setTimeout(()=>{t()},e)}(),gt}(); +var app=function(){"use strict";function t(){}function e(t){return t()}function n(){return Object.create(null)}function o(t){t.forEach(e)}function r(t){return"function"==typeof t}function a(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}function s(e,n,o){e.$$.on_destroy.push(function(e,...n){if(null==e)return t;const o=e.subscribe(...n);return o.unsubscribe?()=>o.unsubscribe():o}(n,o))}function c(t,e){t.appendChild(e)}function l(t,e,n){t.insertBefore(e,n||null)}function i(t){t.parentNode.removeChild(t)}function u(t,e){for(let n=0;nt.removeEventListener(e,n,o)}function g(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function b(t,e){e=""+e,t.data!==e&&(t.data=e)}let y;function v(t){y=t}const $=[],w=[],x=[],k=[],J=Promise.resolve();let _=!1;function C(t){x.push(t)}let A=!1;const L=new Set;function j(){if(!A){A=!0;do{for(let t=0;t<$.length;t+=1){const e=$[t];v(e),T(e.$$)}for($.length=0;w.length;)w.pop()();for(let t=0;t{M.delete(t),o&&(n&&t.d(1),o())}),t.o(e)}}function N(t){t&&t.c()}function R(t,n,a){const{fragment:s,on_mount:c,on_destroy:l,after_update:i}=t.$$;s&&s.m(n,a),C(()=>{const n=c.map(e).filter(r);l?l.push(...n):o(n),t.$$.on_mount=[]}),i.forEach(C)}function D(t,e){const n=t.$$;null!==n.fragment&&(o(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function E(t,e){-1===t.$$.dirty[0]&&($.push(t),_||(_=!0,J.then(j)),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const r=o.length?o[0]:n;return p.ctx&&c(p.ctx[t],p.ctx[t]=r)&&(p.bound[t]&&p.bound[t](r),m&&E(e,t)),n}):[],p.update(),m=!0,o(p.before_update),p.fragment=!!s&&s(p.ctx),r.target){if(r.hydrate){const t=function(t){return Array.from(t.childNodes)}(r.target);p.fragment&&p.fragment.l(t),t.forEach(i)}else p.fragment&&p.fragment.c();r.intro&&O(e.$$.fragment),R(e,r.target,r.anchor),j()}v(d)}class P{$destroy(){D(this,1),this.$destroy=t}$on(t,e){const n=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return n.push(e),()=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(){}}const q=[];function z(e,n=t){let o;const r=[];function s(t){if(a(e,t)&&(e=t,o)){const t=!q.length;for(let t=0;t{const t=r.indexOf(l);-1!==t&&r.splice(t,1),0===r.length&&(o(),o=null)}}}}var F=function t(e){function n(t){return function(e,n){return a(e,Object.assign({method:t},n))}}function o(t){return function(e,n,o){return a(e,Object.assign({method:t,data:n},o))}}function r(t,e,n){if(Array.isArray(t))return t.concat(e);if(e&&"object"==typeof e){var o,a={};if(t)for(o in t)a[n?o.toLowerCase():o]=t[o];for(o in e){var s=n?o.toLowerCase():o;"headers"===s&&(n=!0),a[s]=o in a?r(a[s],e[o],n):e[o]}return a}return e}function a(t,n){"string"!=typeof t&&(t=(n=t).url);var o=r(e,n||{}),a=o.data;if(o.transformRequest)for(var s=0;s{const e=JSON.parse(t.data);W.set(e)}).catch(t=>{console.error("getJobList",t)})},loadJobDetail(t){if(console.log("loadJobDetail: "+t),t){const e=`${V.jobs}/${t}`;F.get(e).then(t=>{const e=JSON.parse(t.data);B.set(e)}).catch(t=>{console.error("loadJobDetail",t)})}},async touchJob(t){if(console.log("touchJob: "+t),t){const e=`${V.jobs}/${t}`;await F.put(e).then(t=>{200!==t.status&&console.error(t)}).catch(t=>{console.error("touchJob",t)}),W.update(e=>(e.map(e=>{if(e._id===t)return e.read=(new Date).getTime(),e}),e))}},async appliedJob(t){console.log("touchJob: "+t);const e=(new Date).getTime();if(t){console.log("Applying..");const n=`${V.apply}/${t}`;await F.put(n).then(t=>{200!==t.status&&console.error(t)}).catch(t=>{console.error("appliedJob",t)});const o=parseInt(t,10);W.update(t=>(t.map(t=>{if(t._id===o)return t.a=e,t}),t)),B.update(t=>(t.a=e,t))}},async markAllRead(){console.log(">> markAllRead");const t=""+V.readall;await F.put(t).then(t=>{200!==t.status&&console.error(t)}).catch(t=>{console.error("markAllRead",t)}),this.getJobList()},killWord(t){console.log(">> killword:"+t);const e=`${V.kill}/${t}`;F.put(e).then(t=>{200!==t.status&&console.error(t)}).catch(t=>{console.error("killword",t)})},upVote(t){console.log(">> upvote:"+t);const e=`${V.upvote}/${t}`;F.put(e).then(t=>{200!==t.status&&console.error(t)}).catch(t=>{console.error("upvote",t)})},downVote(t){console.log(">> downvote:"+t);const e=`${V.downvote}/${t}`;F.put(e).then(t=>{200!==t.status&&console.error(t)}).catch(t=>{console.error("downvote",t)})}};function G(t,e,n){const o=t.slice();return o[4]=e[n],o[6]=n,o}function K(t){let e,n,o,r,a,s,u,m,y,v,$,w,x,k,J,_,C=t[4].title+"",A=t[4].site+"",L=X(t[4].company)+"",j=tt(t[4].timestamp)+"";return{c(){e=d("tr"),n=d("td"),o=f(C),r=p(),a=d("td"),s=f(A),u=p(),m=d("td"),y=f(L),v=p(),$=d("td"),w=f(j),x=p(),g(n,"class","noOverflow svelte-15500pg"),g(e,"class",k="dataRow "+Y(t[4])+" "+Z(t[4])+" svelte-15500pg"),g(e,"data-id",J=t[4]._id)},m(i,d,f){var p;l(i,e,d),c(e,n),c(n,o),c(e,r),c(e,a),c(a,s),c(e,u),c(e,m),c(m,y),c(e,v),c(e,$),c($,w),c(e,x),f&&_(),_=h(e,"click",(p=t[1],function(t){return t.stopPropagation(),p.call(this,t)}))},p(t,n){1&n&&C!==(C=t[4].title+"")&&b(o,C),1&n&&A!==(A=t[4].site+"")&&b(s,A),1&n&&L!==(L=X(t[4].company)+"")&&b(y,L),1&n&&j!==(j=tt(t[4].timestamp)+"")&&b(w,j),1&n&&k!==(k="dataRow "+Y(t[4])+" "+Z(t[4])+" svelte-15500pg")&&g(e,"class",k),1&n&&J!==(J=t[4]._id)&&g(e,"data-id",J)},d(t){t&&i(e),_()}}}function Q(e){let n,o,r,a,s,f=e[0],m=[];for(let t=0;t\n Title\n \n \n Site\n \n \n Company\n \n \n Date\n ',a=p(),s=d("tbody");for(let t=0;tn(0,o=t)),[o,function(t){const e=t.target.parentElement.dataset.id;U.loadJobDetail(e),U.touchJob(e)}]}class nt extends P{constructor(t){super(),H(this,t,et,Q,a,{})}}function ot(t,e,n){const o=t.slice();return o[8]=e[n],o[10]=n,o}function rt(t){let e,n,o,r,a,s,m,h,y,v,$,w,x,k,J,_,C,A,L,j,T,M,O,S,N,R,D,E,H,P,q,z,F,I,V,W,B,U,G,K,Q,X,Y=t[3].title+"",Z=t[3].company+"",tt=t[3].location+"",et=t[3].salary+"",nt=t[3].date+"",rt=t[3].site+"",it=t[3].summary+"";function ut(t,e){return 1===t[2]?st:2===t[2]?at:void 0}let dt=ut(t),pt=dt&&dt(t);function mt(t,e){return t[3].a?ct:lt}let ht=mt(t),gt=ht(t),bt=t[3].data.autoclass.words,yt=[];for(let e=0;e>kill",t)}function gt(t,e,n){let o;s(t,B,t=>n(3,o=t));let r=!1,a=!1,c=0;return B.subscribe(t=>{n(0,r=!mt(t)),console.log(t)}),t.$$.update=()=>{8&t.$$.dirty&&(mt(o)||(n(1,a="number"==typeof o.data.applied&&1===o.data.applied),n(2,c=o.data.jobtype)))},[r,a,c,o,function(){U.appliedJob(o._id)}]}class bt extends P{constructor(t){super(),H(this,t,gt,pt,a,{})}}function yt(e){let n,o,r,a,s,u,f;return{c(){n=d("header"),o=d("section"),r=d("span"),r.textContent=""+vt,a=p(),s=d("section"),u=d("button"),u.textContent="Mark All Read",g(r,"class","text-bold navbar-brand mx-1 text-uppercase"),g(o,"class","navbar-section"),g(u,"class","btn btn-sm btn-primary"),g(s,"class","navbar-section text-right"),g(n,"class","navbar bg-primary")},m(t,i,d){l(t,n,i),c(n,o),c(o,r),c(n,a),c(n,s),c(s,u),d&&f(),f=h(u,"click",e[0])},p:t,i:t,o:t,d(t){t&&i(n),f()}}}let vt="Jobs";function $t(t){return[function(){U.markAllRead()}]}class wt extends P{constructor(t){super(),H(this,t,$t,yt,a,{})}}function xt(e){let n,o,r,a,s;const u=new wt({}),f=new nt({}),m=new bt({});return{c(){N(u.$$.fragment),n=p(),o=d("div"),r=d("div"),N(f.$$.fragment),a=p(),N(m.$$.fragment),g(r,"class","col-12"),g(o,"class","container fullWidth")},m(t,e){R(u,t,e),l(t,n,e),l(t,o,e),c(o,r),R(f,r,null),c(r,a),R(m,r,null),s=!0},p:t,i(t){s||(O(u.$$.fragment,t),O(f.$$.fragment,t),O(m.$$.fragment,t),s=!0)},o(t){S(u.$$.fragment,t),S(f.$$.fragment,t),S(m.$$.fragment,t),s=!1},d(t){D(u,t),t&&i(n),t&&i(o),D(f),D(m)}}}var kt=1e3,Jt=6e4,_t=60*Jt,Ct=24*_t,At=function(t,e){e=e||{};var n=typeof t;if("string"===n&&t.length>0)return function(t){if((t=String(t)).length>100)return;var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(!e)return;var n=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*n;case"weeks":case"week":case"w":return 6048e5*n;case"days":case"day":case"d":return n*Ct;case"hours":case"hour":case"hrs":case"hr":case"h":return n*_t;case"minutes":case"minute":case"mins":case"min":case"m":return n*Jt;case"seconds":case"second":case"secs":case"sec":case"s":return n*kt;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}(t);if("number"===n&&isFinite(t))return e.long?function(t){var e=Math.abs(t);if(e>=Ct)return Lt(t,e,Ct,"day");if(e>=_t)return Lt(t,e,_t,"hour");if(e>=Jt)return Lt(t,e,Jt,"minute");if(e>=kt)return Lt(t,e,kt,"second");return t+" ms"}(t):function(t){var e=Math.abs(t);if(e>=Ct)return Math.round(t/Ct)+"d";if(e>=_t)return Math.round(t/_t)+"h";if(e>=Jt)return Math.round(t/Jt)+"m";if(e>=kt)return Math.round(t/kt)+"s";return t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Lt(t,e,n,o){var r=e>=1.5*n;return Math.round(t/n)+" "+o+(r?"s":"")}let jt=0;const Tt=new class extends P{constructor(t){super(),H(this,t,null,xt,a,{})}}({target:document.body});return function t(){U.getJobList();const e=function(t=0){return 36e5-(new Date).getTime()%36e5+t}()+At("10m");console.log("Next:",e),jt=setTimeout(()=>{t()},e)}(),Tt}(); diff --git a/server/dist/build/bundle.js.map b/server/dist/build/bundle.js.map index bc49749..5b3d6c0 100644 --- a/server/dist/build/bundle.js.map +++ b/server/dist/build/bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte/store/index.mjs","../../node_modules/redaxios/dist/redaxios.module.js","../../src/state/state.js","../../src/components/Menu.svelte","../../src/components/Lister.svelte","../../src/components/Detail.svelte","../../src/components/Header.svelte","../../node_modules/ms/index.js","../../src/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value = ret) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value' || descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group) {\n const value = [];\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.push(group[i].__value);\n }\n return value;\n}\nfunction to_number(value) {\n return value === '' ? undefined : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction claim_element(nodes, name, attributes, svg) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeName === name) {\n let j = 0;\n while (j < node.attributes.length) {\n const attribute = node.attributes[j];\n if (attributes[attribute.name]) {\n j++;\n }\n else {\n node.removeAttribute(attribute.name);\n }\n }\n return nodes.splice(i, 1)[0];\n }\n }\n return svg ? svg_element(name) : element(name);\n}\nfunction claim_text(nodes, data) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 3) {\n node.data = '' + data;\n return nodes.splice(i, 1)[0];\n }\n }\n return text(data);\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.data !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n if (value != null || input.value) {\n input.value = value;\n }\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n const z_index = (parseInt(computed_style.zIndex) || 0) - 1;\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', `display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ` +\n `overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: ${z_index};`);\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n let unsubscribe;\n if (is_crossorigin()) {\n iframe.src = `data:text/html,`;\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n detach(iframe);\n if (unsubscribe)\n unsubscribe();\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, false, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor(html, anchor = null) {\n this.e = element('div');\n this.a = anchor;\n this.u(html);\n }\n m(target, anchor = null) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(target, this.n[i], anchor);\n }\n this.t = target;\n }\n u(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n p(html) {\n this.d();\n this.u(html);\n this.m(this.t, this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = node.ownerDocument;\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = doc.head.appendChild(element('style')).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error(`Function called outside component initialization`);\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n callbacks.slice().forEach(fn => fn(event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = program.b - t;\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n info.blocks[i] = null;\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next, lookup.has(block.key));\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error(`Cannot have duplicate keys in a keyed each`);\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += \" \" + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += \" \" + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${String(value).replace(/\"/g, '"').replace(/'/g, ''')}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, options = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, options);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : ``;\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const prop_values = options.props || {};\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n // everything else\n callbacks: blank_object(),\n dirty\n };\n let ready = false;\n $$.ctx = instance\n ? instance(component, prop_values, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if ($$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor);\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set() {\n // overridden by instance, if it has props\n }\n };\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set() {\n // overridden by instance, if it has props\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.22.2' }, detail)));\n}\nfunction append_dev(target, node) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node });\n append(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev(\"SvelteDOMRemove\", { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? [\"capture\"] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev(\"SvelteDOMAddEventListener\", { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev(\"SvelteDOMRemoveEventListener\", { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev(\"SvelteDOMRemoveAttribute\", { node, attribute });\n else\n dispatch_dev(\"SvelteDOMSetAttribute\", { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev(\"SvelteDOMSetProperty\", { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev(\"SvelteDOMSetDataset\", { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.data === data)\n return;\n dispatch_dev(\"SvelteDOMSetData\", { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(`'target' is a required option`);\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn(`Component was already destroyed`); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error(`Infinite loop detected`);\n }\n };\n}\n\nexport { HtmlTag, SvelteComponent, SvelteComponentDev, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, assign, attr, attr_dev, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_space, claim_text, clear_loops, component_subscribe, compute_rest_props, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, escape, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getContext, get_binding_group_value, get_current_component, get_slot_changes, get_slot_context, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, has_prop, identity, init, insert, insert_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, update_keyed_each, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal';\nexport { get_store_value as get } from '../internal';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe,\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = [];\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (let i = 0; i < subscribers.length; i += 1) {\n const s = subscribers[i];\n s[1]();\n subscriber_queue.push(s, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.push(subscriber);\n if (subscribers.length === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n const index = subscribers.indexOf(subscriber);\n if (index !== -1) {\n subscribers.splice(index, 1);\n }\n if (subscribers.length === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export default(function e(t){function r(e){return function(t,r){return a(t,Object.assign({method:e},r))}}function o(e){return function(t,r,o){return a(t,Object.assign({method:e,data:r},o))}}function n(e,t,r){if(Array.isArray(e))return e.concat(t);if(t&&\"object\"==typeof t){var o,a={};if(e)for(o in e)a[r?o.toLowerCase():o]=e[o];for(o in t){var i=r?o.toLowerCase():o;\"headers\"===i&&(r=!0),a[i]=o in a?n(a[i],t[o],r):t[o]}return a}return t}function a(e,r){\"string\"!=typeof e&&(e=(r=e).url);var o=n(t,r||{}),a=o.data;if(o.transformRequest)for(var i=0;i {\n // console.log('>> retrieved', d);\n const data = JSON.parse(d.data);\n \n JobList.set(data);\n }).catch((err) => {\n console.error('getJobList', err);\n });\n },\n \n loadJobDetail(id) {\n console.log(`loadJobDetail: ${id}`);\n if (id) {\n const u = `${urls.jobs}/${id}`;\n axios.get(u).then((d) => {\n const data = JSON.parse(d.data);\n\n JobDetails.set(data);\n }).catch((err) => {\n console.error('loadJobDetail', err);\n });\n }\n },\n\n async touchJob(id) {\n console.log(`touchJob: ${id}`);\n if (id) {\n const u = `${urls.jobs}/${id}`;\n await axios.put(u).then((d) => {\n if (d.status !== 200) \n console.error(d);\n }).catch((err) => {\n console.error('touchJob', err);\n });\n\n const _id = parseInt(id, 10);\n\n JobList.update((data) => {\n data.map((v) => {\n if (v._id === _id) {\n v.d = new Date().getTime();\n\n return v;\n }\n });\n\n return data;\n });\n }\n },\n\n async appliedJob(id) {\n console.log(`touchJob: ${id}`);\n\n const now = new Date().getTime();\n\n // JobDetails\n\n if (id) {\n console.log('Applying..');\n const u = `${urls.apply}/${id}`;\n await axios.put(u).then((d) => {\n if (d.status !== 200)\n console.error(d);\n }).catch((err) => {\n console.error('appliedJob', err);\n });\n\n const _id = parseInt(id, 10);\n\n JobList.update((data) => {\n data.map((v) => {\n if (v._id === _id) {\n v.a = now;\n\n return v;\n }\n });\n\n return data;\n });\n\n JobDetails.update((v) => {\n v.a = now;\n\n return v;\n });\n }\n },\n\n async markAllRead() {\n console.log('>> markAllRead');\n\n const u = `${urls.readall}`;\n await axios.put(u).then((d) => {\n if (d.status !== 200)\n console.error(d);\n }).catch((err) => {\n console.error('markAllRead', err);\n });\n\n this.getJobList();\n }\n\n};\n\nexport { JobList, JobDetails, actions };\n","\n\n\n\n
\n

Jobs

\n
\n
\n \n
\n\n
\n","\n\n\n\n\n
\n \n \n \n \n \n \n \n \n \n \n {#each $JobList as item, _id}\n \n \n \n \n \n \n \n {/each}\n \n
\n Title\n \n Site\n \n Company\n \n Date\n
{item.title}{item.site}{ellipses(item.company)}{item.date}
\n
\n\n\n","\n\n\n\n\n{#if visible}\n
\n
\n
\n
\n {$JobDetails.title}\n
\n\n
\n
\n
\n Company: {$JobDetails.company}\n
\n
\n Location: {$JobDetails.location}\n
\n
\n Applied:\n {#if !$JobDetails.a}\n \n {:else}\n Applied!\n {/if}\n\n
\n\n
\n\n
\n
\n Salary: {$JobDetails.salary}\n
\n
\n Scraped: {$JobDetails.date}\n
\n
\n Site: {$JobDetails.site}\n
\n\n
\n\n\n
\n
\n {@html $JobDetails.summary}\n
\n
\n\n{/if}\n","\n\n\n\n
\n\n
\n {titleText}\n
\n\n\n
\n \n \n
\n\n\n
\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","import App from './App.svelte';\nimport ms from 'ms';\n\nimport { actions } from './state/state';\n\nlet timerID = 0;\n\nconst app = new App({\n 'target': document.body\n});\n\nfunction toHour(extra = 0) {\n const now = new Date();\n\n return (3600000 - (now.getTime() % 3600000)) + extra;\n}\n\nfunction update() {\n actions.getJobList();\n\n const delay = toHour() + ms('10m');\n\n console.log('Next:', delay);\n\n timerID = setTimeout(() => {\n update();\n }, delay);\n}\n\nupdate();\n\nexport default app;\n"],"names":["update"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte/store/index.mjs","../../node_modules/redaxios/dist/redaxios.module.js","../../src/state/state.js","../../src/components/Menu.svelte","../../src/components/Lister.svelte","../../src/components/Detail.svelte","../../src/components/Header.svelte","../../node_modules/ms/index.js","../../src/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value = ret) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value' || descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group) {\n const value = [];\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.push(group[i].__value);\n }\n return value;\n}\nfunction to_number(value) {\n return value === '' ? undefined : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction claim_element(nodes, name, attributes, svg) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeName === name) {\n let j = 0;\n while (j < node.attributes.length) {\n const attribute = node.attributes[j];\n if (attributes[attribute.name]) {\n j++;\n }\n else {\n node.removeAttribute(attribute.name);\n }\n }\n return nodes.splice(i, 1)[0];\n }\n }\n return svg ? svg_element(name) : element(name);\n}\nfunction claim_text(nodes, data) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 3) {\n node.data = '' + data;\n return nodes.splice(i, 1)[0];\n }\n }\n return text(data);\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.data !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n if (value != null || input.value) {\n input.value = value;\n }\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n const z_index = (parseInt(computed_style.zIndex) || 0) - 1;\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', `display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ` +\n `overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: ${z_index};`);\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n let unsubscribe;\n if (is_crossorigin()) {\n iframe.src = `data:text/html,`;\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n detach(iframe);\n if (unsubscribe)\n unsubscribe();\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, false, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor(html, anchor = null) {\n this.e = element('div');\n this.a = anchor;\n this.u(html);\n }\n m(target, anchor = null) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(target, this.n[i], anchor);\n }\n this.t = target;\n }\n u(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n p(html) {\n this.d();\n this.u(html);\n this.m(this.t, this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = node.ownerDocument;\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = doc.head.appendChild(element('style')).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error(`Function called outside component initialization`);\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n callbacks.slice().forEach(fn => fn(event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = program.b - t;\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n info.blocks[i] = null;\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next, lookup.has(block.key));\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error(`Cannot have duplicate keys in a keyed each`);\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += \" \" + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += \" \" + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${String(value).replace(/\"/g, '"').replace(/'/g, ''')}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, options = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, options);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : ``;\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const prop_values = options.props || {};\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n // everything else\n callbacks: blank_object(),\n dirty\n };\n let ready = false;\n $$.ctx = instance\n ? instance(component, prop_values, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if ($$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor);\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set() {\n // overridden by instance, if it has props\n }\n };\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set() {\n // overridden by instance, if it has props\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.22.2' }, detail)));\n}\nfunction append_dev(target, node) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node });\n append(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev(\"SvelteDOMRemove\", { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? [\"capture\"] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev(\"SvelteDOMAddEventListener\", { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev(\"SvelteDOMRemoveEventListener\", { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev(\"SvelteDOMRemoveAttribute\", { node, attribute });\n else\n dispatch_dev(\"SvelteDOMSetAttribute\", { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev(\"SvelteDOMSetProperty\", { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev(\"SvelteDOMSetDataset\", { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.data === data)\n return;\n dispatch_dev(\"SvelteDOMSetData\", { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(`'target' is a required option`);\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn(`Component was already destroyed`); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error(`Infinite loop detected`);\n }\n };\n}\n\nexport { HtmlTag, SvelteComponent, SvelteComponentDev, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, assign, attr, attr_dev, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_space, claim_text, clear_loops, component_subscribe, compute_rest_props, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, escape, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getContext, get_binding_group_value, get_current_component, get_slot_changes, get_slot_context, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, has_prop, identity, init, insert, insert_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, update_keyed_each, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal';\nexport { get_store_value as get } from '../internal';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe,\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = [];\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (let i = 0; i < subscribers.length; i += 1) {\n const s = subscribers[i];\n s[1]();\n subscriber_queue.push(s, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.push(subscriber);\n if (subscribers.length === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n const index = subscribers.indexOf(subscriber);\n if (index !== -1) {\n subscribers.splice(index, 1);\n }\n if (subscribers.length === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export default(function e(t){function r(e){return function(t,r){return a(t,Object.assign({method:e},r))}}function o(e){return function(t,r,o){return a(t,Object.assign({method:e,data:r},o))}}function n(e,t,r){if(Array.isArray(e))return e.concat(t);if(t&&\"object\"==typeof t){var o,a={};if(e)for(o in e)a[r?o.toLowerCase():o]=e[o];for(o in t){var i=r?o.toLowerCase():o;\"headers\"===i&&(r=!0),a[i]=o in a?n(a[i],t[o],r):t[o]}return a}return t}function a(e,r){\"string\"!=typeof e&&(e=(r=e).url);var o=n(t,r||{}),a=o.data;if(o.transformRequest)for(var i=0;i {\n // console.log('>> retrieved', d);\n const data = JSON.parse(d.data);\n\n JobList.set(data);\n }).catch((err) => {\n console.error('getJobList', err);\n });\n },\n\n loadJobDetail(id) {\n console.log(`loadJobDetail: ${id}`);\n if (id) {\n const u = `${urls.jobs}/${id}`;\n axios.get(u).then((d) => {\n const data = JSON.parse(d.data);\n\n JobDetails.set(data);\n }).catch((err) => {\n console.error('loadJobDetail', err);\n });\n }\n },\n\n async touchJob(id) {\n console.log(`touchJob: ${id}`);\n if (id) {\n const u = `${urls.jobs}/${id}`;\n await axios.put(u).then((d) => {\n if (d.status !== 200)\n console.error(d);\n }).catch((err) => {\n console.error('touchJob', err);\n });\n\n JobList.update((data) => {\n data.map((v) => {\n if (v._id === id) {\n v.read = new Date().getTime();\n\n return v;\n }\n });\n\n return data;\n });\n }\n },\n\n async appliedJob(id) {\n console.log(`touchJob: ${id}`);\n\n const now = new Date().getTime();\n\n // JobDetails\n\n if (id) {\n console.log('Applying..');\n const u = `${urls.apply}/${id}`;\n await axios.put(u).then((d) => {\n if (d.status !== 200)\n console.error(d);\n }).catch((err) => {\n console.error('appliedJob', err);\n });\n\n const _id = parseInt(id, 10);\n\n JobList.update((data) => {\n data.map((v) => {\n if (v._id === _id) {\n v.a = now;\n\n return v;\n }\n });\n\n return data;\n });\n\n JobDetails.update((v) => {\n v.a = now;\n\n return v;\n });\n }\n },\n\n async markAllRead() {\n console.log('>> markAllRead');\n\n const u = `${urls.readall}`;\n await axios.put(u).then((d) => {\n if (d.status !== 200)\n console.error(d);\n }).catch((err) => {\n console.error('markAllRead', err);\n });\n\n this.getJobList();\n },\n\n killWord(word) {\n console.log(`>> killword:${word}`);\n\n const u = `${urls.kill}/${word}`;\n axios.put(u).then((d) => {\n if (d.status !== 200)\n console.error(d);\n }).catch((err) => {\n console.error('killword', err);\n });\n },\n\n upVote(id) {\n console.log(`>> upvote:${id}`);\n\n const u = `${urls.upvote}/${id}`;\n axios.put(u).then((d) => {\n if (d.status !== 200)\n console.error(d);\n }).catch((err) => {\n console.error('upvote', err);\n });\n },\n\n downVote(id) {\n console.log(`>> downvote:${id}`);\n\n const u = `${urls.downvote}/${id}`;\n axios.put(u).then((d) => {\n if (d.status !== 200)\n console.error(d);\n }).catch((err) => {\n console.error('downvote', err);\n });\n }\n\n\n};\n\nexport { JobList, JobDetails, actions };\n","\n\n\n\n
\n

Jobs

\n
\n
\n \n
\n\n
\n","\n\n\n\n\n
\n \n \n \n \n \n \n \n \n \n \n {#each $JobList as item, _id}\n \n \n \n \n \n \n \n {/each}\n \n
\n Title\n \n Site\n \n Company\n \n Date\n
\n {item.title}\n \n {item.site}{ellipses(item.company)}{timeStamptoLocaleDate(item.timestamp)}
\n
\n\n\n","\n\n\n\n\n{#if visible}\n
\n
\n
\n
\n {$JobDetails.title}\n\n
\n\n {#if jobtype === 1}\n Contract\n {:else if jobtype === 2}\n Permanent\n {/if}\n\n
\n
\n
\n Company: {$JobDetails.company}\n
\n
\n Location: {$JobDetails.location}\n
\n
\n Applied:\n {#if !$JobDetails.a}\n \n {:else}\n Applied!\n {/if}\n\n
\n\n
\n\n
\n
\n Salary: {@html $JobDetails.salary}\n
\n
\n Scraped: {$JobDetails.date}\n
\n
\n Site: {$JobDetails.site}\n
\n\n
\n\n
\n
\n {#each $JobDetails.data.autoclass.words as word, _wid}\n {#if $JobDetails.data.autoclass.good.indexOf(word) !== -1}\n {word}\n {:else if $JobDetails.data.autoclass.bad.indexOf(word) !== -1}\n {word}\n {:else }\n {word}\n {/if}\n {/each}\n\n
\n \n\n
\n\n\n
\n
\n {@html $JobDetails.summary}\n
\n
\n\n{/if}\n","\n\n\n\n
\n\n
\n {titleText}\n
\n\n\n
\n \n \n
\n\n\n
\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","import App from './App.svelte';\nimport ms from 'ms';\n\nimport { actions } from './state/state';\n\nlet timerID = 0;\n\nconst app = new App({\n 'target': document.body\n});\n\nfunction toHour(extra = 0) {\n const now = new Date();\n\n return (3600000 - (now.getTime() % 3600000)) + extra;\n}\n\nfunction update() {\n actions.getJobList();\n\n const delay = toHour() + ms('10m');\n\n console.log('Next:', delay);\n\n timerID = setTimeout(() => {\n update();\n }, delay);\n}\n\nupdate();\n\nexport default app;\n"],"names":["update"],"mappings":"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"} \ No newline at end of file diff --git a/test/indeed.js b/test/indeed.js index e98bdb8..d794dbb 100644 --- a/test/indeed.js +++ b/test/indeed.js @@ -41,7 +41,9 @@ test.skip('Test Indeed scraper', async t => { }); test.skip('Test full run Indeed scraper', async t => { - await indeedScraper.go('london'); + await indeedScraper.go('london').catch((err) => { + console.error('Indeed GO', err); + }); t.end(); }); diff --git a/unused.json b/unused.json index 7aa8588..9afaa2a 100644 --- a/unused.json +++ b/unused.json @@ -1 +1 @@ -["native","engineer","client","fintech","frontend","tools","distributed","complex","systems","understandable","ui","trading","technical","software","net","elastic","microservices","rabbitmq","dynamodb","sns","webapi","git","angular","database","project","application","scratch","requirements","tdd","estamp","c#","server","pdf","stamp","development","html","css","architect","programming","python","amazon","google","apigee","kubernetes","lambda","api","manager","micro","oracle","code","spark","apache","typescript","elasticsearch","data","blockchain","accessibility","browser","compatibility","mobile","programmer","finance","apps","ember","restful","apis","infrastructure","wordpress","lamp","php","med","applications","architecture","asp","refactor","c","ios","sdk","browsers","devices","app","central","angularjs","digital","stakeholders","analytics","query","dashboarding","online","analyse","dashboards","bigquery","pub","sub","dataflow","scripting","jenkins","hosting","compute","storage","networking","protocols","ip","routing","firewall","virtual","private","loadbalancer","dns","cdn","contractwork","specialising","understanding","sdlc","methods","experiencing","databases","enhancements","technologies","programme","organisation","successfully","organisationally","functionality","toad","testing","patch","implementation","configuration","modules","customisations","ftp","sms","organisations","methodologies","banking","specifically","responsibilities","controllerview","sql·","communicatordesirables","regulationsif","axiomslldnjob","interchangeably","administering","coding","reconciliation","transactions","administration","reconciliations","subsidiaries","confirmations","professional","function","communication","organisational","excel","intermediate","communications","grammatically","contractually","international","multinational","opportunities","responsibility","volunteering","carbon","characteristics","sketch","typography","visual","productivity","modeller","model","modellinggood","desirablefluent","ibm","hadoop","olap","db","visualization","representation","models","templates","patterns","frameworks","ingestion","availability","elasticity","ecosystems","etl","azure","devops","collaboration","cms","scotland","functions","transform","collaborative","framework","nhibernate","lifecycle","specification","appointments","optimization","mac","android","www","defraggler","speccy","aspirational","utility","significantly","automated","integrations","transformations","esp","personalized","emails","demonstrable","integrate","bugs","spec","document","specifications","redesign","carts","geeks","https","requirementsknowledge","bootstrap","jquery","backbone","reactjswebsockets","jsoncross","practicesexperience","wordpresssolid","skillsfluent","englishresponsibilitiesdevelopment","windows","macos","refactoring","opportunitiesflexible","hoursreference","fullstack","contractexperience","governmental","websites","portals","api’s","automate","querying","presentations","investigative","portal","autonomously","environments","terraform","organization","laravel","aurora","dba","implementing","linux","northamptonshire","bedfordshire","pivotal","streams","optimisations","partnerships","segmentation","programmatic","resolve","qualifications","niederdorfer","londoncontractdaily","transformation","libor","discontinuation","transactional","managercreating","scripts","testsextracting","systemperform","verification","errors","testers","smesensuring","expectationspre","scenariospresenting","offproviding","requiredtesting","appropriatelythe","advantageous","mathematical","vanilla","contractsalary","microsoft","stored","sass","ai","engineers","nlp","contribution","publications","architectures","peer","communicator","sysadmin","redis","kafka","zeromq","nosql","cloudformation","particularly","pytorch","array","temps","civil","dscrocontribute","sourcescontribute","troubleshooting","“housekeeping”","levelextensive","intermediary","wireframes","prototypes","typographyexperience","skillsproficiency","prototyping","axure","invisionexperience","prototypesgood","trendsunderstanding","prolancer","hourscontract","permanentsalary","yearexperience","magento","datawarehouse","admin","datawarehousing","edinburgh","calibre","manufacturer","mainframe","mssql","postgres","operating","independence","compromising","aptitude","spreadsheets","triggers","debugging","tuning","architected","webassembly","ssrs","subscriptions","ssas","warehousing","iosmobile","xml","json","svn","debug","cycle","considerable","satisfactory","buckinghamshire","powershell","perl","bourne","korn","shells","jsp","vtl","soap","cli","selenium","electron","alternatives","toolsets","eclipse","jira","ldap","circular","developerjob","contractjob","description·","reactjs·","ajax","ecma","jestjob","dayexperience","establishments","collaborating","bdd","environmentshas","correctedproviding","andexperience","environmentoracle","sqlbdd","boot","microservicestesting","hermesjmsrestassuredreadyapi","equivalentexperience","webpage","sassexperience","designability","mock","prototypesexcellent","abilitiesstrong","interpersonal","playerdegree","mysq","kotlin","fundamentals","discriminate","doingcombining","requirementsdesigning","aestheticsresearching","projectstaking","teamcollaborating","differenceresponsibilitiesas","experiencesensuring","standardscollaborating","visionunderstand","psychologyconduct","feedbackcreate","maps","lifecommunicate","developerskeep","toolsrequirementsa","platformsstrong","projectsbackground","researchfamiliarity","architectureproblem","aptitudeanalytical","acumenexcellent","skillsworking","advantagesknowledge","axureenthusiasm","independently","necessaryknowledge","londonflexible","hoursopportunity","bonusesattendance","accommodation","includedtraining","neededinternational","necessarypaid","daysrefreshments","officemacbook","acclimatedtrust","entrepreneurs","plugins","demonstrated","acquisitions","capitalising","opportunitiesprofit","patches","documentation","servers","orchestration","relationship","intelligence","enthusiastic","professionals","transformative","saas","contributing","interpretation","scrum","simultaneous","certifications","revolutionise","virus","requiredapidatabase","architecturedatabase","applicationwebsite","developmentapi","integrationux","languagesjavascriptphppythonhtml","csshtmldatabasesmysqlfull","skillsbootstrap","contractapplication","monthexperience","androidthings","api's","hyper","network","prerequisite","objects","skillsproven","xslt","toolkit","xssiknowledge","standardsexperience","repositories","bug","ncarolan@mcgregor","png","employmenttype","hiringorganization","url","postaladdress","addresslocality","addressregion","streetaddress","monetaryamount","propertyvalue","visualisations","disciplinary","sites","xssi","npm","solutionssoftware","solutionstesting","abovegeneration","estimatestesting","functionalityadherence","practicesaccurately","leadershipsupporting","activitiesproduction","documentationparticipation","productsconfiguration","qualification","desktop","rcp","additionally","middleware","environmentsobject","umlmicrosoft","webgl","architectural","optimisation","embedding","dataops","visualisation","mining","kanban","provisioning","teradata","mongo","reassignment","quantitative","quant","distribution","library","knowledgeable","architectjob","architecting","servicesgood","bigtable","datastore","paas","hybrid","integrationjob","participating","disaster","recovery","foundation’s","recommendations","simplistically","vmware","iso","presentation","forms","kaleidoscope","multidiscipline","satigo","modeling","profitability","responsibilitiesanalyze","analytic","programsestablish","benchmarking","executionmonthly","executioneducation","experiencestrong","skillsdetail","executiondependable","motivatedexcellent","abilitytableau","consideration","dressreference","pricingconsultantjob","pharmaceutical","systemparticipates","conversation","participates","facilitation","clarification","constructive","askedidentifies","similarminimum","methodologiesproficient","peoplefluent","coordinating","ansible","bitbucket","mapping","clouds","calculations","connectivity","vpn","express","firewalls","razor","rdbms","powerbiexperience","snowflake","warehouseexperience","kafkasexperienced","experiencemust","troubleshoot","sourceenthusiastic","individualdesirable","experiencemicrosoft","experienceknowledge","environmentbackground","platformsexperience","pythonexperienced","dataflows","fuzzy","matchingexperience","platformstatistics","systemsbuild","objectivesensure","practicestest","solutionssupport","platformmaintain","servicesimplement","datareference","permanentexperience","lambethcontract","commissioning","knowledgedemonstrable","appreciation","legislationdetailed","requirementsqualificationsa","responsibilitiesbuild","maintainable","serviceswork","collaboratively","dev","designsproduce","interactions","teamdevelopment","vba","technologiesdevelopment","spikes","conceptsdemonstration","criteriaparticipation","participation","retro","estimatessupport","componentsmandatory","pythonsqlworking","apisdev","experiencepytestunit","testsexposure","methodologiesdesirable","analyticsjava","testingopenshift","kubernetesspringboot","reactiveexcel","vbdata","graph","mappingfamiliarity","solutionsgit","pipelinesdomain","tomcat","administrator","mongodb","pixel","experiencework","communicating","standardswork","portfoliogood","symbolsexperience","ccexperience","guidelinescreative","itunderstanding","javascriptsantander","descriptionjob","architectcontract","lesslocation","assessmentreview","performanceknowledge","analysistarget","interventions","resiliencesensitive","stakeholdersmicrosoft","certification","mangerremoteendeavour","managementserver","upgradeshardware","upgradessecurity","firewallslan","directoryexchangesql","serverwindowsfurther","opportunitiesjob","gitlab","xhtml","serverweb","enviromentproven","unsuccessful","開発エンジニア【求人概要】","日系itベンダーが金融機関でのit技術者マイクロソフト系開発エンジニアを募集【勤務地】ロンドン","大手メガバンクのシステム部門・企画部門に常駐する","【勤務地】ロンドン【仕事内容】・c#","での開発・開発チームでのリーダーもしくは教育担当・業務分析、業務改善提案などプロジェクト推進のための開発要望事項の取りまとめ・海外拠点間","における開発スケジュールや開発仕様の調整【応募条件】・itバックグラウンド必須・金融システム開発経験歓迎・mysql","sql、phpの使用経験優遇【語学力】母国語レベルの日本語、英語中級レベル","必須【ビザ】・英国で正規で労働可能なビザを保持している方優遇・適任者にはビザ・スポンサーあり","※弊社では、新型コロナウィルス対策のため、在宅勤務を実施しております。ご不便お掛け致しますが、お問い合わせ頂く際は、メールにてご連絡お願い致します。当社担当者より折り返しご連絡させて頂きます。","schemereference","unix","font","contractor","device","campaignstroubleshoot","reportingcreate","toolsregularly","modifications","tags","flashtalking","redevelopment","geo","illegalities","internet","rainforestfoundationuk","redevelopment’","hoursapplication","mapbox","alternatively","internationally","comprehensive","unsupervised","correspondence","confidentiality","computerised","simultaneously","descriptionthe","chaotic","descriptionwe","freelance","softwarebenefits","hourexperience","descriptiondue","ruby","technologystrong","growthability","attitudebenefit","dotnet","itil","matrix","stirling","organisationhands","skillsunderstanding","verbalability","summaryexperience","locationsstrong","undergraduates","documents","capabilities","manufacturing","institutions","configure","recursive","tables","ubuntu","whisperclaims","consultative","relationships","businessobjects","historically","meta","datastage","contributors","nasa","cyber","intellectually","knockout","differentiating","glasgow","scotland's","distributing","xamarin","intel","macosx","redhat","suse","meteor","contemporary","econometrics","jsriskmanager","manipulation","demonstratable","appropriately","visualizations","deliverables","developments","sybase","osql","olinux","dependencies","powerpoint","turnkey","coordination","cancellation","collectively","allegisgroup","dhcp","restrictions","scss","gui","accomplished","statistically","jqueryui","cancellations","intervention","transportation","counterparts","pivot","compensation","highlighting","technologist","hires","communicates","determination","ethical","databricks","telecommunications","functionally","interoperability","minimisation","pseudonymisation","websocket","kubernetesyaml","bash","introduction","extraordinary","webdriver","cypress","microservice","postman","developed","metropolitan","xilinx","industrialization","datahub","schema","commit","plsql","cursors","lambdas","gateway","sqs","jsam","jsreact","mq","records","confidential","computappoint","warwickshire","demonstrating","conferencing","wlan","complimentary","xmapp","rails","customization","javasscript","efficiencies","customisation","identification","dom","grunt","lynx","scrums","retrospectives","prioritization","xaml","authentication","codes","deb","scraping","manufacturers","technologists","tape","datamodelling","personality!","spa","gis","geojson","transferrable","commercially","expectations","aggressively","hosted","oauth","swagger","kubternetes","iotl","interdependencies","subscription","csv","callbacks","entrepreneurial","threads","rpc","jsed","influxdb","occasionally","chef","http","scopes","contributions","appsync","stageinterviews","elasitcsearch","representing","transferable","prioritisation","jsjbcybersec","multidisciplinary","canary","scala","junit","github","ssl","gatling","cucumber","gherkin","personalisation","manipulating","bracket","consultancies","audio","jest","karma","protractor","chartjs","gitflow","jsangular","implementations","simplification","telco","organizations","implications","shareholders","facilitating","increasingly","administratoryou","investigation","connectors","filters","folders","void","compile","routine","promise","discriminatory","dbs","construction","schemes","schemas","recognisable","preact","arrays","variables","oraclehcm","hertfordshire","notwithstanding","competencies","bot","interconnecting","bots","chatbots","corresponding","multithreaded","ui's","jsreactsccleared","conceptually","sparksql","angluarjs","mariadb","nestjs","heroku","adb","module","specializing","mscrm","shortlisting","cordova","phonegap","ionic","openui","escript","improvements","cognos","webservice","interconnected","accountability","investigating","conceptualizing","widgets","layouts","predict","individuality","unfortunately","practitioner","cosmosdb","scott@nigelfrank","morgan","conventional","jira's","institutional","sammonspensions","contracts","representatives","transforming","subsequently","jswebopscontract","eccomerce","github's","proportionately","acknowledged","replatforming","incorporating","communicators","headquartered","automatable","containerisation","effectiveness","interpreting","lookups","personalisations","gatsby","monolithic","headless","collaborativley","consolidation","gloucestershire","professionally","accountabilities","continuously","firebase","strategically","sophisticated","balsamic","graphical","supportability","dissemination","laptopaccess","northallerton","virtualisation","multiplatform","superintendent","metallurgist","prioritizing","jsnkprodmandalon","microservces","experimenting","amplify","pwa","natively","responsibilites","websockets","university's","administrative","cache","reddis","synapse","toolchains","exploitation","jsazure","ticks","embedded","immediately!","synchronization","mutex","memory","webpack","mockups","commercialization","differentiated","propositions","commercialisation","installation","mobilisation","homelessness","discrimination","balsamiq","safeguarding","abuse","repos","optimizations","golang","async","cambridgeshire","compsci","individually","consistently","multimedia","organizational","circumstances","automaton","engines","toolset","preventative","stripe","widgit","webapp","nunit","mstest","vscode","jsqwcrmlesftdev","reactive","geographical","forestresearch","gov","incorporated","presentational","kubernetese","auth","multichannel","prototype","geospatial","entertainment","microstrategy","analytically","couchbase","erlang","jscouchbase","informatique","informatiques","actuellement","obligatoires","significative","connaissance","environnement","sonar","atlassian","springmvc","optionnelles","informations","professionnel","contechauthor","approachable","cassandra","automatically","wireframe","surveillance","dataset","undergraduate","epidemiology","epidemiological","collaborators","characteristic","flutter","technological","hypertext","twitter","@contractswill","searchability","coder","chrome","jmeter","vsphere","vcenter","vcloud","universities","digitally","blogs","demographics","mcg","router","acrobat","appian","nodes","installations","wsdl","jdbc","null","commonwealth","agenda","registration","transferring","junk","spam","domino","progressively","jscloudarchitect","'interesting","bluewaveselect","revolutionary","microsrvices","jslinkaalinkcndk","jsdataintegrationdev","functionalities","accessibilit","intellij","sonarqube","responsabilit","connaissances","maintainability","manageability","authorization","sockets","tp_eseye_frontend","gestionnaire","modular","mule","responsibilies","gradle","paired","swift","cocoa","notifications","familiarisation","tailwind","webpacker","yarn","metadata","sparta","terabyte","satisfaction","reduction","commonalities","appreciating","constructively","articulating","render","allegorithmic","cinema","artistically","considerations","mustache","mocha","dramatically","christopherson","approximately","wcms","smartsourcing","neurodiverse","jsnkglobalconleadlon","compensating","interviewing","static","wastedataflow","contamination","odbc","interrogation","cart","physicalization","demonstrates","modularising","scfrontendev","exceptionally","xss","servicefabric","postgraduate","postgraduates","cybersecurity","coders","cryptographic","tagged","koltin","ethernet","@contractgeorge","wintel","hierarchical","configurations","opporutunity","advertisement","cosmeceutical","gcc","modernisation","gdpr","mobx","svg","localstorage","jsv","integration's","understandings","predominantly","rhel","centos","loadbalancing","middot","webdriverio","pascal","postresql","modernization","rdb","postgesql","openvms","systemv","modeler","formats","jsdata","digitalisation","technologically","friendliness","jamstack","webhooks","subnets","robotics","receptionist","compassionate","receptionists","instructions","routes","transparency","perspectives","gifs","cakephp","datawarehouses","wrigglesworth","[reinsurance","pm_insurance_london","iconic","webm","firetv","tvos","logstash","civilization","flex","transact","softwaredeveloper","underwriting","netc","biodiversity","superuser","geocortex","webgis","viewer","getmap","drives","contributory","jsld","webservices","compositions","geographically","apollo","customizations","demonstrations","deliverable's","thoughtonomy","authorisation","mpeg","hevc","iis","ioc","techleadcontract","vine","isp","wifi","cdns","memcached","squid","ntp","ssh","snmp","vbscript","xcode","nixon","jsmanualtester","brink","conversational","specialised","alexa","datacentres","etls","counhbase","infrastructures","unparalleled","vulnerabilities","scms","odba","directorates","underperforming","operationally","complementing","conversations","consultation","synchronising","inequalities","antimicrobial","inappropriate","prescription","commissioned","anticipating","adaptability","rehabilitation","mozaic","orchestrated","referenceable","bibliographic","polyglot","frames","customizable","department's","patton","curves","nottinghamshire","extensibility","datamodel","underrepresented","commensurate","storytelling","legislations","multivariate","containerization","containerized","participants","instructional","achievements","arrangements","unmodernised","disabilities","services@justice","enquiries@gov","representative","tablets","preprocessors","requirejs","instrumental","consistencies","standardising","investigator","investigators","encode","statistician","sopal@harringtonstarr","entreprenuers","epics","mstech","aosp","mercurial","kitkat","vxrail","appliance","proxy","resynchronization","vcentre","vxlans","vxlan","hosts","proxies","distributions","jsbsdevsecopsapigee","normalisation","certificates","threejs","tuxedo","constructing","recomendations","restructuring","preferential","crime","encompassing","middlesbrough","productising","departmental","sesamedesign","linq","mcguffin","jsappinfo","fsdev","grok","inefficiency","vulnerability","proportionate","policyholders","macro","jurisdictional","expressroute","jsinfoaystnhs","accreditation","corporations","jsshopify","notification","govt","geoserver","desirability","questionnaires","walkthroughs","synthesizing","bigdata","gazelle","pcie","vpx","assembly","firmware","microprocessors","rtos","vhdl","verilog","acls","ruleset","environmental","collaborates","webflow","rabbit","delphi","clarifications","standardization","automatization","–nodejs","nextjs","evolutionary","editor","establishing","dedupe","headquarters","sqlite","gitbucket","recommending","implantation","implentation","concurrencies","manipulations","hybrids","jsdl","xenapp","terminologies","rhapsody","accomplishment","foundational","responsiveness","practitioners","priyadarsini","surprisingly","interested!","extraordinaire","shikha_software","intermediaries","investigations","developement","shikha_spark","computedb","intergration","buckets","personalization","persuasively","standardisation","webcenter","modification","recommendation","intranet","swql","sinon","chai","decomposition","groundbreaking","mesh","exceptionless","classification","yaml","postcss","babel","eslint","maria","ddfc","sparkcontext","jsux","classic","que","sensor","mindsphere","jslb_cloudplatform_sidestep","typescipt","sysops","citric","decommission","sphere","netbackup","jserve_winsysops_sm","lemp","vuetify","kotli","typecript","micoservice","containerised","constituents","foss","anthropology","freelancer","joomla","multitasking","academically","establishment","encountering","observerships","transitioned","scripted","virtualization","restapis","interrogates","serverside","postgress","peterborough","debugger","deeptech","productionising","browserstack","scottish","retrospectively","disappointment","probationary","partitioning","javare","leicestershire","iimplementation","organization's","@beitresourcing","sustainability","technology's","props","immutability","reproducible","ualifications","promoveritas","competitions","haproxy","configurator","nonsql","unauthorised","breakthroughs","determinations","routers","savethechildren","donnelly","netbeans","dbms","decommissioning","@searchablechris","openapi","ellipse","jsdev","instrumentation","kubernets","hackers","sensors","streamlining","solaris","interviewers","interdependent","standardized","meritocratic","cmake","subcontractor","opengl","directx","activex","balancer","keyvault","merchandising","controllership","multibillion","consideration!","enterpriseanalytics","advancements","storevirtual","trajectories","jsinteraction","consequences","characterised","jswminteractionlon","requisitions","markdown","contractsonline","geek","capitalization","transformational","personalised","revolutionises","manufactures","electrochemistry","registrations","flux","multithreading","octopusdeploy","resharper","aria","axios","unstructured","interestplease","preferableclients","personalities","governanance","xunit","netcore","successfactors","systemsaccountants","xapi","rdbs","pragmatically","restapi","polygot","collaborator","mozilla","bde","tcpip","ghost","jsap","@searchableolly","orginisation","vbs","repo","centralisation","fpga","vlan","jspfwireless","nfrastructure","centralising","unprecedented","reputational","peterbourogh","rdms","reachjs","broadcasting","multifunctional","supermarkets","operationalisation","webapps","london's","revolutionising","duping","consequentially","struts","jboss","assocciation","clydebank","switch","descriptions","motif","considerably","unify","typographical","illustration","diversification","jardinemotors","diversityandinclusion","physiological","communicative","eventsourcing","cswain@redlinegroup","phenomenally","flextrade","tinymce","methodically","quantifiable","multienvironmental","preproduction"] +["native","engineer","client","fintech","frontend","tools","distributed","complex","systems","understandable","ui","trading","technical","software","net","elastic","microservices","rabbitmq","dynamodb","sns","webapi","git","angular","database","project","application","scratch","requirements","tdd","estamp","c#","server","pdf","stamp","development","html","css","architect","programming","python","amazon","google","apigee","kubernetes","lambda","api","manager","micro","oracle","code","spark","apache","typescript","elasticsearch","data","blockchain","accessibility","browser","compatibility","mobile","programmer","finance","apps","ember","restful","apis","infrastructure","wordpress","lamp","php","med","applications","architecture","asp","refactor","c","ios","sdk","browsers","devices","app","central","angularjs","digital","stakeholders","analytics","query","dashboarding","online","analyse","dashboards","bigquery","pub","sub","dataflow","scripting","jenkins","hosting","compute","storage","networking","protocols","ip","routing","firewall","virtual","private","loadbalancer","dns","cdn","contractwork","specialising","understanding","sdlc","methods","experiencing","databases","enhancements","technologies","programme","organisation","successfully","organisationally","functionality","toad","testing","patch","implementation","configuration","modules","customisations","ftp","sms","organisations","methodologies","banking","specifically","responsibilities","controllerview","sql·","communicatordesirables","regulationsif","axiomslldnjob","interchangeably","administering","coding","reconciliation","transactions","administration","reconciliations","subsidiaries","confirmations","professional","function","communication","organisational","excel","intermediate","communications","grammatically","contractually","international","multinational","opportunities","responsibility","volunteering","carbon","characteristics","sketch","typography","visual","productivity","modeller","model","modellinggood","desirablefluent","ibm","hadoop","olap","db","visualization","representation","models","templates","patterns","frameworks","ingestion","availability","elasticity","ecosystems","etl","azure","devops","collaboration","cms","scotland","functions","transform","collaborative","framework","nhibernate","lifecycle","specification","appointments","optimization","mac","android","www","defraggler","speccy","aspirational","utility","significantly","automated","integrations","transformations","esp","personalized","emails","demonstrable","integrate","bugs","spec","document","specifications","redesign","carts","geeks","https","requirementsknowledge","bootstrap","jquery","backbone","reactjswebsockets","jsoncross","practicesexperience","wordpresssolid","skillsfluent","englishresponsibilitiesdevelopment","windows","macos","refactoring","opportunitiesflexible","hoursreference","fullstack","contractexperience","governmental","websites","portals","api’s","automate","querying","presentations","investigative","portal","autonomously","environments","terraform","organization","laravel","aurora","dba","implementing","linux","northamptonshire","bedfordshire","pivotal","streams","optimisations","partnerships","segmentation","programmatic","resolve","qualifications","niederdorfer","londoncontractdaily","transformation","libor","discontinuation","transactional","managercreating","scripts","testsextracting","systemperform","verification","errors","testers","smesensuring","expectationspre","scenariospresenting","offproviding","requiredtesting","appropriatelythe","advantageous","mathematical","vanilla","contractsalary","microsoft","stored","sass","ai","engineers","nlp","contribution","publications","architectures","peer","communicator","sysadmin","redis","kafka","zeromq","nosql","cloudformation","particularly","pytorch","array","temps","civil","dscrocontribute","sourcescontribute","troubleshooting","“housekeeping”","levelextensive","intermediary","wireframes","prototypes","typographyexperience","skillsproficiency","prototyping","axure","invisionexperience","prototypesgood","trendsunderstanding","prolancer","hourscontract","permanentsalary","yearexperience","magento","datawarehouse","admin","datawarehousing","edinburgh","calibre","manufacturer","mainframe","mssql","postgres","operating","independence","compromising","aptitude","spreadsheets","triggers","debugging","tuning","architected","webassembly","ssrs","subscriptions","ssas","warehousing","iosmobile","xml","json","svn","debug","cycle","considerable","satisfactory","buckinghamshire","powershell","perl","bourne","korn","shells","jsp","vtl","soap","cli","selenium","electron","alternatives","toolsets","eclipse","jira","ldap","circular","developerjob","contractjob","description·","reactjs·","ajax","ecma","jestjob","dayexperience","establishments","collaborating","bdd","environmentshas","correctedproviding","andexperience","environmentoracle","sqlbdd","boot","microservicestesting","hermesjmsrestassuredreadyapi","equivalentexperience","webpage","sassexperience","designability","mock","prototypesexcellent","abilitiesstrong","interpersonal","playerdegree","mysq","kotlin","fundamentals","discriminate","doingcombining","requirementsdesigning","aestheticsresearching","projectstaking","teamcollaborating","differenceresponsibilitiesas","experiencesensuring","standardscollaborating","visionunderstand","psychologyconduct","feedbackcreate","maps","lifecommunicate","developerskeep","toolsrequirementsa","platformsstrong","projectsbackground","researchfamiliarity","architectureproblem","aptitudeanalytical","acumenexcellent","skillsworking","advantagesknowledge","axureenthusiasm","independently","necessaryknowledge","londonflexible","hoursopportunity","bonusesattendance","accommodation","includedtraining","neededinternational","necessarypaid","daysrefreshments","officemacbook","acclimatedtrust","entrepreneurs","plugins","demonstrated","acquisitions","capitalising","opportunitiesprofit","patches","documentation","servers","orchestration","relationship","intelligence","enthusiastic","professionals","transformative","saas","contributing","interpretation","scrum","simultaneous","certifications","revolutionise","virus","requiredapidatabase","architecturedatabase","applicationwebsite","developmentapi","integrationux","languagesjavascriptphppythonhtml","csshtmldatabasesmysqlfull","skillsbootstrap","contractapplication","monthexperience","androidthings","api's","hyper","network","prerequisite","objects","skillsproven","xslt","toolkit","xssiknowledge","standardsexperience","repositories","bug","ncarolan@mcgregor","png","employmenttype","hiringorganization","url","postaladdress","addresslocality","addressregion","streetaddress","monetaryamount","propertyvalue","visualisations","disciplinary","sites","xssi","npm","solutionssoftware","solutionstesting","abovegeneration","estimatestesting","functionalityadherence","practicesaccurately","leadershipsupporting","activitiesproduction","documentationparticipation","productsconfiguration","qualification","desktop","rcp","additionally","middleware","environmentsobject","umlmicrosoft","webgl","architectural","optimisation","embedding","dataops","visualisation","mining","kanban","provisioning","teradata","mongo","reassignment","quantitative","quant","distribution","library","knowledgeable","architectjob","architecting","servicesgood","bigtable","datastore","paas","hybrid","integrationjob","participating","disaster","recovery","foundation’s","recommendations","simplistically","vmware","iso","presentation","forms","kaleidoscope","multidiscipline","satigo","modeling","profitability","responsibilitiesanalyze","analytic","programsestablish","benchmarking","executionmonthly","executioneducation","experiencestrong","skillsdetail","executiondependable","motivatedexcellent","abilitytableau","consideration","dressreference","pricingconsultantjob","pharmaceutical","systemparticipates","conversation","participates","facilitation","clarification","constructive","askedidentifies","similarminimum","methodologiesproficient","peoplefluent","coordinating","ansible","bitbucket","mapping","clouds","calculations","connectivity","vpn","express","firewalls","razor","rdbms","powerbiexperience","snowflake","warehouseexperience","kafkasexperienced","experiencemust","troubleshoot","sourceenthusiastic","individualdesirable","experiencemicrosoft","experienceknowledge","environmentbackground","platformsexperience","pythonexperienced","dataflows","fuzzy","matchingexperience","platformstatistics","systemsbuild","objectivesensure","practicestest","solutionssupport","platformmaintain","servicesimplement","datareference","permanentexperience","lambethcontract","commissioning","knowledgedemonstrable","appreciation","legislationdetailed","requirementsqualificationsa","responsibilitiesbuild","maintainable","serviceswork","collaboratively","dev","designsproduce","interactions","teamdevelopment","vba","technologiesdevelopment","spikes","conceptsdemonstration","criteriaparticipation","participation","retro","estimatessupport","componentsmandatory","pythonsqlworking","apisdev","experiencepytestunit","testsexposure","methodologiesdesirable","analyticsjava","testingopenshift","kubernetesspringboot","reactiveexcel","vbdata","graph","mappingfamiliarity","solutionsgit","pipelinesdomain","tomcat","administrator","mongodb","pixel","experiencework","communicating","standardswork","portfoliogood","symbolsexperience","ccexperience","guidelinescreative","itunderstanding","javascriptsantander","descriptionjob","architectcontract","lesslocation","assessmentreview","performanceknowledge","analysistarget","interventions","resiliencesensitive","stakeholdersmicrosoft","certification","mangerremoteendeavour","managementserver","upgradeshardware","upgradessecurity","firewallslan","directoryexchangesql","serverwindowsfurther","opportunitiesjob","gitlab","xhtml","serverweb","enviromentproven","unsuccessful","開発エンジニア【求人概要】","日系itベンダーが金融機関でのit技術者マイクロソフト系開発エンジニアを募集【勤務地】ロンドン","大手メガバンクのシステム部門・企画部門に常駐する","【勤務地】ロンドン【仕事内容】・c#","での開発・開発チームでのリーダーもしくは教育担当・業務分析、業務改善提案などプロジェクト推進のための開発要望事項の取りまとめ・海外拠点間","における開発スケジュールや開発仕様の調整【応募条件】・itバックグラウンド必須・金融システム開発経験歓迎・mysql","sql、phpの使用経験優遇【語学力】母国語レベルの日本語、英語中級レベル","必須【ビザ】・英国で正規で労働可能なビザを保持している方優遇・適任者にはビザ・スポンサーあり","※弊社では、新型コロナウィルス対策のため、在宅勤務を実施しております。ご不便お掛け致しますが、お問い合わせ頂く際は、メールにてご連絡お願い致します。当社担当者より折り返しご連絡させて頂きます。","schemereference","unix","font","contractor","device","campaignstroubleshoot","reportingcreate","toolsregularly","modifications","tags","flashtalking","redevelopment","geo","illegalities","internet","rainforestfoundationuk","redevelopment’","hoursapplication","mapbox","alternatively","internationally","comprehensive","unsupervised","correspondence","confidentiality","computerised","simultaneously","descriptionthe","chaotic","descriptionwe","freelance","softwarebenefits","hourexperience","descriptiondue","ruby","technologystrong","growthability","attitudebenefit","dotnet","itil","matrix","stirling","organisationhands","skillsunderstanding","verbalability","summaryexperience","locationsstrong","undergraduates","documents","capabilities","manufacturing","institutions","configure","recursive","tables","ubuntu","whisperclaims","consultative","relationships","businessobjects","historically","meta","datastage","contributors","nasa","cyber","intellectually","knockout","differentiating","glasgow","scotland's","distributing","xamarin","intel","macosx","redhat","suse","meteor","contemporary","econometrics","jsriskmanager","manipulation","demonstratable","appropriately","visualizations","deliverables","developments","sybase","osql","olinux","dependencies","powerpoint","turnkey","coordination","cancellation","collectively","allegisgroup","dhcp","restrictions","scss","gui","accomplished","statistically","jqueryui","cancellations","intervention","transportation","counterparts","pivot","compensation","highlighting","technologist","hires","communicates","determination","ethical","databricks","telecommunications","functionally","interoperability","minimisation","pseudonymisation","websocket","kubernetesyaml","bash","introduction","extraordinary","webdriver","cypress","microservice","postman","developed","metropolitan","xilinx","industrialization","datahub","schema","commit","plsql","cursors","lambdas","gateway","sqs","jsam","jsreact","mq","records","confidential","computappoint","warwickshire","demonstrating","conferencing","wlan","complimentary","xmapp","rails","customization","javasscript","efficiencies","customisation","identification","dom","grunt","lynx","scrums","retrospectives","prioritization","xaml","authentication","codes","deb","scraping","manufacturers","technologists","tape","datamodelling","personality!","spa","gis","geojson","transferrable","commercially","expectations","aggressively","hosted","oauth","swagger","kubternetes","iotl","interdependencies","subscription","csv","callbacks","entrepreneurial","threads","rpc","jsed","influxdb","occasionally","chef","http","scopes","contributions","appsync","stageinterviews","elasitcsearch","representing","transferable","prioritisation","jsjbcybersec","multidisciplinary","canary","scala","junit","github","ssl","gatling","cucumber","gherkin","personalisation","manipulating","bracket","consultancies","audio","jest","karma","protractor","chartjs","gitflow","jsangular","implementations","simplification","telco","organizations","implications","shareholders","facilitating","increasingly","administratoryou","investigation","connectors","filters","folders","void","compile","routine","promise","discriminatory","dbs","construction","schemes","schemas","recognisable","preact","arrays","variables","oraclehcm","hertfordshire","notwithstanding","competencies","bot","interconnecting","bots","chatbots","corresponding","multithreaded","ui's","jsreactsccleared","conceptually","sparksql","angluarjs","mariadb","nestjs","heroku","adb","module","specializing","mscrm","shortlisting","cordova","phonegap","ionic","openui","escript","improvements","cognos","webservice","interconnected","accountability","investigating","conceptualizing","widgets","layouts","predict","individuality","unfortunately","practitioner","cosmosdb","scott@nigelfrank","morgan","conventional","jira's","institutional","sammonspensions","contracts","representatives","transforming","subsequently","jswebopscontract","eccomerce","github's","proportionately","acknowledged","replatforming","incorporating","communicators","headquartered","automatable","containerisation","effectiveness","interpreting","lookups","personalisations","gatsby","monolithic","headless","collaborativley","consolidation","gloucestershire","professionally","accountabilities","continuously","firebase","strategically","sophisticated","balsamic","graphical","supportability","dissemination","laptopaccess","northallerton","virtualisation","multiplatform","superintendent","metallurgist","prioritizing","jsnkprodmandalon","microservces","experimenting","amplify","pwa","natively","responsibilites","websockets","university's","administrative","cache","reddis","synapse","toolchains","exploitation","jsazure","ticks","embedded","immediately!","synchronization","mutex","memory","webpack","mockups","commercialization","differentiated","propositions","commercialisation","installation","mobilisation","homelessness","discrimination","balsamiq","safeguarding","abuse","repos","optimizations","golang","async","cambridgeshire","compsci","individually","consistently","multimedia","organizational","circumstances","automaton","engines","toolset","preventative","stripe","widgit","webapp","nunit","mstest","vscode","jsqwcrmlesftdev","reactive","geographical","forestresearch","gov","incorporated","presentational","kubernetese","auth","multichannel","prototype","geospatial","entertainment","microstrategy","analytically","couchbase","erlang","jscouchbase","informatique","informatiques","actuellement","obligatoires","significative","connaissance","environnement","sonar","atlassian","springmvc","optionnelles","informations","professionnel","contechauthor","approachable","cassandra","automatically","wireframe","surveillance","dataset","undergraduate","epidemiology","epidemiological","collaborators","characteristic","flutter","technological","hypertext","twitter","@contractswill","searchability","coder","chrome","jmeter","vsphere","vcenter","vcloud","universities","digitally","blogs","demographics","mcg","router","acrobat","appian","nodes","installations","wsdl","jdbc","null","commonwealth","agenda","registration","transferring","junk","spam","domino","progressively","jscloudarchitect","'interesting","bluewaveselect","revolutionary","microsrvices","jslinkaalinkcndk","jsdataintegrationdev","functionalities","accessibilit","intellij","sonarqube","responsabilit","connaissances","maintainability","manageability","authorization","sockets","tp_eseye_frontend","gestionnaire","modular","mule","responsibilies","gradle","paired","swift","cocoa","notifications","familiarisation","tailwind","webpacker","yarn","metadata","sparta","terabyte","satisfaction","reduction","commonalities","appreciating","constructively","articulating","render","allegorithmic","cinema","artistically","considerations","mustache","mocha","dramatically","christopherson","approximately","wcms","smartsourcing","neurodiverse","jsnkglobalconleadlon","compensating","interviewing","static","wastedataflow","contamination","odbc","interrogation","cart","physicalization","demonstrates","modularising","scfrontendev","exceptionally","xss","servicefabric","postgraduate","postgraduates","cybersecurity","coders","cryptographic","tagged","koltin","ethernet","@contractgeorge","wintel","hierarchical","configurations","opporutunity","advertisement","cosmeceutical","gcc","modernisation","gdpr","mobx","svg","localstorage","jsv","integration's","understandings","predominantly","rhel","centos","loadbalancing","middot","webdriverio","pascal","postresql","modernization","rdb","postgesql","openvms","systemv","modeler","formats","jsdata","digitalisation","technologically","friendliness","jamstack","webhooks","subnets","robotics","receptionist","compassionate","receptionists","instructions","routes","transparency","perspectives","gifs","cakephp","datawarehouses","wrigglesworth","[reinsurance","pm_insurance_london","iconic","webm","firetv","tvos","logstash","civilization","flex","transact","softwaredeveloper","underwriting","netc","biodiversity","superuser","geocortex","webgis","viewer","getmap","drives","contributory","jsld","webservices","compositions","geographically","apollo","customizations","demonstrations","deliverable's","thoughtonomy","authorisation","mpeg","hevc","iis","ioc","techleadcontract","vine","isp","wifi","cdns","memcached","squid","ntp","ssh","snmp","vbscript","xcode","nixon","jsmanualtester","brink","conversational","specialised","alexa","datacentres","etls","counhbase","infrastructures","unparalleled","vulnerabilities","scms","odba","directorates","underperforming","operationally","complementing","conversations","consultation","synchronising","inequalities","antimicrobial","inappropriate","prescription","commissioned","anticipating","adaptability","rehabilitation","mozaic","orchestrated","referenceable","bibliographic","polyglot","frames","customizable","department's","patton","curves","nottinghamshire","extensibility","datamodel","underrepresented","commensurate","storytelling","legislations","multivariate","containerization","containerized","participants","instructional","achievements","arrangements","unmodernised","disabilities","services@justice","enquiries@gov","representative","tablets","preprocessors","requirejs","instrumental","consistencies","standardising","investigator","investigators","encode","statistician","sopal@harringtonstarr","entreprenuers","epics","mstech","aosp","mercurial","kitkat","vxrail","appliance","proxy","resynchronization","vcentre","vxlans","vxlan","hosts","proxies","distributions","jsbsdevsecopsapigee","normalisation","certificates","threejs","tuxedo","constructing","recomendations","restructuring","preferential","crime","encompassing","middlesbrough","productising","departmental","sesamedesign","linq","mcguffin","jsappinfo","fsdev","grok","inefficiency","vulnerability","proportionate","policyholders","macro","jurisdictional","expressroute","jsinfoaystnhs","accreditation","corporations","jsshopify","notification","govt","geoserver","desirability","questionnaires","walkthroughs","synthesizing","bigdata","gazelle","pcie","vpx","assembly","firmware","microprocessors","rtos","vhdl","verilog","acls","ruleset","environmental","collaborates","webflow","rabbit","delphi","clarifications","standardization","automatization","–nodejs","nextjs","evolutionary","editor","establishing","dedupe","headquarters","sqlite","gitbucket","recommending","implantation","implentation","concurrencies","manipulations","hybrids","jsdl","xenapp","terminologies","rhapsody","accomplishment","foundational","responsiveness","practitioners","priyadarsini","surprisingly","interested!","extraordinaire","shikha_software","intermediaries","investigations","developement","shikha_spark","computedb","intergration","buckets","personalization","persuasively","standardisation","webcenter","modification","recommendation","intranet","swql","sinon","chai","decomposition","groundbreaking","mesh","exceptionless","classification","yaml","postcss","babel","eslint","maria","ddfc","sparkcontext","jsux","classic","que","sensor","mindsphere","jslb_cloudplatform_sidestep","typescipt","sysops","citric","decommission","sphere","netbackup","jserve_winsysops_sm","lemp","vuetify","kotli","typecript","micoservice","containerised","constituents","foss","anthropology","freelancer","joomla","multitasking","academically","establishment","encountering","observerships","transitioned","scripted","virtualization","restapis","interrogates","serverside","postgress","peterborough","debugger","deeptech","productionising","browserstack","scottish","retrospectively","disappointment","probationary","partitioning","javare","leicestershire","iimplementation","organization's","@beitresourcing","sustainability","technology's","props","immutability","reproducible","ualifications","promoveritas","competitions","haproxy","configurator","nonsql","unauthorised","breakthroughs","determinations","routers","savethechildren","donnelly","netbeans","dbms","decommissioning","@searchablechris","openapi","ellipse","jsdev","instrumentation","kubernets","hackers","sensors","streamlining","solaris","interviewers","interdependent","standardized","meritocratic","cmake","subcontractor","opengl","directx","activex","balancer","keyvault","merchandising","controllership","multibillion","consideration!","enterpriseanalytics","advancements","storevirtual","trajectories","jsinteraction","consequences","characterised","jswminteractionlon","requisitions","markdown","contractsonline","geek","capitalization","transformational","personalised","revolutionises","manufactures","electrochemistry","registrations","flux","multithreading","octopusdeploy","resharper","aria","axios","unstructured","interestplease","preferableclients","personalities","governanance","xunit","netcore","successfactors","systemsaccountants","xapi","rdbs","pragmatically","restapi","polygot","collaborator","mozilla","bde","tcpip","ghost","jsap","@searchableolly","orginisation","vbs","repo","centralisation","fpga","vlan","jspfwireless","nfrastructure","centralising","unprecedented","reputational","peterbourogh","rdms","reachjs","broadcasting","multifunctional","supermarkets","operationalisation","webapps","london's","revolutionising","duping","consequentially","struts","jboss","assocciation","clydebank","switch","descriptions","motif","considerably","unify","typographical","illustration","diversification","jardinemotors","diversityandinclusion","physiological","communicative","eventsourcing","cswain@redlinegroup","phenomenally","flextrade","fulltime","origination","cao","spreading","timesheet","clojure","stablelogic","materialui","wage","triaging","javascipt","prop","influential","herselman","orbis","jsmh","doncaster","hursley","redevelop","syssc","frg","webrtc","icecast","mmt","toolchain","inputting","embrace","bearing","motivates","fairness","commercialism","tolerate","bullying","intimidation","happens","celebrating","passionately","fun!","bacardi","bp","comparethemarket","honest","msq","drum","recommends","picked","prix","successive","negative","pledge","extends","specialisation","verticals","abound","rank","ukoug","oic","fbdi","bipublsiher","otbi","prescribed","oum","adi","ame","obiee","obia","ev","cld","ocl","permits","suzanne","whelan","tel","netcool","sevone","neo","appdynamics","showcases","odevelop","onetwork","topologies","corba","bgp","odatabase","oone","oexperience","ointerest","onetworking","obig","omachine","ocontinuous","rationalise","cluttered","inefficient","mga","icons","delight","obsessive","mavis","workplaces","folio","sincerely","inventively","concepting","branded","brave","tactics","hearts","beating","flowing","spanning","toe","miles","npb","▪","kevin","·good","·strong","complexities","indefinite","bl","expericne","magconrem","lightweight","separation","binding","helpers","subtle","lookig","guis"]