diff --git a/package.json b/package.json index bbda83d5d5d6..e5ab1ac6e348 100644 --- a/package.json +++ b/package.json @@ -565,6 +565,7 @@ "@welldone-software/why-did-you-render": "^5.0.0", "@yarnpkg/lockfile": "^1.1.0", "abab": "^2.0.4", + "aggregate-error": "^3.1.0", "angular-aria": "^1.8.0", "angular-mocks": "^1.7.9", "angular-recursion": "^1.0.5", diff --git a/packages/kbn-es-archiver/src/actions/empty_kibana_index.ts b/packages/kbn-es-archiver/src/actions/empty_kibana_index.ts index 56c75c5aca41..db7c79c7dfc5 100644 --- a/packages/kbn-es-archiver/src/actions/empty_kibana_index.ts +++ b/packages/kbn-es-archiver/src/actions/empty_kibana_index.ts @@ -6,7 +6,7 @@ * Public License, v 1. */ -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { ToolingLog, KbnClient } from '@kbn/dev-utils'; import { migrateKibanaIndex, createStats, cleanKibanaIndices } from '../lib'; diff --git a/packages/kbn-es-archiver/src/actions/load.ts b/packages/kbn-es-archiver/src/actions/load.ts index 8afd7d79a98f..cf41594e3c1d 100644 --- a/packages/kbn-es-archiver/src/actions/load.ts +++ b/packages/kbn-es-archiver/src/actions/load.ts @@ -10,7 +10,7 @@ import { resolve } from 'path'; import { createReadStream } from 'fs'; import { Readable } from 'stream'; import { ToolingLog, KbnClient } from '@kbn/dev-utils'; -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { createPromiseFromStreams, concatStreamProviders } from '@kbn/utils'; @@ -92,7 +92,7 @@ export async function loadAction({ await client.indices.refresh({ index: '_all', - allowNoIndices: true, + allow_no_indices: true, }); // If we affected the Kibana index, we need to ensure it's migrated... diff --git a/packages/kbn-es-archiver/src/actions/save.ts b/packages/kbn-es-archiver/src/actions/save.ts index d88871f5b422..63b09ef8981a 100644 --- a/packages/kbn-es-archiver/src/actions/save.ts +++ b/packages/kbn-es-archiver/src/actions/save.ts @@ -9,7 +9,7 @@ import { resolve } from 'path'; import { createWriteStream, mkdirSync } from 'fs'; import { Readable, Writable } from 'stream'; -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { ToolingLog } from '@kbn/dev-utils'; import { createListStream, createPromiseFromStreams } from '@kbn/utils'; diff --git a/packages/kbn-es-archiver/src/actions/unload.ts b/packages/kbn-es-archiver/src/actions/unload.ts index 07cbf2aec39f..94b8387d3df0 100644 --- a/packages/kbn-es-archiver/src/actions/unload.ts +++ b/packages/kbn-es-archiver/src/actions/unload.ts @@ -9,7 +9,7 @@ import { resolve } from 'path'; import { createReadStream } from 'fs'; import { Readable, Writable } from 'stream'; -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { ToolingLog, KbnClient } from '@kbn/dev-utils'; import { createPromiseFromStreams } from '@kbn/utils'; diff --git a/packages/kbn-es-archiver/src/cli.ts b/packages/kbn-es-archiver/src/cli.ts index e3114b4e78cf..cba2a25b9e27 100644 --- a/packages/kbn-es-archiver/src/cli.ts +++ b/packages/kbn-es-archiver/src/cli.ts @@ -19,7 +19,7 @@ import Fs from 'fs'; import { RunWithCommands, createFlagError, KbnClient, CA_CERT_PATH } from '@kbn/dev-utils'; import { readConfigFile } from '@kbn/test'; -import legacyElasticsearch from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { EsArchiver } from './es_archiver'; @@ -115,10 +115,9 @@ export function runCli() { throw createFlagError('--dir or --config must be defined'); } - const client = new legacyElasticsearch.Client({ - host: esUrl, + const client = new Client({ + node: esUrl, ssl: esCa ? { ca: esCa } : undefined, - log: flags.verbose ? 'trace' : [], }); addCleanupTask(() => client.close()); diff --git a/packages/kbn-es-archiver/src/es_archiver.ts b/packages/kbn-es-archiver/src/es_archiver.ts index f101c5d6867f..9176de60544f 100644 --- a/packages/kbn-es-archiver/src/es_archiver.ts +++ b/packages/kbn-es-archiver/src/es_archiver.ts @@ -6,7 +6,7 @@ * Public License, v 1. */ -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { ToolingLog, KbnClient } from '@kbn/dev-utils'; import { diff --git a/packages/kbn-es-archiver/src/lib/docs/__mocks__/stubs.ts b/packages/kbn-es-archiver/src/lib/docs/__mocks__/stubs.ts deleted file mode 100644 index 3cdf3e24c328..000000000000 --- a/packages/kbn-es-archiver/src/lib/docs/__mocks__/stubs.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * and the Server Side Public License, v 1; you may not use this file except in - * compliance with, at your election, the Elastic License or the Server Side - * Public License, v 1. - */ - -import { Client } from 'elasticsearch'; -import sinon from 'sinon'; -import Chance from 'chance'; -import { times } from 'lodash'; - -import { Stats } from '../../stats'; - -const chance = new Chance(); - -export const createStubStats = (): Stats => - ({ - indexedDoc: sinon.stub(), - archivedDoc: sinon.stub(), - } as any); - -export const createPersonDocRecords = (n: number) => - times(n, () => ({ - type: 'doc', - value: { - index: 'people', - type: 'person', - id: chance.natural(), - source: { - name: chance.name(), - birthday: chance.birthday(), - ssn: chance.ssn(), - }, - }, - })); - -type MockClient = Client & { - assertNoPendingResponses: () => void; -}; - -export const createStubClient = ( - responses: Array<(name: string, params: any) => any | Promise> = [] -): MockClient => { - const createStubClientMethod = (name: string) => - sinon.spy(async (params) => { - if (responses.length === 0) { - throw new Error(`unexpected client.${name} call`); - } - - const response = responses.shift(); - return await response!(name, params); - }); - - return { - search: createStubClientMethod('search'), - scroll: createStubClientMethod('scroll'), - bulk: createStubClientMethod('bulk'), - - assertNoPendingResponses() { - if (responses.length) { - throw new Error(`There are ${responses.length} unsent responses.`); - } - }, - } as any; -}; diff --git a/packages/kbn-es-archiver/src/lib/docs/generate_doc_records_stream.test.ts b/packages/kbn-es-archiver/src/lib/docs/generate_doc_records_stream.test.ts index e28711ad140b..217c5aaf767f 100644 --- a/packages/kbn-es-archiver/src/lib/docs/generate_doc_records_stream.test.ts +++ b/packages/kbn-es-archiver/src/lib/docs/generate_doc_records_stream.test.ts @@ -6,128 +6,185 @@ * Public License, v 1. */ -import sinon from 'sinon'; -import { delay } from 'bluebird'; -import { createListStream, createPromiseFromStreams, createConcatStream } from '@kbn/utils'; +import { + createListStream, + createPromiseFromStreams, + createConcatStream, + createMapStream, + ToolingLog, +} from '@kbn/dev-utils'; import { createGenerateDocRecordsStream } from './generate_doc_records_stream'; import { Progress } from '../progress'; -import { createStubStats, createStubClient } from './__mocks__/stubs'; +import { createStats } from '../stats'; -describe('esArchiver: createGenerateDocRecordsStream()', () => { - it('scolls 1000 documents at a time', async () => { - const stats = createStubStats(); - const client = createStubClient([ - (name, params) => { - expect(name).toBe('search'); - expect(params).toHaveProperty('index', 'logstash-*'); - expect(params).toHaveProperty('size', 1000); - return { - hits: { - total: 0, - hits: [], - }, - }; - }, - ]); +const log = new ToolingLog(); - const progress = new Progress(); - await createPromiseFromStreams([ - createListStream(['logstash-*']), - createGenerateDocRecordsStream({ client, stats, progress }), - ]); - - expect(progress.getTotal()).toBe(0); - expect(progress.getComplete()).toBe(0); - }); - - it('uses a 1 minute scroll timeout', async () => { - const stats = createStubStats(); - const client = createStubClient([ - (name, params) => { - expect(name).toBe('search'); - expect(params).toHaveProperty('index', 'logstash-*'); - expect(params).toHaveProperty('scroll', '1m'); - expect(params).toHaveProperty('rest_total_hits_as_int', true); - return { - hits: { - total: 0, - hits: [], - }, - }; - }, - ]); - - const progress = new Progress(); - await createPromiseFromStreams([ - createListStream(['logstash-*']), - createGenerateDocRecordsStream({ client, stats, progress }), - ]); - - expect(progress.getTotal()).toBe(0); - expect(progress.getComplete()).toBe(0); - }); - - it('consumes index names and scrolls completely before continuing', async () => { - const stats = createStubStats(); - let checkpoint = Date.now(); - const client = createStubClient([ - async (name, params) => { - expect(name).toBe('search'); - expect(params).toHaveProperty('index', 'index1'); - await delay(200); - return { - _scroll_id: 'index1ScrollId', - hits: { total: 2, hits: [{ _id: 1, _index: '.kibana_foo' }] }, - }; - }, - async (name, params) => { - expect(name).toBe('scroll'); - expect(params).toHaveProperty('scrollId', 'index1ScrollId'); - expect(Date.now() - checkpoint).not.toBeLessThan(200); - checkpoint = Date.now(); - await delay(200); - return { hits: { total: 2, hits: [{ _id: 2, _index: 'foo' }] } }; - }, - async (name, params) => { - expect(name).toBe('search'); - expect(params).toHaveProperty('index', 'index2'); - expect(Date.now() - checkpoint).not.toBeLessThan(200); - checkpoint = Date.now(); - await delay(200); - return { hits: { total: 0, hits: [] } }; - }, - ]); - - const progress = new Progress(); - const docRecords = await createPromiseFromStreams([ - createListStream(['index1', 'index2']), - createGenerateDocRecordsStream({ client, stats, progress }), - createConcatStream([]), - ]); - - expect(docRecords).toEqual([ +it('transforms each input index to a stream of docs using scrollSearch helper', async () => { + const responses: any = { + foo: [ { - type: 'doc', - value: { - index: '.kibana_1', - type: undefined, - id: 1, - source: undefined, + body: { + hits: { + total: 5, + hits: [ + { _index: 'foo', _type: '_doc', _id: '0', _source: {} }, + { _index: 'foo', _type: '_doc', _id: '1', _source: {} }, + { _index: 'foo', _type: '_doc', _id: '2', _source: {} }, + ], + }, }, }, { - type: 'doc', - value: { - index: 'foo', - type: undefined, - id: 2, - source: undefined, + body: { + hits: { + total: 5, + hits: [ + { _index: 'foo', _type: '_doc', _id: '3', _source: {} }, + { _index: 'foo', _type: '_doc', _id: '4', _source: {} }, + ], + }, }, }, - ]); - sinon.assert.calledTwice(stats.archivedDoc as any); - expect(progress.getTotal()).toBe(2); - expect(progress.getComplete()).toBe(2); - }); + ], + bar: [ + { + body: { + hits: { + total: 2, + hits: [ + { _index: 'bar', _type: '_doc', _id: '0', _source: {} }, + { _index: 'bar', _type: '_doc', _id: '1', _source: {} }, + ], + }, + }, + }, + ], + }; + + const client: any = { + helpers: { + scrollSearch: jest.fn(function* ({ index }) { + while (responses[index] && responses[index].length) { + yield responses[index].shift()!; + } + }), + }, + }; + + const stats = createStats('test', log); + const progress = new Progress(); + + const results = await createPromiseFromStreams([ + createListStream(['bar', 'foo']), + createGenerateDocRecordsStream({ + client, + stats, + progress, + }), + createMapStream((record: any) => { + expect(record).toHaveProperty('type', 'doc'); + expect(record.value.source).toEqual({}); + expect(record.value.type).toBe('_doc'); + expect(record.value.index).toMatch(/^(foo|bar)$/); + expect(record.value.id).toMatch(/^\d+$/); + return `${record.value.index}:${record.value.id}`; + }), + createConcatStream([]), + ]); + + expect(client.helpers.scrollSearch).toMatchInlineSnapshot(` + [MockFunction] { + "calls": Array [ + Array [ + Object { + "_source": "true", + "body": Object { + "query": undefined, + }, + "index": "bar", + "rest_total_hits_as_int": true, + "scroll": "1m", + "size": 1000, + }, + ], + Array [ + Object { + "_source": "true", + "body": Object { + "query": undefined, + }, + "index": "foo", + "rest_total_hits_as_int": true, + "scroll": "1m", + "size": 1000, + }, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": Object {}, + }, + Object { + "type": "return", + "value": Object {}, + }, + ], + } + `); + expect(results).toMatchInlineSnapshot(` + Array [ + "bar:0", + "bar:1", + "foo:0", + "foo:1", + "foo:2", + "foo:3", + "foo:4", + ] + `); + expect(progress).toMatchInlineSnapshot(` + Progress { + "complete": 7, + "loggingInterval": undefined, + "total": 7, + } + `); + expect(stats).toMatchInlineSnapshot(` + Object { + "bar": Object { + "archived": false, + "configDocs": Object { + "tagged": 0, + "upToDate": 0, + "upgraded": 0, + }, + "created": false, + "deleted": false, + "docs": Object { + "archived": 2, + "indexed": 0, + }, + "skipped": false, + "waitForSnapshot": 0, + }, + "foo": Object { + "archived": false, + "configDocs": Object { + "tagged": 0, + "upToDate": 0, + "upgraded": 0, + }, + "created": false, + "deleted": false, + "docs": Object { + "archived": 5, + "indexed": 0, + }, + "skipped": false, + "waitForSnapshot": 0, + }, + } + `); }); diff --git a/packages/kbn-es-archiver/src/lib/docs/generate_doc_records_stream.ts b/packages/kbn-es-archiver/src/lib/docs/generate_doc_records_stream.ts index 7c236214fb03..a375753628e4 100644 --- a/packages/kbn-es-archiver/src/lib/docs/generate_doc_records_stream.ts +++ b/packages/kbn-es-archiver/src/lib/docs/generate_doc_records_stream.ts @@ -7,7 +7,7 @@ */ import { Transform } from 'stream'; -import { Client, SearchParams, SearchResponse } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { Stats } from '../stats'; import { Progress } from '../progress'; @@ -30,31 +30,26 @@ export function createGenerateDocRecordsStream({ readableObjectMode: true, async transform(index, enc, callback) { try { - let remainingHits = 0; - let resp: SearchResponse | null = null; + const interator = client.helpers.scrollSearch({ + index, + scroll: SCROLL_TIMEOUT, + size: SCROLL_SIZE, + _source: 'true', + body: { + query, + }, + rest_total_hits_as_int: true, + }); - while (!resp || remainingHits > 0) { - if (!resp) { - resp = await client.search({ - index, - scroll: SCROLL_TIMEOUT, - size: SCROLL_SIZE, - _source: true, - body: { - query, - }, - rest_total_hits_as_int: true, // not declared on SearchParams type - } as SearchParams); - remainingHits = resp.hits.total; + let remainingHits: number | null = null; + + for await (const resp of interator) { + if (remainingHits === null) { + remainingHits = resp.body.hits.total as number; progress.addToTotal(remainingHits); - } else { - resp = await client.scroll({ - scrollId: resp._scroll_id!, - scroll: SCROLL_TIMEOUT, - }); } - for (const hit of resp.hits.hits) { + for (const hit of resp.body.hits.hits) { remainingHits -= 1; stats.archivedDoc(hit._index); this.push({ @@ -70,7 +65,7 @@ export function createGenerateDocRecordsStream({ }); } - progress.addToComplete(resp.hits.hits.length); + progress.addToComplete(resp.body.hits.hits.length); } callback(undefined); diff --git a/packages/kbn-es-archiver/src/lib/docs/index_doc_records_stream.test.ts b/packages/kbn-es-archiver/src/lib/docs/index_doc_records_stream.test.ts index 0724cfd77096..a86359262bd4 100644 --- a/packages/kbn-es-archiver/src/lib/docs/index_doc_records_stream.test.ts +++ b/packages/kbn-es-archiver/src/lib/docs/index_doc_records_stream.test.ts @@ -6,170 +6,278 @@ * Public License, v 1. */ -import { delay } from 'bluebird'; -import { createListStream, createPromiseFromStreams } from '@kbn/utils'; +import { + createListStream, + createPromiseFromStreams, + ToolingLog, + createRecursiveSerializer, +} from '@kbn/dev-utils'; import { Progress } from '../progress'; import { createIndexDocRecordsStream } from './index_doc_records_stream'; -import { createStubStats, createStubClient, createPersonDocRecords } from './__mocks__/stubs'; +import { createStats } from '../stats'; -const recordsToBulkBody = (records: any[]) => { - return records.reduce((acc, record) => { - const { index, type, id, source } = record.value; +const AT_LINE_RE = /^\s+at /m; - return [...acc, { index: { _index: index, _type: type, _id: id } }, source]; - }, [] as any[]); -}; +expect.addSnapshotSerializer( + createRecursiveSerializer( + (v) => typeof v === 'string' && AT_LINE_RE.test(v), + (v: string) => { + const lines = v.split('\n'); + const withoutStack: string[] = []; -describe('esArchiver: createIndexDocRecordsStream()', () => { - it('consumes doc records and sends to `_bulk` api', async () => { - const records = createPersonDocRecords(1); - const client = createStubClient([ - async (name, params) => { - expect(name).toBe('bulk'); - expect(params).toEqual({ - body: recordsToBulkBody(records), - requestTimeout: 120000, - }); - return { ok: true }; - }, - ]); - const stats = createStubStats(); - const progress = new Progress(); + // move source lines to withoutStack, filtering out stacktrace lines + while (lines.length) { + const line = lines.shift()!; - await createPromiseFromStreams([ - createListStream(records), - createIndexDocRecordsStream(client, stats, progress), - ]); + if (!AT_LINE_RE.test(line)) { + withoutStack.push(line); + } else { + // push in representation of stack trace indented to match "at" + withoutStack.push(`${' '.repeat(line.indexOf('at'))}`); - client.assertNoPendingResponses(); - expect(progress.getComplete()).toBe(1); - expect(progress.getTotal()).toBe(undefined); - }); + // shift off all subsequent `at ...` lines + while (lines.length && AT_LINE_RE.test(lines[0])) { + lines.shift(); + } + } + } - it('consumes multiple doc records and sends to `_bulk` api together', async () => { - const records = createPersonDocRecords(10); - const client = createStubClient([ - async (name, params) => { - expect(name).toBe('bulk'); - expect(params).toEqual({ - body: recordsToBulkBody(records.slice(0, 1)), - requestTimeout: 120000, - }); - return { ok: true }; - }, - async (name, params) => { - expect(name).toBe('bulk'); - expect(params).toEqual({ - body: recordsToBulkBody(records.slice(1)), - requestTimeout: 120000, - }); - return { ok: true }; - }, - ]); - const stats = createStubStats(); - const progress = new Progress(); - - await createPromiseFromStreams([ - createListStream(records), - createIndexDocRecordsStream(client, stats, progress), - ]); - - client.assertNoPendingResponses(); - expect(progress.getComplete()).toBe(10); - expect(progress.getTotal()).toBe(undefined); - }); - - it('waits until request is complete before sending more', async () => { - const records = createPersonDocRecords(10); - const stats = createStubStats(); - const start = Date.now(); - const delayMs = 1234; - const client = createStubClient([ - async (name, params) => { - expect(name).toBe('bulk'); - expect(params).toEqual({ - body: recordsToBulkBody(records.slice(0, 1)), - requestTimeout: 120000, - }); - await delay(delayMs); - return { ok: true }; - }, - async (name, params) => { - expect(name).toBe('bulk'); - expect(params).toEqual({ - body: recordsToBulkBody(records.slice(1)), - requestTimeout: 120000, - }); - expect(Date.now() - start).not.toBeLessThan(delayMs); - return { ok: true }; - }, - ]); - const progress = new Progress(); - - await createPromiseFromStreams([ - createListStream(records), - createIndexDocRecordsStream(client, stats, progress), - ]); - - client.assertNoPendingResponses(); - expect(progress.getComplete()).toBe(10); - expect(progress.getTotal()).toBe(undefined); - }); - - it('sends a maximum of 300 documents at a time', async () => { - const records = createPersonDocRecords(301); - const stats = createStubStats(); - const client = createStubClient([ - async (name, params) => { - expect(name).toBe('bulk'); - expect(params.body.length).toEqual(1 * 2); - return { ok: true }; - }, - async (name, params) => { - expect(name).toBe('bulk'); - expect(params.body.length).toEqual(299 * 2); - return { ok: true }; - }, - async (name, params) => { - expect(name).toBe('bulk'); - expect(params.body.length).toEqual(1 * 2); - return { ok: true }; - }, - ]); - const progress = new Progress(); - - await createPromiseFromStreams([ - createListStream(records), - createIndexDocRecordsStream(client, stats, progress), - ]); - - client.assertNoPendingResponses(); - expect(progress.getComplete()).toBe(301); - expect(progress.getTotal()).toBe(undefined); - }); - - it('emits an error if any request fails', async () => { - const records = createPersonDocRecords(2); - const stats = createStubStats(); - const client = createStubClient([ - async () => ({ ok: true }), - async () => ({ errors: true, forcedError: true }), - ]); - const progress = new Progress(); - - try { - await createPromiseFromStreams([ - createListStream(records), - createIndexDocRecordsStream(client, stats, progress), - ]); - throw new Error('expected stream to emit error'); - } catch (err) { - expect(err.message).toMatch(/"forcedError":\s*true/); + return withoutStack.join('\n'); } + ) +); - client.assertNoPendingResponses(); - expect(progress.getComplete()).toBe(1); - expect(progress.getTotal()).toBe(undefined); +const log = new ToolingLog(); + +class MockClient { + helpers = { + bulk: jest.fn(), + }; +} + +const testRecords = [ + { + type: 'doc', + value: { + index: 'foo', + id: '0', + source: { + hello: 'world', + }, + }, + }, + { + type: 'doc', + value: { + index: 'foo', + id: '1', + source: { + hello: 'world', + }, + }, + }, + { + type: 'doc', + value: { + index: 'foo', + id: '2', + source: { + hello: 'world', + }, + }, + }, + { + type: 'doc', + value: { + index: 'foo', + id: '3', + source: { + hello: 'world', + }, + }, + }, +]; + +it('indexes documents using the bulk client helper', async () => { + const client = new MockClient(); + client.helpers.bulk.mockImplementation(async () => {}); + + const progress = new Progress(); + const stats = createStats('test', log); + + await createPromiseFromStreams([ + createListStream(testRecords), + createIndexDocRecordsStream(client as any, stats, progress), + ]); + + expect(stats).toMatchInlineSnapshot(` + Object { + "foo": Object { + "archived": false, + "configDocs": Object { + "tagged": 0, + "upToDate": 0, + "upgraded": 0, + }, + "created": false, + "deleted": false, + "docs": Object { + "archived": 0, + "indexed": 4, + }, + "skipped": false, + "waitForSnapshot": 0, + }, + } + `); + expect(progress).toMatchInlineSnapshot(` + Progress { + "complete": 4, + "loggingInterval": undefined, + "total": undefined, + } + `); + expect(client.helpers.bulk).toMatchInlineSnapshot(` + [MockFunction] { + "calls": Array [ + Array [ + Object { + "datasource": Array [ + Object { + "hello": "world", + }, + ], + "onDocument": [Function], + "onDrop": [Function], + "retries": 5, + }, + ], + Array [ + Object { + "datasource": Array [ + Object { + "hello": "world", + }, + Object { + "hello": "world", + }, + Object { + "hello": "world", + }, + ], + "onDocument": [Function], + "onDrop": [Function], + "retries": 5, + }, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": Promise {}, + }, + Object { + "type": "return", + "value": Promise {}, + }, + ], + } + `); +}); + +describe('bulk helper onDocument param', () => { + it('returns index ops for each doc', async () => { + expect.assertions(testRecords.length); + + const client = new MockClient(); + client.helpers.bulk.mockImplementation(async ({ datasource, onDocument }) => { + for (const d of datasource) { + const op = onDocument(d); + expect(op).toEqual({ + index: { + _index: 'foo', + _id: expect.stringMatching(/^\d$/), + }, + }); + } + }); + + const stats = createStats('test', log); + const progress = new Progress(); + + await createPromiseFromStreams([ + createListStream(testRecords), + createIndexDocRecordsStream(client as any, stats, progress), + ]); + }); + + it('returns create ops for each doc when instructed', async () => { + expect.assertions(testRecords.length); + + const client = new MockClient(); + client.helpers.bulk.mockImplementation(async ({ datasource, onDocument }) => { + for (const d of datasource) { + const op = onDocument(d); + expect(op).toEqual({ + create: { + _index: 'foo', + _id: expect.stringMatching(/^\d$/), + }, + }); + } + }); + + const stats = createStats('test', log); + const progress = new Progress(); + + await createPromiseFromStreams([ + createListStream(testRecords), + createIndexDocRecordsStream(client as any, stats, progress, true), + ]); + }); +}); + +describe('bulk helper onDrop param', () => { + it('throws an error reporting any docs which failed all retry attempts', async () => { + const client = new MockClient(); + let counter = -1; + client.helpers.bulk.mockImplementation(async ({ datasource, onDrop }) => { + for (const d of datasource) { + counter++; + if (counter > 0) { + onDrop({ + document: d, + error: { + reason: `${counter} conflicts with something`, + }, + }); + } + } + }); + + const stats = createStats('test', log); + const progress = new Progress(); + + const promise = createPromiseFromStreams([ + createListStream(testRecords), + createIndexDocRecordsStream(client as any, stats, progress), + ]); + + await expect(promise).rejects.toThrowErrorMatchingInlineSnapshot(` + " + Error: Bulk doc failure [operation=index]: + doc: {\\"hello\\":\\"world\\"} + error: {\\"reason\\":\\"1 conflicts with something\\"} + + Error: Bulk doc failure [operation=index]: + doc: {\\"hello\\":\\"world\\"} + error: {\\"reason\\":\\"2 conflicts with something\\"} + + Error: Bulk doc failure [operation=index]: + doc: {\\"hello\\":\\"world\\"} + error: {\\"reason\\":\\"3 conflicts with something\\"} + " + `); }); }); diff --git a/packages/kbn-es-archiver/src/lib/docs/index_doc_records_stream.ts b/packages/kbn-es-archiver/src/lib/docs/index_doc_records_stream.ts index f4e61a940c8c..f5d931946d49 100644 --- a/packages/kbn-es-archiver/src/lib/docs/index_doc_records_stream.ts +++ b/packages/kbn-es-archiver/src/lib/docs/index_doc_records_stream.ts @@ -6,7 +6,8 @@ * Public License, v 1. */ -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; +import AggregateError from 'aggregate-error'; import { Writable } from 'stream'; import { Stats } from '../stats'; import { Progress } from '../progress'; @@ -18,25 +19,39 @@ export function createIndexDocRecordsStream( useCreate: boolean = false ) { async function indexDocs(docs: any[]) { - const body: any[] = []; const operation = useCreate === true ? 'create' : 'index'; - docs.forEach((doc) => { - stats.indexedDoc(doc.index); - body.push( - { + const ops = new WeakMap(); + const errors: string[] = []; + + await client.helpers.bulk({ + retries: 5, + datasource: docs.map((doc) => { + const body = doc.source; + ops.set(body, { [operation]: { _index: doc.index, _type: doc.type, _id: doc.id, }, - }, - doc.source - ); + }); + return body; + }), + onDocument(doc) { + return ops.get(doc); + }, + onDrop(dropped) { + const dj = JSON.stringify(dropped.document); + const ej = JSON.stringify(dropped.error); + errors.push(`Bulk doc failure [operation=${operation}]:\n doc: ${dj}\n error: ${ej}`); + }, }); - const resp = await client.bulk({ requestTimeout: 2 * 60 * 1000, body }); - if (resp.errors) { - throw new Error(`Failed to index all documents: ${JSON.stringify(resp, null, 2)}`); + if (errors.length) { + throw new AggregateError(errors); + } + + for (const doc of docs) { + stats.indexedDoc(doc.index); } } diff --git a/packages/kbn-es-archiver/src/lib/indices/__mocks__/stubs.ts b/packages/kbn-es-archiver/src/lib/indices/__mocks__/stubs.ts index 4d42daa71ef2..de5fbd15c1f6 100644 --- a/packages/kbn-es-archiver/src/lib/indices/__mocks__/stubs.ts +++ b/packages/kbn-es-archiver/src/lib/indices/__mocks__/stubs.ts @@ -6,7 +6,7 @@ * Public License, v 1. */ -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import sinon from 'sinon'; import { ToolingLog } from '@kbn/dev-utils'; import { Stats } from '../../stats'; @@ -54,9 +54,11 @@ export const createStubDocRecord = (index: string, id: number) => ({ const createEsClientError = (errorType: string) => { const err = new Error(`ES Client Error Stub "${errorType}"`); - (err as any).body = { - error: { - type: errorType, + (err as any).meta = { + body: { + error: { + type: errorType, + }, }, }; return err; @@ -79,26 +81,25 @@ export const createStubClient = ( } return { - [index]: { - mappings: {}, - settings: {}, + body: { + [index]: { + mappings: {}, + settings: {}, + }, }, }; }), - existsAlias: sinon.spy(({ name }) => { - return Promise.resolve(aliases.hasOwnProperty(name)); - }), getAlias: sinon.spy(async ({ index, name }) => { if (index && existingIndices.indexOf(index) >= 0) { const result = indexAlias(aliases, index); - return { [index]: { aliases: result ? { [result]: {} } : {} } }; + return { body: { [index]: { aliases: result ? { [result]: {} } : {} } } }; } if (name && aliases[name]) { - return { [aliases[name]]: { aliases: { [name]: {} } } }; + return { body: { [aliases[name]]: { aliases: { [name]: {} } } } }; } - return { status: 404 }; + return { statusCode: 404 }; }), updateAliases: sinon.spy(async ({ body }) => { body.actions.forEach( @@ -110,14 +111,14 @@ export const createStubClient = ( } ); - return { ok: true }; + return { body: { ok: true } }; }), create: sinon.spy(async ({ index }) => { if (existingIndices.includes(index) || aliases.hasOwnProperty(index)) { throw createEsClientError('resource_already_exists_exception'); } else { existingIndices.push(index); - return { ok: true }; + return { body: { ok: true } }; } }), delete: sinon.spy(async ({ index }) => { @@ -131,7 +132,7 @@ export const createStubClient = ( } }); indices.forEach((ix) => existingIndices.splice(existingIndices.indexOf(ix), 1)); - return { ok: true }; + return { body: { ok: true } }; } else { throw createEsClientError('index_not_found_exception'); } diff --git a/packages/kbn-es-archiver/src/lib/indices/create_index_stream.test.ts b/packages/kbn-es-archiver/src/lib/indices/create_index_stream.test.ts index e90b94b27b09..ab8806c12039 100644 --- a/packages/kbn-es-archiver/src/lib/indices/create_index_stream.test.ts +++ b/packages/kbn-es-archiver/src/lib/indices/create_index_stream.test.ts @@ -56,15 +56,35 @@ describe('esArchiver: createCreateIndexStream()', () => { createCreateIndexStream({ client, stats, log }), ]); - expect((client.indices.getAlias as sinon.SinonSpy).calledOnce).toBe(true); - expect((client.indices.getAlias as sinon.SinonSpy).args[0][0]).toEqual({ - name: 'existing-index', - ignore: [404], - }); - expect((client.indices.delete as sinon.SinonSpy).calledOnce).toBe(true); - expect((client.indices.delete as sinon.SinonSpy).args[0][0]).toEqual({ - index: ['actual-index'], - }); + expect((client.indices.getAlias as sinon.SinonSpy).args).toMatchInlineSnapshot(` + Array [ + Array [ + Object { + "name": Array [ + "existing-index", + ], + }, + Object { + "ignore": Array [ + 404, + ], + }, + ], + ] + `); + + expect((client.indices.delete as sinon.SinonSpy).args).toMatchInlineSnapshot(` + Array [ + Array [ + Object { + "index": Array [ + "actual-index", + ], + }, + ], + ] + `); + sinon.assert.callCount(client.indices.create as sinon.SinonSpy, 3); // one failed create because of existing }); diff --git a/packages/kbn-es-archiver/src/lib/indices/create_index_stream.ts b/packages/kbn-es-archiver/src/lib/indices/create_index_stream.ts index d97147e2a611..6b31adfd8624 100644 --- a/packages/kbn-es-archiver/src/lib/indices/create_index_stream.ts +++ b/packages/kbn-es-archiver/src/lib/indices/create_index_stream.ts @@ -9,7 +9,7 @@ import { Transform, Readable } from 'stream'; import { inspect } from 'util'; -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { ToolingLog } from '@kbn/dev-utils'; import { Stats } from '../stats'; @@ -92,7 +92,10 @@ export function createCreateIndexStream({ return; } - if (err?.body?.error?.type !== 'resource_already_exists_exception' || attemptNumber >= 3) { + if ( + err?.meta?.body?.error?.type !== 'resource_already_exists_exception' || + attemptNumber >= 3 + ) { throw err; } diff --git a/packages/kbn-es-archiver/src/lib/indices/delete_index.ts b/packages/kbn-es-archiver/src/lib/indices/delete_index.ts index e42928da2566..597db5a980de 100644 --- a/packages/kbn-es-archiver/src/lib/indices/delete_index.ts +++ b/packages/kbn-es-archiver/src/lib/indices/delete_index.ts @@ -6,8 +6,7 @@ * Public License, v 1. */ -import { get } from 'lodash'; -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { ToolingLog } from '@kbn/dev-utils'; import { Stats } from '../stats'; @@ -17,35 +16,45 @@ const PENDING_SNAPSHOT_STATUSES = ['INIT', 'STARTED', 'WAITING']; export async function deleteIndex(options: { client: Client; stats: Stats; - index: string; + index: string | string[]; log: ToolingLog; retryIfSnapshottingCount?: number; }): Promise { - const { client, stats, index, log, retryIfSnapshottingCount = 10 } = options; + const { client, stats, log, retryIfSnapshottingCount = 10 } = options; + const indices = [options.index].flat(); const getIndicesToDelete = async () => { - const aliasInfo = await client.indices.getAlias({ name: index, ignore: [404] }); - return aliasInfo.status === 404 ? [index] : Object.keys(aliasInfo); + const resp = await client.indices.getAlias( + { + name: indices, + }, + { + ignore: [404], + } + ); + + return resp.statusCode === 404 ? indices : Object.keys(resp.body); }; try { const indicesToDelete = await getIndicesToDelete(); await client.indices.delete({ index: indicesToDelete }); - for (let i = 0; i < indicesToDelete.length; i++) { - const indexToDelete = indicesToDelete[i]; - stats.deletedIndex(indexToDelete); + for (const index of indices) { + stats.deletedIndex(index); } } catch (error) { if (retryIfSnapshottingCount > 0 && isDeleteWhileSnapshotInProgressError(error)) { - stats.waitingForInProgressSnapshot(index); - await waitForSnapshotCompletion(client, index, log); + for (const index of indices) { + stats.waitingForInProgressSnapshot(index); + } + await waitForSnapshotCompletion(client, indices, log); return await deleteIndex({ ...options, retryIfSnapshottingCount: retryIfSnapshottingCount - 1, }); } - if (get(error, 'body.error.type') !== 'index_not_found_exception') { + if (error?.meta?.body?.error?.type !== 'index_not_found_exception') { throw error; } } @@ -57,8 +66,8 @@ export async function deleteIndex(options: { * @param {Error} error * @return {Boolean} */ -export function isDeleteWhileSnapshotInProgressError(error: object) { - return get(error, 'body.error.reason', '').startsWith( +export function isDeleteWhileSnapshotInProgressError(error: any) { + return (error?.meta?.body?.error?.reason ?? '').startsWith( 'Cannot delete indices that are being snapshotted' ); } @@ -67,10 +76,16 @@ export function isDeleteWhileSnapshotInProgressError(error: object) { * Wait for the any snapshot in any repository that is * snapshotting this index to complete. */ -export async function waitForSnapshotCompletion(client: Client, index: string, log: ToolingLog) { +export async function waitForSnapshotCompletion( + client: Client, + index: string | string[], + log: ToolingLog +) { const isSnapshotPending = async (repository: string, snapshot: string) => { const { - snapshots: [status], + body: { + snapshots: [status], + }, } = await client.snapshot.status({ repository, snapshot, @@ -81,10 +96,13 @@ export async function waitForSnapshotCompletion(client: Client, index: string, l }; const getInProgressSnapshots = async (repository: string) => { - const { snapshots: inProgressSnapshots } = await client.snapshot.get({ + const { + body: { snapshots: inProgressSnapshots }, + } = await client.snapshot.get({ repository, snapshot: '_current', }); + return inProgressSnapshots; }; diff --git a/packages/kbn-es-archiver/src/lib/indices/delete_index_stream.ts b/packages/kbn-es-archiver/src/lib/indices/delete_index_stream.ts index 1b3b09afb783..95633740032f 100644 --- a/packages/kbn-es-archiver/src/lib/indices/delete_index_stream.ts +++ b/packages/kbn-es-archiver/src/lib/indices/delete_index_stream.ts @@ -7,7 +7,7 @@ */ import { Transform } from 'stream'; -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { ToolingLog } from '@kbn/dev-utils'; import { Stats } from '../stats'; diff --git a/packages/kbn-es-archiver/src/lib/indices/generate_index_records_stream.test.ts b/packages/kbn-es-archiver/src/lib/indices/generate_index_records_stream.test.ts index e60e6b6d4771..a526039df45d 100644 --- a/packages/kbn-es-archiver/src/lib/indices/generate_index_records_stream.test.ts +++ b/packages/kbn-es-archiver/src/lib/indices/generate_index_records_stream.test.ts @@ -44,8 +44,8 @@ describe('esArchiver: createGenerateIndexRecordsStream()', () => { ]); const params = (client.indices.get as sinon.SinonSpy).args[0][0]; - expect(params).toHaveProperty('filterPath'); - const filters: string[] = params.filterPath; + expect(params).toHaveProperty('filter_path'); + const filters: string[] = params.filter_path; expect(filters.some((path) => path.includes('index.creation_date'))).toBe(true); expect(filters.some((path) => path.includes('index.uuid'))).toBe(true); expect(filters.some((path) => path.includes('index.version'))).toBe(true); diff --git a/packages/kbn-es-archiver/src/lib/indices/generate_index_records_stream.ts b/packages/kbn-es-archiver/src/lib/indices/generate_index_records_stream.ts index c1ff48e19744..2e624ef7adba 100644 --- a/packages/kbn-es-archiver/src/lib/indices/generate_index_records_stream.ts +++ b/packages/kbn-es-archiver/src/lib/indices/generate_index_records_stream.ts @@ -7,7 +7,7 @@ */ import { Transform } from 'stream'; -import { Client } from 'elasticsearch'; +import { Client } from '@elastic/elasticsearch'; import { Stats } from '../stats'; export function createGenerateIndexRecordsStream(client: Client, stats: Stats) { @@ -16,26 +16,30 @@ export function createGenerateIndexRecordsStream(client: Client, stats: Stats) { readableObjectMode: true, async transform(indexOrAlias, enc, callback) { try { - const resp = (await client.indices.get({ - index: indexOrAlias, - filterPath: [ - '*.settings', - '*.mappings', - // remove settings that aren't really settings - '-*.settings.index.creation_date', - '-*.settings.index.uuid', - '-*.settings.index.version', - '-*.settings.index.provided_name', - '-*.settings.index.frozen', - '-*.settings.index.search.throttled', - '-*.settings.index.query', - '-*.settings.index.routing', - ], - })) as Record; + const resp = ( + await client.indices.get({ + index: indexOrAlias, + filter_path: [ + '*.settings', + '*.mappings', + // remove settings that aren't really settings + '-*.settings.index.creation_date', + '-*.settings.index.uuid', + '-*.settings.index.version', + '-*.settings.index.provided_name', + '-*.settings.index.frozen', + '-*.settings.index.search.throttled', + '-*.settings.index.query', + '-*.settings.index.routing', + ], + }) + ).body as Record; for (const [index, { settings, mappings }] of Object.entries(resp)) { const { - [index]: { aliases }, + body: { + [index]: { aliases }, + }, } = await client.indices.getAlias({ index }); stats.archivedIndex(index, { settings, mappings }); diff --git a/packages/kbn-es-archiver/src/lib/indices/kibana_index.ts b/packages/kbn-es-archiver/src/lib/indices/kibana_index.ts index e478c59bae01..2fe9d963e5de 100644 --- a/packages/kbn-es-archiver/src/lib/indices/kibana_index.ts +++ b/packages/kbn-es-archiver/src/lib/indices/kibana_index.ts @@ -6,7 +6,9 @@ * Public License, v 1. */ -import { Client, CreateDocumentParams } from 'elasticsearch'; +import { inspect } from 'util'; + +import { Client } from '@elastic/elasticsearch'; import { ToolingLog, KbnClient } from '@kbn/dev-utils'; import { Stats } from '../stats'; import { deleteIndex } from './delete_index'; @@ -57,13 +59,17 @@ export async function migrateKibanaIndex({ }) { // we allow dynamic mappings on the index, as some interceptors are accessing documents before // the migration is actually performed. The migrator will put the value back to `strict` after migration. - await client.indices.putMapping({ - index: '.kibana', - body: { - dynamic: true, + await client.indices.putMapping( + { + index: '.kibana', + body: { + dynamic: true, + }, }, - ignore: [404], - } as any); + { + ignore: [404], + } + ); await kbnClient.savedObjects.migrate(); } @@ -75,9 +81,14 @@ export async function migrateKibanaIndex({ * index (e.g. we don't want to remove .kibana_task_manager or the like). */ async function fetchKibanaIndices(client: Client) { - const kibanaIndices = await client.cat.indices({ index: '.kibana*', format: 'json' }); + const resp = await client.cat.indices({ index: '.kibana*', format: 'json' }); const isKibanaIndex = (index: string) => /^\.kibana(:?_\d*)?$/.test(index); - return kibanaIndices.map((x: { index: string }) => x.index).filter(isKibanaIndex); + + if (!Array.isArray(resp.body)) { + throw new Error(`expected response to be an array ${inspect(resp.body)}`); + } + + return resp.body.map((x: { index: string }) => x.index).filter(isKibanaIndex); } const delay = (delayInMs: number) => new Promise((resolve) => setTimeout(resolve, delayInMs)); @@ -102,28 +113,32 @@ export async function cleanKibanaIndices({ } while (true) { - const resp = await client.deleteByQuery({ - index: `.kibana`, - body: { - query: { - bool: { - must_not: { - ids: { - type: '_doc', - values: ['space:default'], + const resp = await client.deleteByQuery( + { + index: `.kibana`, + body: { + query: { + bool: { + must_not: { + ids: { + type: '_doc', + values: ['space:default'], + }, }, }, }, }, }, - ignore: [409], - }); + { + ignore: [409], + } + ); - if (resp.total !== resp.deleted) { + if (resp.body.total !== resp.body.deleted) { log.warning( 'delete by query deleted %d of %d total documents, trying again', - resp.deleted, - resp.total + resp.body.deleted, + resp.body.total ); await delay(200); continue; @@ -141,20 +156,24 @@ export async function cleanKibanaIndices({ } export async function createDefaultSpace({ index, client }: { index: string; client: Client }) { - await client.create({ - index, - type: '_doc', - id: 'space:default', - ignore: 409, - body: { - type: 'space', - updated_at: new Date().toISOString(), - space: { - name: 'Default Space', - description: 'This is the default space', - disabledFeatures: [], - _reserved: true, + await client.create( + { + index, + type: '_doc', + id: 'space:default', + body: { + type: 'space', + updated_at: new Date().toISOString(), + space: { + name: 'Default Space', + description: 'This is the default space', + disabledFeatures: [], + _reserved: true, + }, }, }, - } as CreateDocumentParams); + { + ignore: [409], + } + ); } diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index e8c6fa4d5a01..d641b50537d5 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -59495,12 +59495,12 @@ const path = __webpack_require__(4); const os = __webpack_require__(121); const pMap = __webpack_require__(515); const arrify = __webpack_require__(510); -const globby = __webpack_require__(516); -const hasGlob = __webpack_require__(712); -const cpFile = __webpack_require__(714); -const junk = __webpack_require__(724); -const pFilter = __webpack_require__(725); -const CpyError = __webpack_require__(727); +const globby = __webpack_require__(518); +const hasGlob = __webpack_require__(714); +const cpFile = __webpack_require__(716); +const junk = __webpack_require__(726); +const pFilter = __webpack_require__(727); +const CpyError = __webpack_require__(729); const defaultOptions = { ignoreJunk: true @@ -59656,7 +59656,7 @@ module.exports = (source, destination, { "use strict"; -const AggregateError = __webpack_require__(242); +const AggregateError = __webpack_require__(516); module.exports = async ( iterable, @@ -59744,12 +59744,108 @@ module.exports = async ( "use strict"; +const indentString = __webpack_require__(517); +const cleanStack = __webpack_require__(244); + +const cleanInternalStack = stack => stack.replace(/\s+at .*aggregate-error\/index.js:\d+:\d+\)?/g, ''); + +class AggregateError extends Error { + constructor(errors) { + if (!Array.isArray(errors)) { + throw new TypeError(`Expected input to be an Array, got ${typeof errors}`); + } + + errors = [...errors].map(error => { + if (error instanceof Error) { + return error; + } + + if (error !== null && typeof error === 'object') { + // Handle plain error objects with message property and/or possibly other metadata + return Object.assign(new Error(error.message), error); + } + + return new Error(error); + }); + + let message = errors + .map(error => { + // The `stack` property is not standardized, so we can't assume it exists + return typeof error.stack === 'string' ? cleanInternalStack(cleanStack(error.stack)) : String(error); + }) + .join('\n'); + message = '\n' + indentString(message, 4); + super(message); + + this.name = 'AggregateError'; + + Object.defineProperty(this, '_errors', {value: errors}); + } + + * [Symbol.iterator]() { + for (const error of this._errors) { + yield error; + } + } +} + +module.exports = AggregateError; + + +/***/ }), +/* 517 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = (string, count = 1, options) => { + options = { + indent: ' ', + includeEmptyLines: false, + ...options + }; + + if (typeof string !== 'string') { + throw new TypeError( + `Expected \`input\` to be a \`string\`, got \`${typeof string}\`` + ); + } + + if (typeof count !== 'number') { + throw new TypeError( + `Expected \`count\` to be a \`number\`, got \`${typeof count}\`` + ); + } + + if (typeof options.indent !== 'string') { + throw new TypeError( + `Expected \`options.indent\` to be a \`string\`, got \`${typeof options.indent}\`` + ); + } + + if (count === 0) { + return string; + } + + const regex = options.includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; + + return string.replace(regex, options.indent.repeat(count)); +}; + + +/***/ }), +/* 518 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + const fs = __webpack_require__(134); -const arrayUnion = __webpack_require__(517); +const arrayUnion = __webpack_require__(519); const glob = __webpack_require__(147); -const fastGlob = __webpack_require__(519); -const dirGlob = __webpack_require__(705); -const gitignore = __webpack_require__(708); +const fastGlob = __webpack_require__(521); +const dirGlob = __webpack_require__(707); +const gitignore = __webpack_require__(710); const DEFAULT_FILTER = () => false; @@ -59894,12 +59990,12 @@ module.exports.gitignore = gitignore; /***/ }), -/* 517 */ +/* 519 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var arrayUniq = __webpack_require__(518); +var arrayUniq = __webpack_require__(520); module.exports = function () { return arrayUniq([].concat.apply([], arguments)); @@ -59907,7 +60003,7 @@ module.exports = function () { /***/ }), -/* 518 */ +/* 520 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59976,10 +60072,10 @@ if ('Set' in global) { /***/ }), -/* 519 */ +/* 521 */ /***/ (function(module, exports, __webpack_require__) { -const pkg = __webpack_require__(520); +const pkg = __webpack_require__(522); module.exports = pkg.async; module.exports.default = pkg.async; @@ -59992,19 +60088,19 @@ module.exports.generateTasks = pkg.generateTasks; /***/ }), -/* 520 */ +/* 522 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var optionsManager = __webpack_require__(521); -var taskManager = __webpack_require__(522); -var reader_async_1 = __webpack_require__(676); -var reader_stream_1 = __webpack_require__(700); -var reader_sync_1 = __webpack_require__(701); -var arrayUtils = __webpack_require__(703); -var streamUtils = __webpack_require__(704); +var optionsManager = __webpack_require__(523); +var taskManager = __webpack_require__(524); +var reader_async_1 = __webpack_require__(678); +var reader_stream_1 = __webpack_require__(702); +var reader_sync_1 = __webpack_require__(703); +var arrayUtils = __webpack_require__(705); +var streamUtils = __webpack_require__(706); /** * Synchronous API. */ @@ -60070,7 +60166,7 @@ function isString(source) { /***/ }), -/* 521 */ +/* 523 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60108,13 +60204,13 @@ exports.prepare = prepare; /***/ }), -/* 522 */ +/* 524 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var patternUtils = __webpack_require__(523); +var patternUtils = __webpack_require__(525); /** * Generate tasks based on parent directory of each pattern. */ @@ -60205,16 +60301,16 @@ exports.convertPatternGroupToTask = convertPatternGroupToTask; /***/ }), -/* 523 */ +/* 525 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = __webpack_require__(4); -var globParent = __webpack_require__(524); +var globParent = __webpack_require__(526); var isGlob = __webpack_require__(172); -var micromatch = __webpack_require__(527); +var micromatch = __webpack_require__(529); var GLOBSTAR = '**'; /** * Return true for static pattern. @@ -60360,15 +60456,15 @@ exports.matchAny = matchAny; /***/ }), -/* 524 */ +/* 526 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var path = __webpack_require__(4); -var isglob = __webpack_require__(525); -var pathDirname = __webpack_require__(526); +var isglob = __webpack_require__(527); +var pathDirname = __webpack_require__(528); var isWin32 = __webpack_require__(121).platform() === 'win32'; module.exports = function globParent(str) { @@ -60391,7 +60487,7 @@ module.exports = function globParent(str) { /***/ }), -/* 525 */ +/* 527 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -60422,7 +60518,7 @@ module.exports = function isGlob(str) { /***/ }), -/* 526 */ +/* 528 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60572,7 +60668,7 @@ module.exports.win32 = win32; /***/ }), -/* 527 */ +/* 529 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60583,18 +60679,18 @@ module.exports.win32 = win32; */ var util = __webpack_require__(112); -var braces = __webpack_require__(528); -var toRegex = __webpack_require__(529); -var extend = __webpack_require__(642); +var braces = __webpack_require__(530); +var toRegex = __webpack_require__(531); +var extend = __webpack_require__(644); /** * Local dependencies */ -var compilers = __webpack_require__(644); -var parsers = __webpack_require__(671); -var cache = __webpack_require__(672); -var utils = __webpack_require__(673); +var compilers = __webpack_require__(646); +var parsers = __webpack_require__(673); +var cache = __webpack_require__(674); +var utils = __webpack_require__(675); var MAX_LENGTH = 1024 * 64; /** @@ -61456,7 +61552,7 @@ module.exports = micromatch; /***/ }), -/* 528 */ +/* 530 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61466,18 +61562,18 @@ module.exports = micromatch; * Module dependencies */ -var toRegex = __webpack_require__(529); -var unique = __webpack_require__(551); -var extend = __webpack_require__(552); +var toRegex = __webpack_require__(531); +var unique = __webpack_require__(553); +var extend = __webpack_require__(554); /** * Local dependencies */ -var compilers = __webpack_require__(554); -var parsers = __webpack_require__(567); -var Braces = __webpack_require__(571); -var utils = __webpack_require__(555); +var compilers = __webpack_require__(556); +var parsers = __webpack_require__(569); +var Braces = __webpack_require__(573); +var utils = __webpack_require__(557); var MAX_LENGTH = 1024 * 64; var cache = {}; @@ -61781,16 +61877,16 @@ module.exports = braces; /***/ }), -/* 529 */ +/* 531 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var safe = __webpack_require__(530); -var define = __webpack_require__(536); -var extend = __webpack_require__(544); -var not = __webpack_require__(548); +var safe = __webpack_require__(532); +var define = __webpack_require__(538); +var extend = __webpack_require__(546); +var not = __webpack_require__(550); var MAX_LENGTH = 1024 * 64; /** @@ -61943,10 +62039,10 @@ module.exports.makeRe = makeRe; /***/ }), -/* 530 */ +/* 532 */ /***/ (function(module, exports, __webpack_require__) { -var parse = __webpack_require__(531); +var parse = __webpack_require__(533); var types = parse.types; module.exports = function (re, opts) { @@ -61992,13 +62088,13 @@ function isRegExp (x) { /***/ }), -/* 531 */ +/* 533 */ /***/ (function(module, exports, __webpack_require__) { -var util = __webpack_require__(532); -var types = __webpack_require__(533); -var sets = __webpack_require__(534); -var positions = __webpack_require__(535); +var util = __webpack_require__(534); +var types = __webpack_require__(535); +var sets = __webpack_require__(536); +var positions = __webpack_require__(537); module.exports = function(regexpStr) { @@ -62280,11 +62376,11 @@ module.exports.types = types; /***/ }), -/* 532 */ +/* 534 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(533); -var sets = __webpack_require__(534); +var types = __webpack_require__(535); +var sets = __webpack_require__(536); // All of these are private and only used by randexp. @@ -62397,7 +62493,7 @@ exports.error = function(regexp, msg) { /***/ }), -/* 533 */ +/* 535 */ /***/ (function(module, exports) { module.exports = { @@ -62413,10 +62509,10 @@ module.exports = { /***/ }), -/* 534 */ +/* 536 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(533); +var types = __webpack_require__(535); var INTS = function() { return [{ type: types.RANGE , from: 48, to: 57 }]; @@ -62501,10 +62597,10 @@ exports.anyChar = function() { /***/ }), -/* 535 */ +/* 537 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(533); +var types = __webpack_require__(535); exports.wordBoundary = function() { return { type: types.POSITION, value: 'b' }; @@ -62524,7 +62620,7 @@ exports.end = function() { /***/ }), -/* 536 */ +/* 538 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62537,8 +62633,8 @@ exports.end = function() { -var isobject = __webpack_require__(537); -var isDescriptor = __webpack_require__(538); +var isobject = __webpack_require__(539); +var isDescriptor = __webpack_require__(540); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -62569,7 +62665,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 537 */ +/* 539 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62588,7 +62684,7 @@ module.exports = function isObject(val) { /***/ }), -/* 538 */ +/* 540 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62601,9 +62697,9 @@ module.exports = function isObject(val) { -var typeOf = __webpack_require__(539); -var isAccessor = __webpack_require__(540); -var isData = __webpack_require__(542); +var typeOf = __webpack_require__(541); +var isAccessor = __webpack_require__(542); +var isData = __webpack_require__(544); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -62616,217 +62712,6 @@ module.exports = function isDescriptor(obj, key) { }; -/***/ }), -/* 539 */ -/***/ (function(module, exports) { - -var toString = Object.prototype.toString; - -module.exports = function kindOf(val) { - if (val === void 0) return 'undefined'; - if (val === null) return 'null'; - - var type = typeof val; - if (type === 'boolean') return 'boolean'; - if (type === 'string') return 'string'; - if (type === 'number') return 'number'; - if (type === 'symbol') return 'symbol'; - if (type === 'function') { - return isGeneratorFn(val) ? 'generatorfunction' : 'function'; - } - - if (isArray(val)) return 'array'; - if (isBuffer(val)) return 'buffer'; - if (isArguments(val)) return 'arguments'; - if (isDate(val)) return 'date'; - if (isError(val)) return 'error'; - if (isRegexp(val)) return 'regexp'; - - switch (ctorName(val)) { - case 'Symbol': return 'symbol'; - case 'Promise': return 'promise'; - - // Set, Map, WeakSet, WeakMap - case 'WeakMap': return 'weakmap'; - case 'WeakSet': return 'weakset'; - case 'Map': return 'map'; - case 'Set': return 'set'; - - // 8-bit typed arrays - case 'Int8Array': return 'int8array'; - case 'Uint8Array': return 'uint8array'; - case 'Uint8ClampedArray': return 'uint8clampedarray'; - - // 16-bit typed arrays - case 'Int16Array': return 'int16array'; - case 'Uint16Array': return 'uint16array'; - - // 32-bit typed arrays - case 'Int32Array': return 'int32array'; - case 'Uint32Array': return 'uint32array'; - case 'Float32Array': return 'float32array'; - case 'Float64Array': return 'float64array'; - } - - if (isGeneratorObj(val)) { - return 'generator'; - } - - // Non-plain objects - type = toString.call(val); - switch (type) { - case '[object Object]': return 'object'; - // iterators - case '[object Map Iterator]': return 'mapiterator'; - case '[object Set Iterator]': return 'setiterator'; - case '[object String Iterator]': return 'stringiterator'; - case '[object Array Iterator]': return 'arrayiterator'; - } - - // other - return type.slice(8, -1).toLowerCase().replace(/\s/g, ''); -}; - -function ctorName(val) { - return typeof val.constructor === 'function' ? val.constructor.name : null; -} - -function isArray(val) { - if (Array.isArray) return Array.isArray(val); - return val instanceof Array; -} - -function isError(val) { - return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number'); -} - -function isDate(val) { - if (val instanceof Date) return true; - return typeof val.toDateString === 'function' - && typeof val.getDate === 'function' - && typeof val.setDate === 'function'; -} - -function isRegexp(val) { - if (val instanceof RegExp) return true; - return typeof val.flags === 'string' - && typeof val.ignoreCase === 'boolean' - && typeof val.multiline === 'boolean' - && typeof val.global === 'boolean'; -} - -function isGeneratorFn(name, val) { - return ctorName(name) === 'GeneratorFunction'; -} - -function isGeneratorObj(val) { - return typeof val.throw === 'function' - && typeof val.return === 'function' - && typeof val.next === 'function'; -} - -function isArguments(val) { - try { - if (typeof val.length === 'number' && typeof val.callee === 'function') { - return true; - } - } catch (err) { - if (err.message.indexOf('callee') !== -1) { - return true; - } - } - return false; -} - -/** - * If you need to support Safari 5-7 (8-10 yr-old browser), - * take a look at https://github.com/feross/is-buffer - */ - -function isBuffer(val) { - if (val.constructor && typeof val.constructor.isBuffer === 'function') { - return val.constructor.isBuffer(val); - } - return false; -} - - -/***/ }), -/* 540 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * is-accessor-descriptor - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -var typeOf = __webpack_require__(541); - -// accessor descriptor properties -var accessor = { - get: 'function', - set: 'function', - configurable: 'boolean', - enumerable: 'boolean' -}; - -function isAccessorDescriptor(obj, prop) { - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; - } - - if (typeOf(obj) !== 'object') { - return false; - } - - if (has(obj, 'value') || has(obj, 'writable')) { - return false; - } - - if (!has(obj, 'get') || typeof obj.get !== 'function') { - return false; - } - - // tldr: it's valid to have "set" be undefined - // "set" might be undefined if `Object.getOwnPropertyDescriptor` - // was used to get the value, and only `get` was defined by the user - if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') { - return false; - } - - for (var key in obj) { - if (!accessor.hasOwnProperty(key)) { - continue; - } - - if (typeOf(obj[key]) === accessor[key]) { - continue; - } - - if (typeof obj[key] !== 'undefined') { - return false; - } - } - return true; -} - -function has(obj, key) { - return {}.hasOwnProperty.call(obj, key); -} - -/** - * Expose `isAccessorDescriptor` - */ - -module.exports = isAccessorDescriptor; - - /***/ }), /* 541 */ /***/ (function(module, exports) { @@ -62968,7 +62853,7 @@ function isBuffer(val) { "use strict"; /*! - * is-data-descriptor + * is-accessor-descriptor * * Copyright (c) 2015-2017, Jon Schlinkert. * Released under the MIT License. @@ -62978,35 +62863,45 @@ function isBuffer(val) { var typeOf = __webpack_require__(543); -module.exports = function isDataDescriptor(obj, prop) { - // data descriptor properties - var data = { - configurable: 'boolean', - enumerable: 'boolean', - writable: 'boolean' - }; - - if (typeOf(obj) !== 'object') { - return false; - } +// accessor descriptor properties +var accessor = { + get: 'function', + set: 'function', + configurable: 'boolean', + enumerable: 'boolean' +}; +function isAccessorDescriptor(obj, prop) { if (typeof prop === 'string') { var val = Object.getOwnPropertyDescriptor(obj, prop); return typeof val !== 'undefined'; } - if (!('value' in obj) && !('writable' in obj)) { + if (typeOf(obj) !== 'object') { + return false; + } + + if (has(obj, 'value') || has(obj, 'writable')) { + return false; + } + + if (!has(obj, 'get') || typeof obj.get !== 'function') { + return false; + } + + // tldr: it's valid to have "set" be undefined + // "set" might be undefined if `Object.getOwnPropertyDescriptor` + // was used to get the value, and only `get` was defined by the user + if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') { return false; } for (var key in obj) { - if (key === 'value') continue; - - if (!data.hasOwnProperty(key)) { + if (!accessor.hasOwnProperty(key)) { continue; } - if (typeOf(obj[key]) === data[key]) { + if (typeOf(obj[key]) === accessor[key]) { continue; } @@ -63015,7 +62910,17 @@ module.exports = function isDataDescriptor(obj, prop) { } } return true; -}; +} + +function has(obj, key) { + return {}.hasOwnProperty.call(obj, key); +} + +/** + * Expose `isAccessorDescriptor` + */ + +module.exports = isAccessorDescriptor; /***/ }), @@ -63158,10 +63063,201 @@ function isBuffer(val) { /***/ (function(module, exports, __webpack_require__) { "use strict"; +/*! + * is-data-descriptor + * + * Copyright (c) 2015-2017, Jon Schlinkert. + * Released under the MIT License. + */ -var isExtendable = __webpack_require__(545); -var assignSymbols = __webpack_require__(547); + +var typeOf = __webpack_require__(545); + +module.exports = function isDataDescriptor(obj, prop) { + // data descriptor properties + var data = { + configurable: 'boolean', + enumerable: 'boolean', + writable: 'boolean' + }; + + if (typeOf(obj) !== 'object') { + return false; + } + + if (typeof prop === 'string') { + var val = Object.getOwnPropertyDescriptor(obj, prop); + return typeof val !== 'undefined'; + } + + if (!('value' in obj) && !('writable' in obj)) { + return false; + } + + for (var key in obj) { + if (key === 'value') continue; + + if (!data.hasOwnProperty(key)) { + continue; + } + + if (typeOf(obj[key]) === data[key]) { + continue; + } + + if (typeof obj[key] !== 'undefined') { + return false; + } + } + return true; +}; + + +/***/ }), +/* 545 */ +/***/ (function(module, exports) { + +var toString = Object.prototype.toString; + +module.exports = function kindOf(val) { + if (val === void 0) return 'undefined'; + if (val === null) return 'null'; + + var type = typeof val; + if (type === 'boolean') return 'boolean'; + if (type === 'string') return 'string'; + if (type === 'number') return 'number'; + if (type === 'symbol') return 'symbol'; + if (type === 'function') { + return isGeneratorFn(val) ? 'generatorfunction' : 'function'; + } + + if (isArray(val)) return 'array'; + if (isBuffer(val)) return 'buffer'; + if (isArguments(val)) return 'arguments'; + if (isDate(val)) return 'date'; + if (isError(val)) return 'error'; + if (isRegexp(val)) return 'regexp'; + + switch (ctorName(val)) { + case 'Symbol': return 'symbol'; + case 'Promise': return 'promise'; + + // Set, Map, WeakSet, WeakMap + case 'WeakMap': return 'weakmap'; + case 'WeakSet': return 'weakset'; + case 'Map': return 'map'; + case 'Set': return 'set'; + + // 8-bit typed arrays + case 'Int8Array': return 'int8array'; + case 'Uint8Array': return 'uint8array'; + case 'Uint8ClampedArray': return 'uint8clampedarray'; + + // 16-bit typed arrays + case 'Int16Array': return 'int16array'; + case 'Uint16Array': return 'uint16array'; + + // 32-bit typed arrays + case 'Int32Array': return 'int32array'; + case 'Uint32Array': return 'uint32array'; + case 'Float32Array': return 'float32array'; + case 'Float64Array': return 'float64array'; + } + + if (isGeneratorObj(val)) { + return 'generator'; + } + + // Non-plain objects + type = toString.call(val); + switch (type) { + case '[object Object]': return 'object'; + // iterators + case '[object Map Iterator]': return 'mapiterator'; + case '[object Set Iterator]': return 'setiterator'; + case '[object String Iterator]': return 'stringiterator'; + case '[object Array Iterator]': return 'arrayiterator'; + } + + // other + return type.slice(8, -1).toLowerCase().replace(/\s/g, ''); +}; + +function ctorName(val) { + return typeof val.constructor === 'function' ? val.constructor.name : null; +} + +function isArray(val) { + if (Array.isArray) return Array.isArray(val); + return val instanceof Array; +} + +function isError(val) { + return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number'); +} + +function isDate(val) { + if (val instanceof Date) return true; + return typeof val.toDateString === 'function' + && typeof val.getDate === 'function' + && typeof val.setDate === 'function'; +} + +function isRegexp(val) { + if (val instanceof RegExp) return true; + return typeof val.flags === 'string' + && typeof val.ignoreCase === 'boolean' + && typeof val.multiline === 'boolean' + && typeof val.global === 'boolean'; +} + +function isGeneratorFn(name, val) { + return ctorName(name) === 'GeneratorFunction'; +} + +function isGeneratorObj(val) { + return typeof val.throw === 'function' + && typeof val.return === 'function' + && typeof val.next === 'function'; +} + +function isArguments(val) { + try { + if (typeof val.length === 'number' && typeof val.callee === 'function') { + return true; + } + } catch (err) { + if (err.message.indexOf('callee') !== -1) { + return true; + } + } + return false; +} + +/** + * If you need to support Safari 5-7 (8-10 yr-old browser), + * take a look at https://github.com/feross/is-buffer + */ + +function isBuffer(val) { + if (val.constructor && typeof val.constructor.isBuffer === 'function') { + return val.constructor.isBuffer(val); + } + return false; +} + + +/***/ }), +/* 546 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isExtendable = __webpack_require__(547); +var assignSymbols = __webpack_require__(549); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -63221,7 +63317,7 @@ function isEnum(obj, key) { /***/ }), -/* 545 */ +/* 547 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63234,7 +63330,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(546); +var isPlainObject = __webpack_require__(548); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -63242,7 +63338,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 546 */ +/* 548 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63255,7 +63351,7 @@ module.exports = function isExtendable(val) { -var isObject = __webpack_require__(537); +var isObject = __webpack_require__(539); function isObjectObject(o) { return isObject(o) === true @@ -63286,7 +63382,7 @@ module.exports = function isPlainObject(o) { /***/ }), -/* 547 */ +/* 549 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63333,14 +63429,14 @@ module.exports = function(receiver, objects) { /***/ }), -/* 548 */ +/* 550 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(549); -var safe = __webpack_require__(530); +var extend = __webpack_require__(551); +var safe = __webpack_require__(532); /** * The main export is a function that takes a `pattern` string and an `options` object. @@ -63412,14 +63508,14 @@ module.exports = toRegex; /***/ }), -/* 549 */ +/* 551 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(550); -var assignSymbols = __webpack_require__(547); +var isExtendable = __webpack_require__(552); +var assignSymbols = __webpack_require__(549); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -63479,7 +63575,7 @@ function isEnum(obj, key) { /***/ }), -/* 550 */ +/* 552 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63492,7 +63588,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(546); +var isPlainObject = __webpack_require__(548); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -63500,7 +63596,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 551 */ +/* 553 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63550,13 +63646,13 @@ module.exports.immutable = function uniqueImmutable(arr) { /***/ }), -/* 552 */ +/* 554 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(553); +var isObject = __webpack_require__(555); module.exports = function extend(o/*, objects*/) { if (!isObject(o)) { o = {}; } @@ -63590,7 +63686,7 @@ function hasOwn(obj, key) { /***/ }), -/* 553 */ +/* 555 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63610,13 +63706,13 @@ module.exports = function isExtendable(val) { /***/ }), -/* 554 */ +/* 556 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(555); +var utils = __webpack_require__(557); module.exports = function(braces, options) { braces.compiler @@ -63899,25 +63995,25 @@ function hasQueue(node) { /***/ }), -/* 555 */ +/* 557 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var splitString = __webpack_require__(556); +var splitString = __webpack_require__(558); var utils = module.exports; /** * Module dependencies */ -utils.extend = __webpack_require__(552); -utils.flatten = __webpack_require__(559); -utils.isObject = __webpack_require__(537); -utils.fillRange = __webpack_require__(560); -utils.repeat = __webpack_require__(566); -utils.unique = __webpack_require__(551); +utils.extend = __webpack_require__(554); +utils.flatten = __webpack_require__(561); +utils.isObject = __webpack_require__(539); +utils.fillRange = __webpack_require__(562); +utils.repeat = __webpack_require__(568); +utils.unique = __webpack_require__(553); utils.define = function(obj, key, val) { Object.defineProperty(obj, key, { @@ -64249,7 +64345,7 @@ utils.escapeRegex = function(str) { /***/ }), -/* 556 */ +/* 558 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64262,7 +64358,7 @@ utils.escapeRegex = function(str) { -var extend = __webpack_require__(557); +var extend = __webpack_require__(559); module.exports = function(str, options, fn) { if (typeof str !== 'string') { @@ -64427,14 +64523,14 @@ function keepEscaping(opts, str, idx) { /***/ }), -/* 557 */ +/* 559 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(558); -var assignSymbols = __webpack_require__(547); +var isExtendable = __webpack_require__(560); +var assignSymbols = __webpack_require__(549); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -64494,7 +64590,7 @@ function isEnum(obj, key) { /***/ }), -/* 558 */ +/* 560 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64507,7 +64603,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(546); +var isPlainObject = __webpack_require__(548); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -64515,7 +64611,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 559 */ +/* 561 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64544,7 +64640,7 @@ function flat(arr, res) { /***/ }), -/* 560 */ +/* 562 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64558,10 +64654,10 @@ function flat(arr, res) { var util = __webpack_require__(112); -var isNumber = __webpack_require__(561); -var extend = __webpack_require__(552); -var repeat = __webpack_require__(564); -var toRegex = __webpack_require__(565); +var isNumber = __webpack_require__(563); +var extend = __webpack_require__(554); +var repeat = __webpack_require__(566); +var toRegex = __webpack_require__(567); /** * Return a range of numbers or letters. @@ -64759,7 +64855,7 @@ module.exports = fillRange; /***/ }), -/* 561 */ +/* 563 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64772,7 +64868,7 @@ module.exports = fillRange; -var typeOf = __webpack_require__(562); +var typeOf = __webpack_require__(564); module.exports = function isNumber(num) { var type = typeOf(num); @@ -64788,10 +64884,10 @@ module.exports = function isNumber(num) { /***/ }), -/* 562 */ +/* 564 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(563); +var isBuffer = __webpack_require__(565); var toString = Object.prototype.toString; /** @@ -64910,7 +65006,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 563 */ +/* 565 */ /***/ (function(module, exports) { /*! @@ -64937,7 +65033,7 @@ function isSlowBuffer (obj) { /***/ }), -/* 564 */ +/* 566 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65014,7 +65110,7 @@ function repeat(str, num) { /***/ }), -/* 565 */ +/* 567 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65027,8 +65123,8 @@ function repeat(str, num) { -var repeat = __webpack_require__(564); -var isNumber = __webpack_require__(561); +var repeat = __webpack_require__(566); +var isNumber = __webpack_require__(563); var cache = {}; function toRegexRange(min, max, options) { @@ -65315,7 +65411,7 @@ module.exports = toRegexRange; /***/ }), -/* 566 */ +/* 568 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65340,14 +65436,14 @@ module.exports = function repeat(ele, num) { /***/ }), -/* 567 */ +/* 569 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Node = __webpack_require__(568); -var utils = __webpack_require__(555); +var Node = __webpack_require__(570); +var utils = __webpack_require__(557); /** * Braces parsers @@ -65707,15 +65803,15 @@ function concatNodes(pos, node, parent, options) { /***/ }), -/* 568 */ +/* 570 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(537); -var define = __webpack_require__(569); -var utils = __webpack_require__(570); +var isObject = __webpack_require__(539); +var define = __webpack_require__(571); +var utils = __webpack_require__(572); var ownNames; /** @@ -66206,7 +66302,7 @@ exports = module.exports = Node; /***/ }), -/* 569 */ +/* 571 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66219,7 +66315,7 @@ exports = module.exports = Node; -var isDescriptor = __webpack_require__(538); +var isDescriptor = __webpack_require__(540); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -66244,13 +66340,13 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 570 */ +/* 572 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var typeOf = __webpack_require__(562); +var typeOf = __webpack_require__(564); var utils = module.exports; /** @@ -67270,17 +67366,17 @@ function assert(val, message) { /***/ }), -/* 571 */ +/* 573 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(552); -var Snapdragon = __webpack_require__(572); -var compilers = __webpack_require__(554); -var parsers = __webpack_require__(567); -var utils = __webpack_require__(555); +var extend = __webpack_require__(554); +var Snapdragon = __webpack_require__(574); +var compilers = __webpack_require__(556); +var parsers = __webpack_require__(569); +var utils = __webpack_require__(557); /** * Customize Snapdragon parser and renderer @@ -67381,17 +67477,17 @@ module.exports = Braces; /***/ }), -/* 572 */ +/* 574 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Base = __webpack_require__(573); -var define = __webpack_require__(600); -var Compiler = __webpack_require__(610); -var Parser = __webpack_require__(639); -var utils = __webpack_require__(619); +var Base = __webpack_require__(575); +var define = __webpack_require__(602); +var Compiler = __webpack_require__(612); +var Parser = __webpack_require__(641); +var utils = __webpack_require__(621); var regexCache = {}; var cache = {}; @@ -67562,20 +67658,20 @@ module.exports.Parser = Parser; /***/ }), -/* 573 */ +/* 575 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(112); -var define = __webpack_require__(574); -var CacheBase = __webpack_require__(575); -var Emitter = __webpack_require__(576); -var isObject = __webpack_require__(537); -var merge = __webpack_require__(594); -var pascal = __webpack_require__(597); -var cu = __webpack_require__(598); +var define = __webpack_require__(576); +var CacheBase = __webpack_require__(577); +var Emitter = __webpack_require__(578); +var isObject = __webpack_require__(539); +var merge = __webpack_require__(596); +var pascal = __webpack_require__(599); +var cu = __webpack_require__(600); /** * Optionally define a custom `cache` namespace to use. @@ -68004,7 +68100,7 @@ module.exports.namespace = namespace; /***/ }), -/* 574 */ +/* 576 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68017,7 +68113,7 @@ module.exports.namespace = namespace; -var isDescriptor = __webpack_require__(538); +var isDescriptor = __webpack_require__(540); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -68042,21 +68138,21 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 575 */ +/* 577 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(537); -var Emitter = __webpack_require__(576); -var visit = __webpack_require__(577); -var toPath = __webpack_require__(580); -var union = __webpack_require__(581); -var del = __webpack_require__(585); -var get = __webpack_require__(583); -var has = __webpack_require__(590); -var set = __webpack_require__(593); +var isObject = __webpack_require__(539); +var Emitter = __webpack_require__(578); +var visit = __webpack_require__(579); +var toPath = __webpack_require__(582); +var union = __webpack_require__(583); +var del = __webpack_require__(587); +var get = __webpack_require__(585); +var has = __webpack_require__(592); +var set = __webpack_require__(595); /** * Create a `Cache` constructor that when instantiated will @@ -68310,7 +68406,7 @@ module.exports.namespace = namespace; /***/ }), -/* 576 */ +/* 578 */ /***/ (function(module, exports, __webpack_require__) { @@ -68479,7 +68575,7 @@ Emitter.prototype.hasListeners = function(event){ /***/ }), -/* 577 */ +/* 579 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68492,8 +68588,8 @@ Emitter.prototype.hasListeners = function(event){ -var visit = __webpack_require__(578); -var mapVisit = __webpack_require__(579); +var visit = __webpack_require__(580); +var mapVisit = __webpack_require__(581); module.exports = function(collection, method, val) { var result; @@ -68516,7 +68612,7 @@ module.exports = function(collection, method, val) { /***/ }), -/* 578 */ +/* 580 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68529,7 +68625,7 @@ module.exports = function(collection, method, val) { -var isObject = __webpack_require__(537); +var isObject = __webpack_require__(539); module.exports = function visit(thisArg, method, target, val) { if (!isObject(thisArg) && typeof thisArg !== 'function') { @@ -68556,14 +68652,14 @@ module.exports = function visit(thisArg, method, target, val) { /***/ }), -/* 579 */ +/* 581 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(112); -var visit = __webpack_require__(578); +var visit = __webpack_require__(580); /** * Map `visit` over an array of objects. @@ -68600,7 +68696,7 @@ function isObject(val) { /***/ }), -/* 580 */ +/* 582 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68613,7 +68709,7 @@ function isObject(val) { -var typeOf = __webpack_require__(562); +var typeOf = __webpack_require__(564); module.exports = function toPath(args) { if (typeOf(args) !== 'arguments') { @@ -68640,16 +68736,16 @@ function filter(arr) { /***/ }), -/* 581 */ +/* 583 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(553); -var union = __webpack_require__(582); -var get = __webpack_require__(583); -var set = __webpack_require__(584); +var isObject = __webpack_require__(555); +var union = __webpack_require__(584); +var get = __webpack_require__(585); +var set = __webpack_require__(586); module.exports = function unionValue(obj, prop, value) { if (!isObject(obj)) { @@ -68677,7 +68773,7 @@ function arrayify(val) { /***/ }), -/* 582 */ +/* 584 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68713,7 +68809,7 @@ module.exports = function union(init) { /***/ }), -/* 583 */ +/* 585 */ /***/ (function(module, exports) { /*! @@ -68769,7 +68865,7 @@ function toString(val) { /***/ }), -/* 584 */ +/* 586 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68782,10 +68878,10 @@ function toString(val) { -var split = __webpack_require__(556); -var extend = __webpack_require__(552); -var isPlainObject = __webpack_require__(546); -var isObject = __webpack_require__(553); +var split = __webpack_require__(558); +var extend = __webpack_require__(554); +var isPlainObject = __webpack_require__(548); +var isObject = __webpack_require__(555); module.exports = function(obj, prop, val) { if (!isObject(obj)) { @@ -68831,7 +68927,7 @@ function isValidKey(key) { /***/ }), -/* 585 */ +/* 587 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68844,8 +68940,8 @@ function isValidKey(key) { -var isObject = __webpack_require__(537); -var has = __webpack_require__(586); +var isObject = __webpack_require__(539); +var has = __webpack_require__(588); module.exports = function unset(obj, prop) { if (!isObject(obj)) { @@ -68870,7 +68966,7 @@ module.exports = function unset(obj, prop) { /***/ }), -/* 586 */ +/* 588 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68883,9 +68979,9 @@ module.exports = function unset(obj, prop) { -var isObject = __webpack_require__(587); -var hasValues = __webpack_require__(589); -var get = __webpack_require__(583); +var isObject = __webpack_require__(589); +var hasValues = __webpack_require__(591); +var get = __webpack_require__(585); module.exports = function(obj, prop, noZero) { if (isObject(obj)) { @@ -68896,7 +68992,7 @@ module.exports = function(obj, prop, noZero) { /***/ }), -/* 587 */ +/* 589 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68909,7 +69005,7 @@ module.exports = function(obj, prop, noZero) { -var isArray = __webpack_require__(588); +var isArray = __webpack_require__(590); module.exports = function isObject(val) { return val != null && typeof val === 'object' && isArray(val) === false; @@ -68917,7 +69013,7 @@ module.exports = function isObject(val) { /***/ }), -/* 588 */ +/* 590 */ /***/ (function(module, exports) { var toString = {}.toString; @@ -68928,7 +69024,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 589 */ +/* 591 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68971,7 +69067,7 @@ module.exports = function hasValue(o, noZero) { /***/ }), -/* 590 */ +/* 592 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68984,9 +69080,9 @@ module.exports = function hasValue(o, noZero) { -var isObject = __webpack_require__(537); -var hasValues = __webpack_require__(591); -var get = __webpack_require__(583); +var isObject = __webpack_require__(539); +var hasValues = __webpack_require__(593); +var get = __webpack_require__(585); module.exports = function(val, prop) { return hasValues(isObject(val) && prop ? get(val, prop) : val); @@ -68994,7 +69090,7 @@ module.exports = function(val, prop) { /***/ }), -/* 591 */ +/* 593 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69007,8 +69103,8 @@ module.exports = function(val, prop) { -var typeOf = __webpack_require__(592); -var isNumber = __webpack_require__(561); +var typeOf = __webpack_require__(594); +var isNumber = __webpack_require__(563); module.exports = function hasValue(val) { // is-number checks for NaN and other edge cases @@ -69061,10 +69157,10 @@ module.exports = function hasValue(val) { /***/ }), -/* 592 */ +/* 594 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(563); +var isBuffer = __webpack_require__(565); var toString = Object.prototype.toString; /** @@ -69186,7 +69282,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 593 */ +/* 595 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69199,10 +69295,10 @@ module.exports = function kindOf(val) { -var split = __webpack_require__(556); -var extend = __webpack_require__(552); -var isPlainObject = __webpack_require__(546); -var isObject = __webpack_require__(553); +var split = __webpack_require__(558); +var extend = __webpack_require__(554); +var isPlainObject = __webpack_require__(548); +var isObject = __webpack_require__(555); module.exports = function(obj, prop, val) { if (!isObject(obj)) { @@ -69248,14 +69344,14 @@ function isValidKey(key) { /***/ }), -/* 594 */ +/* 596 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(595); -var forIn = __webpack_require__(596); +var isExtendable = __webpack_require__(597); +var forIn = __webpack_require__(598); function mixinDeep(target, objects) { var len = arguments.length, i = 0; @@ -69319,7 +69415,7 @@ module.exports = mixinDeep; /***/ }), -/* 595 */ +/* 597 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69332,7 +69428,7 @@ module.exports = mixinDeep; -var isPlainObject = __webpack_require__(546); +var isPlainObject = __webpack_require__(548); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -69340,7 +69436,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 596 */ +/* 598 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69363,7 +69459,7 @@ module.exports = function forIn(obj, fn, thisArg) { /***/ }), -/* 597 */ +/* 599 */ /***/ (function(module, exports) { /*! @@ -69390,14 +69486,14 @@ module.exports = pascalcase; /***/ }), -/* 598 */ +/* 600 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(112); -var utils = __webpack_require__(599); +var utils = __webpack_require__(601); /** * Expose class utils @@ -69762,7 +69858,7 @@ cu.bubble = function(Parent, events) { /***/ }), -/* 599 */ +/* 601 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69776,10 +69872,10 @@ var utils = {}; * Lazily required module dependencies */ -utils.union = __webpack_require__(582); -utils.define = __webpack_require__(600); -utils.isObj = __webpack_require__(537); -utils.staticExtend = __webpack_require__(607); +utils.union = __webpack_require__(584); +utils.define = __webpack_require__(602); +utils.isObj = __webpack_require__(539); +utils.staticExtend = __webpack_require__(609); /** @@ -69790,7 +69886,7 @@ module.exports = utils; /***/ }), -/* 600 */ +/* 602 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69803,7 +69899,7 @@ module.exports = utils; -var isDescriptor = __webpack_require__(601); +var isDescriptor = __webpack_require__(603); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -69828,7 +69924,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 601 */ +/* 603 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69841,9 +69937,9 @@ module.exports = function defineProperty(obj, prop, val) { -var typeOf = __webpack_require__(602); -var isAccessor = __webpack_require__(603); -var isData = __webpack_require__(605); +var typeOf = __webpack_require__(604); +var isAccessor = __webpack_require__(605); +var isData = __webpack_require__(607); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -69857,7 +69953,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 602 */ +/* 604 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -70010,7 +70106,7 @@ function isBuffer(val) { /***/ }), -/* 603 */ +/* 605 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70023,7 +70119,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(604); +var typeOf = __webpack_require__(606); // accessor descriptor properties var accessor = { @@ -70085,195 +70181,11 @@ function has(obj, key) { module.exports = isAccessorDescriptor; -/***/ }), -/* 604 */ -/***/ (function(module, exports, __webpack_require__) { - -var isBuffer = __webpack_require__(563); -var toString = Object.prototype.toString; - -/** - * Get the native `typeof` a value. - * - * @param {*} `val` - * @return {*} Native javascript type - */ - -module.exports = function kindOf(val) { - // primitivies - if (typeof val === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (typeof val === 'string' || val instanceof String) { - return 'string'; - } - if (typeof val === 'number' || val instanceof Number) { - return 'number'; - } - - // functions - if (typeof val === 'function' || val instanceof Function) { - return 'function'; - } - - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } - - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } - - // other objects - var type = toString.call(val); - - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; - } - - // buffer - if (isBuffer(val)) { - return 'buffer'; - } - - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } - - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; - } - if (type === '[object Float64Array]') { - return 'float64array'; - } - - // must be a plain object - return 'object'; -}; - - -/***/ }), -/* 605 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * is-data-descriptor - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - - - -var typeOf = __webpack_require__(606); - -// data descriptor properties -var data = { - configurable: 'boolean', - enumerable: 'boolean', - writable: 'boolean' -}; - -function isDataDescriptor(obj, prop) { - if (typeOf(obj) !== 'object') { - return false; - } - - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; - } - - if (!('value' in obj) && !('writable' in obj)) { - return false; - } - - for (var key in obj) { - if (key === 'value') continue; - - if (!data.hasOwnProperty(key)) { - continue; - } - - if (typeOf(obj[key]) === data[key]) { - continue; - } - - if (typeof obj[key] !== 'undefined') { - return false; - } - } - return true; -} - -/** - * Expose `isDataDescriptor` - */ - -module.exports = isDataDescriptor; - - /***/ }), /* 606 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(563); +var isBuffer = __webpack_require__(565); var toString = Object.prototype.toString; /** @@ -70395,6 +70307,190 @@ module.exports = function kindOf(val) { /* 607 */ /***/ (function(module, exports, __webpack_require__) { +"use strict"; +/*! + * is-data-descriptor + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ + + + +var typeOf = __webpack_require__(608); + +// data descriptor properties +var data = { + configurable: 'boolean', + enumerable: 'boolean', + writable: 'boolean' +}; + +function isDataDescriptor(obj, prop) { + if (typeOf(obj) !== 'object') { + return false; + } + + if (typeof prop === 'string') { + var val = Object.getOwnPropertyDescriptor(obj, prop); + return typeof val !== 'undefined'; + } + + if (!('value' in obj) && !('writable' in obj)) { + return false; + } + + for (var key in obj) { + if (key === 'value') continue; + + if (!data.hasOwnProperty(key)) { + continue; + } + + if (typeOf(obj[key]) === data[key]) { + continue; + } + + if (typeof obj[key] !== 'undefined') { + return false; + } + } + return true; +} + +/** + * Expose `isDataDescriptor` + */ + +module.exports = isDataDescriptor; + + +/***/ }), +/* 608 */ +/***/ (function(module, exports, __webpack_require__) { + +var isBuffer = __webpack_require__(565); +var toString = Object.prototype.toString; + +/** + * Get the native `typeof` a value. + * + * @param {*} `val` + * @return {*} Native javascript type + */ + +module.exports = function kindOf(val) { + // primitivies + if (typeof val === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (typeof val === 'string' || val instanceof String) { + return 'string'; + } + if (typeof val === 'number' || val instanceof Number) { + return 'number'; + } + + // functions + if (typeof val === 'function' || val instanceof Function) { + return 'function'; + } + + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } + + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } + + // other objects + var type = toString.call(val); + + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } + + // buffer + if (isBuffer(val)) { + return 'buffer'; + } + + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } + + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; + } + + // must be a plain object + return 'object'; +}; + + +/***/ }), +/* 609 */ +/***/ (function(module, exports, __webpack_require__) { + "use strict"; /*! * static-extend @@ -70405,8 +70501,8 @@ module.exports = function kindOf(val) { -var copy = __webpack_require__(608); -var define = __webpack_require__(600); +var copy = __webpack_require__(610); +var define = __webpack_require__(602); var util = __webpack_require__(112); /** @@ -70489,15 +70585,15 @@ module.exports = extend; /***/ }), -/* 608 */ +/* 610 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var typeOf = __webpack_require__(562); -var copyDescriptor = __webpack_require__(609); -var define = __webpack_require__(600); +var typeOf = __webpack_require__(564); +var copyDescriptor = __webpack_require__(611); +var define = __webpack_require__(602); /** * Copy static properties, prototype properties, and descriptors from one object to another. @@ -70670,7 +70766,7 @@ module.exports.has = has; /***/ }), -/* 609 */ +/* 611 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70758,16 +70854,16 @@ function isObject(val) { /***/ }), -/* 610 */ +/* 612 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var use = __webpack_require__(611); -var define = __webpack_require__(600); -var debug = __webpack_require__(613)('snapdragon:compiler'); -var utils = __webpack_require__(619); +var use = __webpack_require__(613); +var define = __webpack_require__(602); +var debug = __webpack_require__(615)('snapdragon:compiler'); +var utils = __webpack_require__(621); /** * Create a new `Compiler` with the given `options`. @@ -70921,7 +71017,7 @@ Compiler.prototype = { // source map support if (opts.sourcemap) { - var sourcemaps = __webpack_require__(638); + var sourcemaps = __webpack_require__(640); sourcemaps(this); this.mapVisit(this.ast.nodes); this.applySourceMaps(); @@ -70942,7 +71038,7 @@ module.exports = Compiler; /***/ }), -/* 611 */ +/* 613 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70955,7 +71051,7 @@ module.exports = Compiler; -var utils = __webpack_require__(612); +var utils = __webpack_require__(614); module.exports = function base(app, opts) { if (!utils.isObject(app) && typeof app !== 'function') { @@ -71070,7 +71166,7 @@ module.exports = function base(app, opts) { /***/ }), -/* 612 */ +/* 614 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71084,8 +71180,8 @@ var utils = {}; * Lazily required module dependencies */ -utils.define = __webpack_require__(600); -utils.isObject = __webpack_require__(537); +utils.define = __webpack_require__(602); +utils.isObject = __webpack_require__(539); utils.isString = function(val) { @@ -71100,7 +71196,7 @@ module.exports = utils; /***/ }), -/* 613 */ +/* 615 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -71109,14 +71205,14 @@ module.exports = utils; */ if (typeof process !== 'undefined' && process.type === 'renderer') { - module.exports = __webpack_require__(614); + module.exports = __webpack_require__(616); } else { - module.exports = __webpack_require__(617); + module.exports = __webpack_require__(619); } /***/ }), -/* 614 */ +/* 616 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -71125,7 +71221,7 @@ if (typeof process !== 'undefined' && process.type === 'renderer') { * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(615); +exports = module.exports = __webpack_require__(617); exports.log = log; exports.formatArgs = formatArgs; exports.save = save; @@ -71307,7 +71403,7 @@ function localstorage() { /***/ }), -/* 615 */ +/* 617 */ /***/ (function(module, exports, __webpack_require__) { @@ -71323,7 +71419,7 @@ exports.coerce = coerce; exports.disable = disable; exports.enable = enable; exports.enabled = enabled; -exports.humanize = __webpack_require__(616); +exports.humanize = __webpack_require__(618); /** * The currently active debug mode names, and names to skip. @@ -71515,7 +71611,7 @@ function coerce(val) { /***/ }), -/* 616 */ +/* 618 */ /***/ (function(module, exports) { /** @@ -71673,7 +71769,7 @@ function plural(ms, n, name) { /***/ }), -/* 617 */ +/* 619 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -71689,7 +71785,7 @@ var util = __webpack_require__(112); * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(615); +exports = module.exports = __webpack_require__(617); exports.init = init; exports.log = log; exports.formatArgs = formatArgs; @@ -71868,7 +71964,7 @@ function createWritableStdioStream (fd) { case 'PIPE': case 'TCP': - var net = __webpack_require__(618); + var net = __webpack_require__(620); stream = new net.Socket({ fd: fd, readable: false, @@ -71927,13 +72023,13 @@ exports.enable(load()); /***/ }), -/* 618 */ +/* 620 */ /***/ (function(module, exports) { module.exports = require("net"); /***/ }), -/* 619 */ +/* 621 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71943,9 +72039,9 @@ module.exports = require("net"); * Module dependencies */ -exports.extend = __webpack_require__(552); -exports.SourceMap = __webpack_require__(620); -exports.sourceMapResolve = __webpack_require__(631); +exports.extend = __webpack_require__(554); +exports.SourceMap = __webpack_require__(622); +exports.sourceMapResolve = __webpack_require__(633); /** * Convert backslash in the given string to forward slashes @@ -71988,7 +72084,7 @@ exports.last = function(arr, n) { /***/ }), -/* 620 */ +/* 622 */ /***/ (function(module, exports, __webpack_require__) { /* @@ -71996,13 +72092,13 @@ exports.last = function(arr, n) { * Licensed under the New BSD license. See LICENSE.txt or: * http://opensource.org/licenses/BSD-3-Clause */ -exports.SourceMapGenerator = __webpack_require__(621).SourceMapGenerator; -exports.SourceMapConsumer = __webpack_require__(627).SourceMapConsumer; -exports.SourceNode = __webpack_require__(630).SourceNode; +exports.SourceMapGenerator = __webpack_require__(623).SourceMapGenerator; +exports.SourceMapConsumer = __webpack_require__(629).SourceMapConsumer; +exports.SourceNode = __webpack_require__(632).SourceNode; /***/ }), -/* 621 */ +/* 623 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -72012,10 +72108,10 @@ exports.SourceNode = __webpack_require__(630).SourceNode; * http://opensource.org/licenses/BSD-3-Clause */ -var base64VLQ = __webpack_require__(622); -var util = __webpack_require__(624); -var ArraySet = __webpack_require__(625).ArraySet; -var MappingList = __webpack_require__(626).MappingList; +var base64VLQ = __webpack_require__(624); +var util = __webpack_require__(626); +var ArraySet = __webpack_require__(627).ArraySet; +var MappingList = __webpack_require__(628).MappingList; /** * An instance of the SourceMapGenerator represents a source map which is @@ -72424,7 +72520,7 @@ exports.SourceMapGenerator = SourceMapGenerator; /***/ }), -/* 622 */ +/* 624 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -72464,7 +72560,7 @@ exports.SourceMapGenerator = SourceMapGenerator; * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -var base64 = __webpack_require__(623); +var base64 = __webpack_require__(625); // A single base 64 digit can contain 6 bits of data. For the base 64 variable // length quantities we use in the source map spec, the first bit is the sign, @@ -72570,7 +72666,7 @@ exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { /***/ }), -/* 623 */ +/* 625 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -72643,7 +72739,7 @@ exports.decode = function (charCode) { /***/ }), -/* 624 */ +/* 626 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -73066,7 +73162,7 @@ exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflate /***/ }), -/* 625 */ +/* 627 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -73076,7 +73172,7 @@ exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflate * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(624); +var util = __webpack_require__(626); var has = Object.prototype.hasOwnProperty; var hasNativeMap = typeof Map !== "undefined"; @@ -73193,7 +73289,7 @@ exports.ArraySet = ArraySet; /***/ }), -/* 626 */ +/* 628 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -73203,7 +73299,7 @@ exports.ArraySet = ArraySet; * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(624); +var util = __webpack_require__(626); /** * Determine whether mappingB is after mappingA with respect to generated @@ -73278,7 +73374,7 @@ exports.MappingList = MappingList; /***/ }), -/* 627 */ +/* 629 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -73288,11 +73384,11 @@ exports.MappingList = MappingList; * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(624); -var binarySearch = __webpack_require__(628); -var ArraySet = __webpack_require__(625).ArraySet; -var base64VLQ = __webpack_require__(622); -var quickSort = __webpack_require__(629).quickSort; +var util = __webpack_require__(626); +var binarySearch = __webpack_require__(630); +var ArraySet = __webpack_require__(627).ArraySet; +var base64VLQ = __webpack_require__(624); +var quickSort = __webpack_require__(631).quickSort; function SourceMapConsumer(aSourceMap) { var sourceMap = aSourceMap; @@ -74366,7 +74462,7 @@ exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; /***/ }), -/* 628 */ +/* 630 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -74483,7 +74579,7 @@ exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { /***/ }), -/* 629 */ +/* 631 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -74603,7 +74699,7 @@ exports.quickSort = function (ary, comparator) { /***/ }), -/* 630 */ +/* 632 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -74613,8 +74709,8 @@ exports.quickSort = function (ary, comparator) { * http://opensource.org/licenses/BSD-3-Clause */ -var SourceMapGenerator = __webpack_require__(621).SourceMapGenerator; -var util = __webpack_require__(624); +var SourceMapGenerator = __webpack_require__(623).SourceMapGenerator; +var util = __webpack_require__(626); // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other // operating systems these days (capturing the result). @@ -75022,17 +75118,17 @@ exports.SourceNode = SourceNode; /***/ }), -/* 631 */ +/* 633 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014, 2015, 2016, 2017 Simon Lydell // X11 (“MIT”) Licensed. (See LICENSE.) -var sourceMappingURL = __webpack_require__(632) -var resolveUrl = __webpack_require__(633) -var decodeUriComponent = __webpack_require__(634) -var urix = __webpack_require__(636) -var atob = __webpack_require__(637) +var sourceMappingURL = __webpack_require__(634) +var resolveUrl = __webpack_require__(635) +var decodeUriComponent = __webpack_require__(636) +var urix = __webpack_require__(638) +var atob = __webpack_require__(639) @@ -75330,7 +75426,7 @@ module.exports = { /***/ }), -/* 632 */ +/* 634 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;// Copyright 2014 Simon Lydell @@ -75393,7 +75489,7 @@ void (function(root, factory) { /***/ }), -/* 633 */ +/* 635 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014 Simon Lydell @@ -75411,13 +75507,13 @@ module.exports = resolveUrl /***/ }), -/* 634 */ +/* 636 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2017 Simon Lydell // X11 (“MIT”) Licensed. (See LICENSE.) -var decodeUriComponent = __webpack_require__(635) +var decodeUriComponent = __webpack_require__(637) function customDecodeUriComponent(string) { // `decodeUriComponent` turns `+` into ` `, but that's not wanted. @@ -75428,7 +75524,7 @@ module.exports = customDecodeUriComponent /***/ }), -/* 635 */ +/* 637 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75529,7 +75625,7 @@ module.exports = function (encodedURI) { /***/ }), -/* 636 */ +/* 638 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014 Simon Lydell @@ -75552,7 +75648,7 @@ module.exports = urix /***/ }), -/* 637 */ +/* 639 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75566,7 +75662,7 @@ module.exports = atob.atob = atob; /***/ }), -/* 638 */ +/* 640 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75574,8 +75670,8 @@ module.exports = atob.atob = atob; var fs = __webpack_require__(134); var path = __webpack_require__(4); -var define = __webpack_require__(600); -var utils = __webpack_require__(619); +var define = __webpack_require__(602); +var utils = __webpack_require__(621); /** * Expose `mixin()`. @@ -75718,19 +75814,19 @@ exports.comment = function(node) { /***/ }), -/* 639 */ +/* 641 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var use = __webpack_require__(611); +var use = __webpack_require__(613); var util = __webpack_require__(112); -var Cache = __webpack_require__(640); -var define = __webpack_require__(600); -var debug = __webpack_require__(613)('snapdragon:parser'); -var Position = __webpack_require__(641); -var utils = __webpack_require__(619); +var Cache = __webpack_require__(642); +var define = __webpack_require__(602); +var debug = __webpack_require__(615)('snapdragon:parser'); +var Position = __webpack_require__(643); +var utils = __webpack_require__(621); /** * Create a new `Parser` with the given `input` and `options`. @@ -76258,7 +76354,7 @@ module.exports = Parser; /***/ }), -/* 640 */ +/* 642 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -76365,13 +76461,13 @@ MapCache.prototype.del = function mapDelete(key) { /***/ }), -/* 641 */ +/* 643 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var define = __webpack_require__(600); +var define = __webpack_require__(602); /** * Store position for a node @@ -76386,14 +76482,14 @@ module.exports = function Position(start, parser) { /***/ }), -/* 642 */ +/* 644 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(643); -var assignSymbols = __webpack_require__(547); +var isExtendable = __webpack_require__(645); +var assignSymbols = __webpack_require__(549); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -76453,7 +76549,7 @@ function isEnum(obj, key) { /***/ }), -/* 643 */ +/* 645 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -76466,7 +76562,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(546); +var isPlainObject = __webpack_require__(548); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -76474,14 +76570,14 @@ module.exports = function isExtendable(val) { /***/ }), -/* 644 */ +/* 646 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var nanomatch = __webpack_require__(645); -var extglob = __webpack_require__(660); +var nanomatch = __webpack_require__(647); +var extglob = __webpack_require__(662); module.exports = function(snapdragon) { var compilers = snapdragon.compiler.compilers; @@ -76558,7 +76654,7 @@ function escapeExtglobs(compiler) { /***/ }), -/* 645 */ +/* 647 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -76569,17 +76665,17 @@ function escapeExtglobs(compiler) { */ var util = __webpack_require__(112); -var toRegex = __webpack_require__(529); -var extend = __webpack_require__(646); +var toRegex = __webpack_require__(531); +var extend = __webpack_require__(648); /** * Local dependencies */ -var compilers = __webpack_require__(648); -var parsers = __webpack_require__(649); -var cache = __webpack_require__(652); -var utils = __webpack_require__(654); +var compilers = __webpack_require__(650); +var parsers = __webpack_require__(651); +var cache = __webpack_require__(654); +var utils = __webpack_require__(656); var MAX_LENGTH = 1024 * 64; /** @@ -77403,14 +77499,14 @@ module.exports = nanomatch; /***/ }), -/* 646 */ +/* 648 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(647); -var assignSymbols = __webpack_require__(547); +var isExtendable = __webpack_require__(649); +var assignSymbols = __webpack_require__(549); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -77470,7 +77566,7 @@ function isEnum(obj, key) { /***/ }), -/* 647 */ +/* 649 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77483,7 +77579,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(546); +var isPlainObject = __webpack_require__(548); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -77491,7 +77587,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 648 */ +/* 650 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77837,15 +77933,15 @@ module.exports = function(nanomatch, options) { /***/ }), -/* 649 */ +/* 651 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var regexNot = __webpack_require__(548); -var toRegex = __webpack_require__(529); -var isOdd = __webpack_require__(650); +var regexNot = __webpack_require__(550); +var toRegex = __webpack_require__(531); +var isOdd = __webpack_require__(652); /** * Characters to use in negation regex (we want to "not" match @@ -78231,7 +78327,7 @@ module.exports.not = NOT_REGEX; /***/ }), -/* 650 */ +/* 652 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78244,7 +78340,7 @@ module.exports.not = NOT_REGEX; -var isNumber = __webpack_require__(651); +var isNumber = __webpack_require__(653); module.exports = function isOdd(i) { if (!isNumber(i)) { @@ -78258,7 +78354,7 @@ module.exports = function isOdd(i) { /***/ }), -/* 651 */ +/* 653 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78286,14 +78382,14 @@ module.exports = function isNumber(num) { /***/ }), -/* 652 */ +/* 654 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(653))(); +module.exports = new (__webpack_require__(655))(); /***/ }), -/* 653 */ +/* 655 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78306,7 +78402,7 @@ module.exports = new (__webpack_require__(653))(); -var MapCache = __webpack_require__(640); +var MapCache = __webpack_require__(642); /** * Create a new `FragmentCache` with an optional object to use for `caches`. @@ -78428,7 +78524,7 @@ exports = module.exports = FragmentCache; /***/ }), -/* 654 */ +/* 656 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78441,14 +78537,14 @@ var path = __webpack_require__(4); * Module dependencies */ -var isWindows = __webpack_require__(655)(); -var Snapdragon = __webpack_require__(572); -utils.define = __webpack_require__(656); -utils.diff = __webpack_require__(657); -utils.extend = __webpack_require__(646); -utils.pick = __webpack_require__(658); -utils.typeOf = __webpack_require__(659); -utils.unique = __webpack_require__(551); +var isWindows = __webpack_require__(657)(); +var Snapdragon = __webpack_require__(574); +utils.define = __webpack_require__(658); +utils.diff = __webpack_require__(659); +utils.extend = __webpack_require__(648); +utils.pick = __webpack_require__(660); +utils.typeOf = __webpack_require__(661); +utils.unique = __webpack_require__(553); /** * Returns true if the given value is effectively an empty string @@ -78814,7 +78910,7 @@ utils.unixify = function(options) { /***/ }), -/* 655 */ +/* 657 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -78842,7 +78938,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 656 */ +/* 658 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78855,8 +78951,8 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ -var isobject = __webpack_require__(537); -var isDescriptor = __webpack_require__(538); +var isobject = __webpack_require__(539); +var isDescriptor = __webpack_require__(540); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -78887,7 +78983,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 657 */ +/* 659 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78941,7 +79037,7 @@ function diffArray(one, two) { /***/ }), -/* 658 */ +/* 660 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78954,7 +79050,7 @@ function diffArray(one, two) { -var isObject = __webpack_require__(537); +var isObject = __webpack_require__(539); module.exports = function pick(obj, keys) { if (!isObject(obj) && typeof obj !== 'function') { @@ -78983,7 +79079,7 @@ module.exports = function pick(obj, keys) { /***/ }), -/* 659 */ +/* 661 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -79118,7 +79214,7 @@ function isBuffer(val) { /***/ }), -/* 660 */ +/* 662 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79128,18 +79224,18 @@ function isBuffer(val) { * Module dependencies */ -var extend = __webpack_require__(552); -var unique = __webpack_require__(551); -var toRegex = __webpack_require__(529); +var extend = __webpack_require__(554); +var unique = __webpack_require__(553); +var toRegex = __webpack_require__(531); /** * Local dependencies */ -var compilers = __webpack_require__(661); -var parsers = __webpack_require__(667); -var Extglob = __webpack_require__(670); -var utils = __webpack_require__(669); +var compilers = __webpack_require__(663); +var parsers = __webpack_require__(669); +var Extglob = __webpack_require__(672); +var utils = __webpack_require__(671); var MAX_LENGTH = 1024 * 64; /** @@ -79456,13 +79552,13 @@ module.exports = extglob; /***/ }), -/* 661 */ +/* 663 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(662); +var brackets = __webpack_require__(664); /** * Extglob compilers @@ -79632,7 +79728,7 @@ module.exports = function(extglob) { /***/ }), -/* 662 */ +/* 664 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79642,17 +79738,17 @@ module.exports = function(extglob) { * Local dependencies */ -var compilers = __webpack_require__(663); -var parsers = __webpack_require__(665); +var compilers = __webpack_require__(665); +var parsers = __webpack_require__(667); /** * Module dependencies */ -var debug = __webpack_require__(613)('expand-brackets'); -var extend = __webpack_require__(552); -var Snapdragon = __webpack_require__(572); -var toRegex = __webpack_require__(529); +var debug = __webpack_require__(615)('expand-brackets'); +var extend = __webpack_require__(554); +var Snapdragon = __webpack_require__(574); +var toRegex = __webpack_require__(531); /** * Parses the given POSIX character class `pattern` and returns a @@ -79850,13 +79946,13 @@ module.exports = brackets; /***/ }), -/* 663 */ +/* 665 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var posix = __webpack_require__(664); +var posix = __webpack_require__(666); module.exports = function(brackets) { brackets.compiler @@ -79944,7 +80040,7 @@ module.exports = function(brackets) { /***/ }), -/* 664 */ +/* 666 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79973,14 +80069,14 @@ module.exports = { /***/ }), -/* 665 */ +/* 667 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(666); -var define = __webpack_require__(600); +var utils = __webpack_require__(668); +var define = __webpack_require__(602); /** * Text regex @@ -80199,14 +80295,14 @@ module.exports.TEXT_REGEX = TEXT_REGEX; /***/ }), -/* 666 */ +/* 668 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var toRegex = __webpack_require__(529); -var regexNot = __webpack_require__(548); +var toRegex = __webpack_require__(531); +var regexNot = __webpack_require__(550); var cached; /** @@ -80240,15 +80336,15 @@ exports.createRegex = function(pattern, include) { /***/ }), -/* 667 */ +/* 669 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(662); -var define = __webpack_require__(668); -var utils = __webpack_require__(669); +var brackets = __webpack_require__(664); +var define = __webpack_require__(670); +var utils = __webpack_require__(671); /** * Characters to use in text regex (we want to "not" match @@ -80403,7 +80499,7 @@ module.exports = parsers; /***/ }), -/* 668 */ +/* 670 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80416,7 +80512,7 @@ module.exports = parsers; -var isDescriptor = __webpack_require__(538); +var isDescriptor = __webpack_require__(540); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -80441,14 +80537,14 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 669 */ +/* 671 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var regex = __webpack_require__(548); -var Cache = __webpack_require__(653); +var regex = __webpack_require__(550); +var Cache = __webpack_require__(655); /** * Utils @@ -80517,7 +80613,7 @@ utils.createRegex = function(str) { /***/ }), -/* 670 */ +/* 672 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80527,16 +80623,16 @@ utils.createRegex = function(str) { * Module dependencies */ -var Snapdragon = __webpack_require__(572); -var define = __webpack_require__(668); -var extend = __webpack_require__(552); +var Snapdragon = __webpack_require__(574); +var define = __webpack_require__(670); +var extend = __webpack_require__(554); /** * Local dependencies */ -var compilers = __webpack_require__(661); -var parsers = __webpack_require__(667); +var compilers = __webpack_require__(663); +var parsers = __webpack_require__(669); /** * Customize Snapdragon parser and renderer @@ -80602,16 +80698,16 @@ module.exports = Extglob; /***/ }), -/* 671 */ +/* 673 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extglob = __webpack_require__(660); -var nanomatch = __webpack_require__(645); -var regexNot = __webpack_require__(548); -var toRegex = __webpack_require__(529); +var extglob = __webpack_require__(662); +var nanomatch = __webpack_require__(647); +var regexNot = __webpack_require__(550); +var toRegex = __webpack_require__(531); var not; /** @@ -80692,14 +80788,14 @@ function textRegex(pattern) { /***/ }), -/* 672 */ +/* 674 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(653))(); +module.exports = new (__webpack_require__(655))(); /***/ }), -/* 673 */ +/* 675 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80712,13 +80808,13 @@ var path = __webpack_require__(4); * Module dependencies */ -var Snapdragon = __webpack_require__(572); -utils.define = __webpack_require__(674); -utils.diff = __webpack_require__(657); -utils.extend = __webpack_require__(642); -utils.pick = __webpack_require__(658); -utils.typeOf = __webpack_require__(675); -utils.unique = __webpack_require__(551); +var Snapdragon = __webpack_require__(574); +utils.define = __webpack_require__(676); +utils.diff = __webpack_require__(659); +utils.extend = __webpack_require__(644); +utils.pick = __webpack_require__(660); +utils.typeOf = __webpack_require__(677); +utils.unique = __webpack_require__(553); /** * Returns true if the platform is windows, or `path.sep` is `\\`. @@ -81015,7 +81111,7 @@ utils.unixify = function(options) { /***/ }), -/* 674 */ +/* 676 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81028,8 +81124,8 @@ utils.unixify = function(options) { -var isobject = __webpack_require__(537); -var isDescriptor = __webpack_require__(538); +var isobject = __webpack_require__(539); +var isDescriptor = __webpack_require__(540); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -81060,7 +81156,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 675 */ +/* 677 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -81195,7 +81291,7 @@ function isBuffer(val) { /***/ }), -/* 676 */ +/* 678 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81214,9 +81310,9 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(677); -var reader_1 = __webpack_require__(690); -var fs_stream_1 = __webpack_require__(694); +var readdir = __webpack_require__(679); +var reader_1 = __webpack_require__(692); +var fs_stream_1 = __webpack_require__(696); var ReaderAsync = /** @class */ (function (_super) { __extends(ReaderAsync, _super); function ReaderAsync() { @@ -81277,15 +81373,15 @@ exports.default = ReaderAsync; /***/ }), -/* 677 */ +/* 679 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const readdirSync = __webpack_require__(678); -const readdirAsync = __webpack_require__(686); -const readdirStream = __webpack_require__(689); +const readdirSync = __webpack_require__(680); +const readdirAsync = __webpack_require__(688); +const readdirStream = __webpack_require__(691); module.exports = exports = readdirAsyncPath; exports.readdir = exports.readdirAsync = exports.async = readdirAsyncPath; @@ -81369,7 +81465,7 @@ function readdirStreamStat (dir, options) { /***/ }), -/* 678 */ +/* 680 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81377,11 +81473,11 @@ function readdirStreamStat (dir, options) { module.exports = readdirSync; -const DirectoryReader = __webpack_require__(679); +const DirectoryReader = __webpack_require__(681); let syncFacade = { - fs: __webpack_require__(684), - forEach: __webpack_require__(685), + fs: __webpack_require__(686), + forEach: __webpack_require__(687), sync: true }; @@ -81410,7 +81506,7 @@ function readdirSync (dir, options, internalOptions) { /***/ }), -/* 679 */ +/* 681 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81419,9 +81515,9 @@ function readdirSync (dir, options, internalOptions) { const Readable = __webpack_require__(138).Readable; const EventEmitter = __webpack_require__(156).EventEmitter; const path = __webpack_require__(4); -const normalizeOptions = __webpack_require__(680); -const stat = __webpack_require__(682); -const call = __webpack_require__(683); +const normalizeOptions = __webpack_require__(682); +const stat = __webpack_require__(684); +const call = __webpack_require__(685); /** * Asynchronously reads the contents of a directory and streams the results @@ -81797,14 +81893,14 @@ module.exports = DirectoryReader; /***/ }), -/* 680 */ +/* 682 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const globToRegExp = __webpack_require__(681); +const globToRegExp = __webpack_require__(683); module.exports = normalizeOptions; @@ -81981,7 +82077,7 @@ function normalizeOptions (options, internalOptions) { /***/ }), -/* 681 */ +/* 683 */ /***/ (function(module, exports) { module.exports = function (glob, opts) { @@ -82118,13 +82214,13 @@ module.exports = function (glob, opts) { /***/ }), -/* 682 */ +/* 684 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const call = __webpack_require__(683); +const call = __webpack_require__(685); module.exports = stat; @@ -82199,7 +82295,7 @@ function symlinkStat (fs, path, lstats, callback) { /***/ }), -/* 683 */ +/* 685 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82260,14 +82356,14 @@ function callOnce (fn) { /***/ }), -/* 684 */ +/* 686 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); -const call = __webpack_require__(683); +const call = __webpack_require__(685); /** * A facade around {@link fs.readdirSync} that allows it to be called @@ -82331,7 +82427,7 @@ exports.lstat = function (path, callback) { /***/ }), -/* 685 */ +/* 687 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82360,7 +82456,7 @@ function syncForEach (array, iterator, done) { /***/ }), -/* 686 */ +/* 688 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82368,12 +82464,12 @@ function syncForEach (array, iterator, done) { module.exports = readdirAsync; -const maybe = __webpack_require__(687); -const DirectoryReader = __webpack_require__(679); +const maybe = __webpack_require__(689); +const DirectoryReader = __webpack_require__(681); let asyncFacade = { fs: __webpack_require__(134), - forEach: __webpack_require__(688), + forEach: __webpack_require__(690), async: true }; @@ -82415,7 +82511,7 @@ function readdirAsync (dir, options, callback, internalOptions) { /***/ }), -/* 687 */ +/* 689 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82442,7 +82538,7 @@ module.exports = function maybe (cb, promise) { /***/ }), -/* 688 */ +/* 690 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82478,7 +82574,7 @@ function asyncForEach (array, iterator, done) { /***/ }), -/* 689 */ +/* 691 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82486,11 +82582,11 @@ function asyncForEach (array, iterator, done) { module.exports = readdirStream; -const DirectoryReader = __webpack_require__(679); +const DirectoryReader = __webpack_require__(681); let streamFacade = { fs: __webpack_require__(134), - forEach: __webpack_require__(688), + forEach: __webpack_require__(690), async: true }; @@ -82510,16 +82606,16 @@ function readdirStream (dir, options, internalOptions) { /***/ }), -/* 690 */ +/* 692 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = __webpack_require__(4); -var deep_1 = __webpack_require__(691); -var entry_1 = __webpack_require__(693); -var pathUtil = __webpack_require__(692); +var deep_1 = __webpack_require__(693); +var entry_1 = __webpack_require__(695); +var pathUtil = __webpack_require__(694); var Reader = /** @class */ (function () { function Reader(options) { this.options = options; @@ -82585,14 +82681,14 @@ exports.default = Reader; /***/ }), -/* 691 */ +/* 693 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(692); -var patternUtils = __webpack_require__(523); +var pathUtils = __webpack_require__(694); +var patternUtils = __webpack_require__(525); var DeepFilter = /** @class */ (function () { function DeepFilter(options, micromatchOptions) { this.options = options; @@ -82675,7 +82771,7 @@ exports.default = DeepFilter; /***/ }), -/* 692 */ +/* 694 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82706,14 +82802,14 @@ exports.makeAbsolute = makeAbsolute; /***/ }), -/* 693 */ +/* 695 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(692); -var patternUtils = __webpack_require__(523); +var pathUtils = __webpack_require__(694); +var patternUtils = __webpack_require__(525); var EntryFilter = /** @class */ (function () { function EntryFilter(options, micromatchOptions) { this.options = options; @@ -82798,7 +82894,7 @@ exports.default = EntryFilter; /***/ }), -/* 694 */ +/* 696 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82818,8 +82914,8 @@ var __extends = (this && this.__extends) || (function () { })(); Object.defineProperty(exports, "__esModule", { value: true }); var stream = __webpack_require__(138); -var fsStat = __webpack_require__(695); -var fs_1 = __webpack_require__(699); +var fsStat = __webpack_require__(697); +var fs_1 = __webpack_require__(701); var FileSystemStream = /** @class */ (function (_super) { __extends(FileSystemStream, _super); function FileSystemStream() { @@ -82869,14 +82965,14 @@ exports.default = FileSystemStream; /***/ }), -/* 695 */ +/* 697 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const optionsManager = __webpack_require__(696); -const statProvider = __webpack_require__(698); +const optionsManager = __webpack_require__(698); +const statProvider = __webpack_require__(700); /** * Asynchronous API. */ @@ -82907,13 +83003,13 @@ exports.statSync = statSync; /***/ }), -/* 696 */ +/* 698 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsAdapter = __webpack_require__(697); +const fsAdapter = __webpack_require__(699); function prepare(opts) { const options = Object.assign({ fs: fsAdapter.getFileSystemAdapter(opts ? opts.fs : undefined), @@ -82926,7 +83022,7 @@ exports.prepare = prepare; /***/ }), -/* 697 */ +/* 699 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82949,7 +83045,7 @@ exports.getFileSystemAdapter = getFileSystemAdapter; /***/ }), -/* 698 */ +/* 700 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83001,7 +83097,7 @@ exports.isFollowedSymlink = isFollowedSymlink; /***/ }), -/* 699 */ +/* 701 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83032,7 +83128,7 @@ exports.default = FileSystem; /***/ }), -/* 700 */ +/* 702 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83052,9 +83148,9 @@ var __extends = (this && this.__extends) || (function () { })(); Object.defineProperty(exports, "__esModule", { value: true }); var stream = __webpack_require__(138); -var readdir = __webpack_require__(677); -var reader_1 = __webpack_require__(690); -var fs_stream_1 = __webpack_require__(694); +var readdir = __webpack_require__(679); +var reader_1 = __webpack_require__(692); +var fs_stream_1 = __webpack_require__(696); var TransformStream = /** @class */ (function (_super) { __extends(TransformStream, _super); function TransformStream(reader) { @@ -83122,7 +83218,7 @@ exports.default = ReaderStream; /***/ }), -/* 701 */ +/* 703 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83141,9 +83237,9 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(677); -var reader_1 = __webpack_require__(690); -var fs_sync_1 = __webpack_require__(702); +var readdir = __webpack_require__(679); +var reader_1 = __webpack_require__(692); +var fs_sync_1 = __webpack_require__(704); var ReaderSync = /** @class */ (function (_super) { __extends(ReaderSync, _super); function ReaderSync() { @@ -83203,7 +83299,7 @@ exports.default = ReaderSync; /***/ }), -/* 702 */ +/* 704 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83222,8 +83318,8 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var fsStat = __webpack_require__(695); -var fs_1 = __webpack_require__(699); +var fsStat = __webpack_require__(697); +var fs_1 = __webpack_require__(701); var FileSystemSync = /** @class */ (function (_super) { __extends(FileSystemSync, _super); function FileSystemSync() { @@ -83269,7 +83365,7 @@ exports.default = FileSystemSync; /***/ }), -/* 703 */ +/* 705 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83285,7 +83381,7 @@ exports.flatten = flatten; /***/ }), -/* 704 */ +/* 706 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83306,13 +83402,13 @@ exports.merge = merge; /***/ }), -/* 705 */ +/* 707 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const pathType = __webpack_require__(706); +const pathType = __webpack_require__(708); const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; @@ -83378,13 +83474,13 @@ module.exports.sync = (input, opts) => { /***/ }), -/* 706 */ +/* 708 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); -const pify = __webpack_require__(707); +const pify = __webpack_require__(709); function type(fn, fn2, fp) { if (typeof fp !== 'string') { @@ -83427,7 +83523,7 @@ exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink'); /***/ }), -/* 707 */ +/* 709 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83518,17 +83614,17 @@ module.exports = (obj, opts) => { /***/ }), -/* 708 */ +/* 710 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); const path = __webpack_require__(4); -const fastGlob = __webpack_require__(519); -const gitIgnore = __webpack_require__(709); -const pify = __webpack_require__(710); -const slash = __webpack_require__(711); +const fastGlob = __webpack_require__(521); +const gitIgnore = __webpack_require__(711); +const pify = __webpack_require__(712); +const slash = __webpack_require__(713); const DEFAULT_IGNORE = [ '**/node_modules/**', @@ -83626,7 +83722,7 @@ module.exports.sync = options => { /***/ }), -/* 709 */ +/* 711 */ /***/ (function(module, exports) { // A simple implementation of make-array @@ -84095,7 +84191,7 @@ module.exports = options => new IgnoreBase(options) /***/ }), -/* 710 */ +/* 712 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84170,7 +84266,7 @@ module.exports = (input, options) => { /***/ }), -/* 711 */ +/* 713 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84188,7 +84284,7 @@ module.exports = input => { /***/ }), -/* 712 */ +/* 714 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84201,7 +84297,7 @@ module.exports = input => { -var isGlob = __webpack_require__(713); +var isGlob = __webpack_require__(715); module.exports = function hasGlob(val) { if (val == null) return false; @@ -84221,7 +84317,7 @@ module.exports = function hasGlob(val) { /***/ }), -/* 713 */ +/* 715 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -84252,17 +84348,17 @@ module.exports = function isGlob(str) { /***/ }), -/* 714 */ +/* 716 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); const {constants: fsConstants} = __webpack_require__(134); -const pEvent = __webpack_require__(715); -const CpFileError = __webpack_require__(718); -const fs = __webpack_require__(720); -const ProgressEmitter = __webpack_require__(723); +const pEvent = __webpack_require__(717); +const CpFileError = __webpack_require__(720); +const fs = __webpack_require__(722); +const ProgressEmitter = __webpack_require__(725); const cpFileAsync = async (source, destination, options, progressEmitter) => { let readError; @@ -84376,12 +84472,12 @@ module.exports.sync = (source, destination, options) => { /***/ }), -/* 715 */ +/* 717 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pTimeout = __webpack_require__(716); +const pTimeout = __webpack_require__(718); const symbolAsyncIterator = Symbol.asyncIterator || '@@asyncIterator'; @@ -84672,12 +84768,12 @@ module.exports.iterator = (emitter, event, options) => { /***/ }), -/* 716 */ +/* 718 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pFinally = __webpack_require__(717); +const pFinally = __webpack_require__(719); class TimeoutError extends Error { constructor(message) { @@ -84723,7 +84819,7 @@ module.exports.TimeoutError = TimeoutError; /***/ }), -/* 717 */ +/* 719 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84745,12 +84841,12 @@ module.exports = (promise, onFinally) => { /***/ }), -/* 718 */ +/* 720 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(719); +const NestedError = __webpack_require__(721); class CpFileError extends NestedError { constructor(message, nested) { @@ -84764,7 +84860,7 @@ module.exports = CpFileError; /***/ }), -/* 719 */ +/* 721 */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(112).inherits; @@ -84820,16 +84916,16 @@ module.exports = NestedError; /***/ }), -/* 720 */ +/* 722 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const {promisify} = __webpack_require__(112); const fs = __webpack_require__(133); -const makeDir = __webpack_require__(721); -const pEvent = __webpack_require__(715); -const CpFileError = __webpack_require__(718); +const makeDir = __webpack_require__(723); +const pEvent = __webpack_require__(717); +const CpFileError = __webpack_require__(720); const stat = promisify(fs.stat); const lstat = promisify(fs.lstat); @@ -84926,7 +85022,7 @@ exports.copyFileSync = (source, destination, flags) => { /***/ }), -/* 721 */ +/* 723 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84934,7 +85030,7 @@ exports.copyFileSync = (source, destination, flags) => { const fs = __webpack_require__(134); const path = __webpack_require__(4); const {promisify} = __webpack_require__(112); -const semver = __webpack_require__(722); +const semver = __webpack_require__(724); const useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0'); @@ -85089,7 +85185,7 @@ module.exports.sync = (input, options) => { /***/ }), -/* 722 */ +/* 724 */ /***/ (function(module, exports) { exports = module.exports = SemVer @@ -86691,7 +86787,7 @@ function coerce (version, options) { /***/ }), -/* 723 */ +/* 725 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86732,7 +86828,7 @@ module.exports = ProgressEmitter; /***/ }), -/* 724 */ +/* 726 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86778,12 +86874,12 @@ exports.default = module.exports; /***/ }), -/* 725 */ +/* 727 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pMap = __webpack_require__(726); +const pMap = __webpack_require__(728); const pFilter = async (iterable, filterer, options) => { const values = await pMap( @@ -86800,7 +86896,7 @@ module.exports.default = pFilter; /***/ }), -/* 726 */ +/* 728 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86879,12 +86975,12 @@ module.exports.default = pMap; /***/ }), -/* 727 */ +/* 729 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(719); +const NestedError = __webpack_require__(721); class CpyError extends NestedError { constructor(message, nested) { diff --git a/test/common/services/es_archiver.ts b/test/common/services/es_archiver.ts index e1b85ddf8bc9..e6d4a8a56af2 100644 --- a/test/common/services/es_archiver.ts +++ b/test/common/services/es_archiver.ts @@ -14,7 +14,7 @@ import * as KibanaServer from './kibana_server'; export function EsArchiverProvider({ getService }: FtrProviderContext): EsArchiver { const config = getService('config'); - const client = getService('legacyEs'); + const client = getService('es'); const log = getService('log'); const kibanaServer = getService('kibanaServer'); const retry = getService('retry'); diff --git a/yarn.lock b/yarn.lock index 08d1d31735e2..a1615ed13e9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7386,6 +7386,14 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +aggregate-error@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + airbnb-js-shims@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz#db481102d682b98ed1daa4c5baa697a05ce5c040"