From be3d5f97c142a1a62831cbb6b70edb79ac62ed02 Mon Sep 17 00:00:00 2001 From: Paula Stachova Date: Mon, 30 Sep 2024 12:55:16 +0200 Subject: [PATCH 01/31] fix: remove compass-preferences from connection-form completely COMPASS-8098 (#6294) --- package-lock.json | 2 - .../components/legacy/favorite-indicator.tsx | 27 -- .../legacy/navigation-items.spec.tsx | 82 ---- .../components/legacy/navigation-items.tsx | 416 ----------------- .../legacy/sidebar-databases-navigation.tsx | 429 ------------------ .../src/components/legacy/sidebar-title.tsx | 174 ------- .../src/components/legacy/sidebar.tsx | 268 ----------- packages/compass-sidebar/src/plugin.tsx | 26 +- packages/connection-form/package.json | 1 - .../src/components/connection-form.spec.tsx | 15 +- .../src/components/favorite-color-picker.tsx | 163 ------- .../components/save-connection-modal.spec.tsx | 168 ------- .../src/components/save-connection-modal.tsx | 76 ---- .../src/hooks/use-connection-color.spec.tsx | 29 -- .../src/hooks/use-connection-color.ts | 62 +-- packages/connection-form/src/index.ts | 3 - 16 files changed, 11 insertions(+), 1930 deletions(-) delete mode 100644 packages/compass-sidebar/src/components/legacy/favorite-indicator.tsx delete mode 100644 packages/compass-sidebar/src/components/legacy/navigation-items.spec.tsx delete mode 100644 packages/compass-sidebar/src/components/legacy/navigation-items.tsx delete mode 100644 packages/compass-sidebar/src/components/legacy/sidebar-databases-navigation.tsx delete mode 100644 packages/compass-sidebar/src/components/legacy/sidebar-title.tsx delete mode 100644 packages/compass-sidebar/src/components/legacy/sidebar.tsx delete mode 100644 packages/connection-form/src/components/favorite-color-picker.tsx delete mode 100644 packages/connection-form/src/components/save-connection-modal.spec.tsx delete mode 100644 packages/connection-form/src/components/save-connection-modal.tsx diff --git a/package-lock.json b/package-lock.json index 5cbc368642d..df47bfba330 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47563,7 +47563,6 @@ "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/shell-bson-parser": "^1.1.2", - "compass-preferences-model": "^2.29.0", "lodash": "^4.17.21", "mongodb": "^6.8.0", "mongodb-build-info": "^1.7.2", @@ -59197,7 +59196,6 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.7.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", diff --git a/packages/compass-sidebar/src/components/legacy/favorite-indicator.tsx b/packages/compass-sidebar/src/components/legacy/favorite-indicator.tsx deleted file mode 100644 index cb504e8deae..00000000000 --- a/packages/compass-sidebar/src/components/legacy/favorite-indicator.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; - -import type { ConnectionFavoriteOptions } from '@mongodb-js/connection-info'; -import { useConnectionColor } from '@mongodb-js/connection-form'; - -import { css, spacing } from '@mongodb-js/compass-components'; - -const favoriteCSS = css({ - height: spacing[2], -}); - -export default function FavoriteIndicator({ - favoriteColor, -}: { - favoriteColor: ConnectionFavoriteOptions['color']; -}) { - const { connectionColorToHex } = useConnectionColor(); - - const favoriteColorHex = connectionColorToHex(favoriteColor) ?? 'transparent'; - - return ( -
- ); -} diff --git a/packages/compass-sidebar/src/components/legacy/navigation-items.spec.tsx b/packages/compass-sidebar/src/components/legacy/navigation-items.spec.tsx deleted file mode 100644 index c4691923791..00000000000 --- a/packages/compass-sidebar/src/components/legacy/navigation-items.spec.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import React from 'react'; -import { expect } from 'chai'; -import { render, screen, cleanup } from '@mongodb-js/testing-library-compass'; -import { Provider } from 'react-redux'; -import { createStore, applyMiddleware } from 'redux'; -import thunk from 'redux-thunk'; -import reducer from '../../modules'; - -import { NavigationItems } from './navigation-items'; -import { WorkspacesProvider } from '@mongodb-js/compass-workspaces'; - -const CONNECTION_ID = 'webscale'; - -function renderNavigationItems( - props?: Partial> -) { - const store = createStore(reducer, applyMiddleware(thunk)); - return render( - - null }, - { name: 'Performance', component: () => null }, - ]} - > - { - /* noop */ - }} - showCreateDatabaseAction={true} - isPerformanceTabSupported={true} - activeWorkspace={null} - {...props} - /> - - - ); -} - -const createDatabaseText = 'Create database'; -const refreshCTAText = 'Refresh databases'; - -// TODO(COMPASS-7906): remove -describe.skip('NavigationItems [Component]', function () { - afterEach(cleanup); - - describe('when rendered', function () { - it('renders the create database button', function () { - renderNavigationItems(); - expect(screen.getByLabelText(createDatabaseText)).to.be.visible; - }); - - it('renders the refresh databases button', function () { - renderNavigationItems(); - expect(screen.getByLabelText(refreshCTAText)).to.be.visible; - }); - }); - - describe('when rendered read only', function () { - it('does not render the create database button', function () { - renderNavigationItems({ - showCreateDatabaseAction: false, - }); - expect(screen.queryByLabelText(createDatabaseText)).to.not.exist; - }); - }); - - describe('when performance tab is not supported', function () { - it('renders disabled "Performance" navigation item', function () { - renderNavigationItems({ - isPerformanceTabSupported: false, - }); - - expect(screen.getByRole('button', { name: 'Performance' })).to.exist; - expect( - screen.getByRole('button', { name: 'Performance' }) - ).to.have.attribute('aria-disabled', 'true'); - }); - }); -}); diff --git a/packages/compass-sidebar/src/components/legacy/navigation-items.tsx b/packages/compass-sidebar/src/components/legacy/navigation-items.tsx deleted file mode 100644 index b6ee65ad57a..00000000000 --- a/packages/compass-sidebar/src/components/legacy/navigation-items.tsx +++ /dev/null @@ -1,416 +0,0 @@ -import React, { useCallback, useMemo, useState } from 'react'; -import { connect } from 'react-redux'; -import { - useHoverState, - css, - cx, - ItemActionControls, - spacing, - Icon, - useFocusRing, - mergeProps, - useDefaultAction, - SignalPopover, - PerformanceSignals, - Placeholder, - ContentWithFallback, - palette, - useDarkMode, - Tooltip, -} from '@mongodb-js/compass-components'; -import { - usePreference, - withPreferences, -} from 'compass-preferences-model/provider'; -import type { ItemAction } from '@mongodb-js/compass-components'; -import NavigationItemsFilter from '../navigation-items-filter'; -import SidebarDatabasesNavigation from './sidebar-databases-navigation'; -import type { RootState } from '../../modules'; -import { - useOpenWorkspace, - useWorkspacePlugins, -} from '@mongodb-js/compass-workspaces/provider'; -import type { ConnectionInfo } from '@mongodb-js/connection-info'; -import type { WorkspaceTab } from '@mongodb-js/compass-workspaces'; - -type DatabasesActions = 'open-create-database' | 'refresh-databases'; - -const navigationItem = css({ - cursor: 'pointer', - color: 'var(--item-color)', - border: 'none', - height: spacing[800], - position: 'relative', - - '& .item-action-controls': { - marginLeft: 'auto', - marginRight: spacing[100], - }, - - '&:hover .item-background': { - display: 'block', - backgroundColor: 'var(--item-bg-color-hover)', - }, - - '& .item-action-controls:hover + .item-background': { - display: 'none', - }, - - svg: { - flexShrink: 0, - }, -}); - -const activeNavigationItem = css({ - color: 'var(--item-color-active)', - fontWeight: 'bold', - - '.item-background, :hover .item-background': { - backgroundColor: 'var(--item-bg-color-active)', - }, - - // this is copied from leafygreen's own navigation, hence the pixel values - '::before': { - zIndex: 1, - backgroundColor: 'var(--item-color-active)', - content: '""', - position: 'absolute', - left: '0px', - top: '6px', - bottom: '6px', - width: '4px', - borderRadius: '0px 6px 6px 0px', - }, -}); - -const itemPlaceholderStyles = css({ - width: '100%', - display: 'flex', - alignItems: 'center', - paddingLeft: spacing[400], - height: spacing[800], -}); - -const itemWrapper = css({ - position: 'relative', - display: 'flex', - alignItems: 'center', - height: spacing[800], - gap: spacing[200], - zIndex: 1, -}); - -const itemBackground = css({ - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%', - zIndex: -1, -}); - -const itemButtonWrapper = css({ - display: 'flex', - alignItems: 'center', - minWidth: 0, - paddingLeft: spacing[400], -}); - -const signalContainerStyles = css({ - flex: 'none', -}); - -const navigationItemLabel = css({ - overflow: 'hidden', - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - marginLeft: spacing[200], -}); - -const navigationItemDisabledDarkModeStyles = css({ - '--item-color': palette.gray.dark1, - '--item-color-active': palette.gray.dark1, - '--item-bg-color-hover': 'var(--item-bg-color)', -}); - -const navigationItemDisabledLightModeStyles = css({ - '--item-color': palette.gray.base, - '--item-color-active': palette.gray.base, - '--item-bg-color-hover': 'var(--item-bg-color)', -}); - -const databaseCollectionsFilter = css({ - margin: `${spacing[100]}px ${spacing[400]}px`, -}); - -const navigationItemActionIcons = css({ color: 'inherit' }); - -export function NavigationItem({ - onAction, - onClick: onButtonClick, - glyph, - label, - actions, - isActive, - showTooManyCollectionsInsight, - disabled: isButtonDisabled = false, - disabledMessage: buttonDisabledMessage, -}: { - onAction(actionName: Actions, ...rest: any[]): void; - onClick(): void; - glyph: string; - label: string; - actions?: ItemAction[]; - isActive: boolean; - showTooManyCollectionsInsight?: boolean; - disabled?: boolean; - disabledMessage?: string; -}) { - const darkMode = useDarkMode(); - const showInsights = usePreference('showInsights'); - const onClick = useCallback(() => { - if (isButtonDisabled) { - return; - } - onButtonClick(); - }, [isButtonDisabled, onButtonClick]); - const [hoverProps] = useHoverState(); - const focusRingProps = useFocusRing(); - const defaultActionProps = useDefaultAction(onClick); - - const navigationItemProps = mergeProps( - { - className: cx( - navigationItem, - isActive && activeNavigationItem, - isButtonDisabled && - (darkMode - ? navigationItemDisabledDarkModeStyles - : navigationItemDisabledLightModeStyles) - ), - role: 'button', - ['aria-label']: label, - ['aria-current']: isActive, - ['aria-disabled']: isButtonDisabled, - tabIndex: 0, - }, - hoverProps, - defaultActionProps, - focusRingProps - ) as React.HTMLProps; - - return ( - -
-
- - {label} -
- {showInsights && showTooManyCollectionsInsight && ( -
- -
- )} - {!isButtonDisabled && actions && ( - - iconSize="small" - onAction={onAction} - data-testid="sidebar-navigation-item-actions" - actions={actions} - // This is what renders the "create database" action, - // the icons here should always be clearly visible, - // so we let the icon to inherit the foreground color of - // the text - isVisible={true} - iconClassName={navigationItemActionIcons} - collapseToMenuThreshold={3} - > - )} -
-
-
- } - > - {buttonDisabledMessage} -
- ); -} - -const PlaceholderItem = ({ forLabel }: { forLabel: string }) => { - return ( -
- -
- ); -}; - -export function NavigationItems({ - isReady, - connectionInfo, - showCreateDatabaseAction, - isPerformanceTabSupported, - onAction, - activeWorkspace, - showTooManyCollectionsInsight = false, -}: { - isReady?: boolean; - connectionInfo: ConnectionInfo; - showCreateDatabaseAction: boolean; - isPerformanceTabSupported: boolean; - onAction(actionName: string, ...rest: any[]): void; - activeWorkspace: WorkspaceTab | null; - showTooManyCollectionsInsight?: boolean; -}) { - const { - openMyQueriesWorkspace, - openPerformanceWorkspace, - openDatabasesWorkspace, - } = useOpenWorkspace(); - const { hasWorkspacePlugin } = useWorkspacePlugins(); - - const [databasesFilterRegex, setDatabasesFilterRegex] = - useState(null); - - const onDatabasesFilterChange = useCallback( - (filterRegex: RegExp | null) => setDatabasesFilterRegex(filterRegex), - [setDatabasesFilterRegex] - ); - - const databasesActions = useMemo(() => { - const actions: ItemAction[] = [ - { - action: 'refresh-databases', - label: 'Refresh databases', - icon: 'Refresh', - }, - ]; - - if (showCreateDatabaseAction) { - actions.push({ - action: 'open-create-database', - label: 'Create database', - icon: 'Plus', - }); - } - - return actions; - }, [showCreateDatabaseAction]); - - return ( - <> - { - return ( - shouldRender && ( - <> - {hasWorkspacePlugin('My Queries') && ( - - )} - {hasWorkspacePlugin('Performance') && ( - - )} - - - ) - ); - }} - content={(shouldRender) => { - return ( - shouldRender && ( - <> - {hasWorkspacePlugin('My Queries') && ( - - onAction={onAction} - onClick={openMyQueriesWorkspace} - glyph="CurlyBraces" - label="My Queries" - isActive={activeWorkspace?.type === 'My Queries'} - /> - )} - {hasWorkspacePlugin('Performance') && ( - - onAction={onAction} - onClick={() => openPerformanceWorkspace(connectionInfo.id)} - glyph="Gauge" - label="Performance" - isActive={activeWorkspace?.type === 'Performance'} - disabled={!isPerformanceTabSupported} - disabledMessage="Performance metrics are not available for your deployment or to your database user" - /> - )} - - onAction={onAction} - onClick={() => openDatabasesWorkspace(connectionInfo.id)} - glyph="Database" - label="Databases" - actions={databasesActions} - isActive={activeWorkspace?.type === 'Databases'} - showTooManyCollectionsInsight={showTooManyCollectionsInsight} - /> - - ) - ); - }} - > - - - - - ); -} - -const mapStateToProps = ( - state: RootState, - { - connectionInfo, - readOnly: preferencesReadOnly, - }: { connectionInfo: ConnectionInfo; readOnly: boolean } -) => { - const connectionId = connectionInfo.id; - const totalCollectionsCount = ( - state.databases[connectionId]?.databases ?? [] - ).reduce((acc: number, db: { collectionsLength: number }) => { - return acc + db.collectionsLength; - }, 0); - - const isReady = - ['ready', 'refreshing'].includes( - state.instance[connectionId]?.status ?? '' - ) && typeof state.isPerformanceTabSupported[connectionId] === 'boolean'; - - const isDataLake = state.instance[connectionId]?.dataLake.isDataLake ?? false; - const isWritable = state.instance[connectionId]?.isWritable ?? false; - - return { - isReady, - showPerformanceItem: !isDataLake, - showCreateDatabaseAction: !isDataLake && isWritable && !preferencesReadOnly, - showTooManyCollectionsInsight: totalCollectionsCount > 10_000, - isPerformanceTabSupported: - !isDataLake && !!state.isPerformanceTabSupported[connectionId], - }; -}; - -const MappedNavigationItems = withPreferences( - connect(mapStateToProps)(NavigationItems), - ['readOnly'] -); - -export default MappedNavigationItems; diff --git a/packages/compass-sidebar/src/components/legacy/sidebar-databases-navigation.tsx b/packages/compass-sidebar/src/components/legacy/sidebar-databases-navigation.tsx deleted file mode 100644 index 9f9282d5eed..00000000000 --- a/packages/compass-sidebar/src/components/legacy/sidebar-databases-navigation.tsx +++ /dev/null @@ -1,429 +0,0 @@ -import React, { useCallback, useEffect, useMemo, useState } from 'react'; -import { - type MapDispatchToProps, - type MapStateToProps, - connect, -} from 'react-redux'; -import { ConnectionsNavigationTree } from '@mongodb-js/compass-connections-navigation'; -import type { - Actions, - SidebarConnectedConnection, - SidebarItem, -} from '@mongodb-js/compass-connections-navigation'; -import toNS from 'mongodb-ns'; -import { - fetchAllCollections, - onDatabaseExpand, - type Database, -} from '../../modules/databases'; -import type { RootState, SidebarThunkAction } from '../../modules'; -import { useOpenWorkspace } from '@mongodb-js/compass-workspaces/provider'; -import type { ConnectionInfo } from '@mongodb-js/connection-info'; -import { findCollection } from '../../helpers/find-collection'; -import { ConnectionStatus } from '@mongodb-js/compass-connections/provider'; - -type ExpandedDatabases = Record< - Database['_id'], - 'expanded' | 'tempExpanded' | undefined ->; - -interface Match { - isMatch?: boolean; -} - -type Collection = Database['collections'][number]; - -type FilteredCollection = Collection & Match; -type FilteredDatabase = Omit & - Match & { - collections: FilteredCollection[]; - }; - -const filterDatabases = ( - databases: Database[], - regex: RegExp -): FilteredDatabase[] => { - const results: FilteredDatabase[] = []; - for (const db of databases) { - const isMatch = regex.test(db.name); - const childMatches = filterCollections(db.collections, regex); - - if (isMatch || childMatches.length) { - results.push({ - ...db, - isMatch, - collections: - !isMatch && childMatches.length ? childMatches : db.collections, - }); - } - } - return results; -}; - -const filterCollections = ( - collections: Collection[], - regex: RegExp -): FilteredCollection[] => { - return collections - .filter(({ name }) => regex.test(name)) - .map((collection) => ({ ...collection, isMatch: true })); -}; - -/** - * Take the starting expandedDatabase, and add 'tempExpanded' to collapsed items that: - * - are included in the filterResults - * - they either are a direct match, or their children are a direct match - */ -const applyTempExpanded = ( - expandedDatabases: ExpandedDatabases, - filterResults: FilteredDatabase[] -): ExpandedDatabases => { - const newExpanded = { ...expandedDatabases }; - - filterResults.forEach(({ _id: databaseId, isMatch, collections }) => { - const childrenCollsAreMatch = collections.length && collections[0].isMatch; - if ((isMatch || childrenCollsAreMatch) && !newExpanded[databaseId]) { - newExpanded[databaseId] = 'tempExpanded'; - } - }); - return newExpanded; -}; - -/** - * Reverts 'applyTempExpanded', bringing the items back to collapsed state - */ -const clearTempExpanded = ( - expandedDatabases: ExpandedDatabases -): ExpandedDatabases => { - const cleared: ExpandedDatabases = Object.fromEntries( - Object.entries(expandedDatabases || []).map(([dbId, dbState]) => [ - dbId, - dbState === 'tempExpanded' ? undefined : dbState, - ]) - ); - return cleared; -}; -type SidebarDatabasesNavigationComponentProps = Pick< - React.ComponentProps, - 'activeWorkspace' -> & { - connectionInfo: ConnectionInfo; - filterRegex: RegExp | null; -}; - -type MapStateProps = { - connections: SidebarConnectedConnection[]; -}; - -type MapDispatchProps = { - fetchAllCollections(connectionId: string): void; - onNamespaceAction( - connectionId: string, - namespace: string, - action: Actions - ): void; - onDatabaseExpand(connectionId: string, databaseId: string): void; -}; - -type SidebarDatabasesNavigationProps = - SidebarDatabasesNavigationComponentProps & MapStateProps & MapDispatchProps; - -function SidebarDatabasesNavigation({ - connections, - onNamespaceAction: _onNamespaceAction, - onDatabaseExpand: _onDatabaseExpand, - fetchAllCollections: _fetchAllCollections, - activeWorkspace, - filterRegex, -}: SidebarDatabasesNavigationProps) { - const { - openCollectionsWorkspace, - openCollectionWorkspace, - openEditViewWorkspace, - } = useOpenWorkspace(); - const connection = connections[0]; - const connectionId = connection.connectionInfo.id; - - const [expandedDatabases, setExpandedDatabases] = useState( - {} - ); - const [filteredDatabases, setFilteredDatabases] = useState< - Database[] | undefined - >(undefined); - - const handleDatabaseExpand = useCallback( - (actionConnectionId: string, namespace: string, isExpanded: boolean) => { - if (actionConnectionId !== connectionId) return; - const { database: databaseId } = toNS(namespace); - setExpandedDatabases((expandedDatabases) => { - return { - ...expandedDatabases, - [databaseId]: isExpanded ? 'expanded' : undefined, - }; - }); - _onDatabaseExpand(connectionId, databaseId); - }, - [setExpandedDatabases, _onDatabaseExpand, connectionId] - ); - - const connectionsButOnlyIfFilterIsActive = filteredDatabases && connections; - const filteredConnections: SidebarConnectedConnection[] | undefined = - useMemo(() => { - if (filteredDatabases && connectionsButOnlyIfFilterIsActive) { - return [ - { - ...connectionsButOnlyIfFilterIsActive[0], - databases: filteredDatabases, - }, - ]; - } - }, [filteredDatabases, connectionsButOnlyIfFilterIsActive]); - - const expandedMemo: Record> = useMemo( - () => ({ - [connectionId]: Object.fromEntries( - Object.entries(expandedDatabases || {}).map(([dbId, dbState]) => [ - dbId, - !!dbState, - ]) - ), - }), - [expandedDatabases, connectionId] - ); - - const temporarilyExpand = useCallback( - (filterResults: FilteredDatabase[]) => { - setExpandedDatabases((expandedDatabases: ExpandedDatabases) => { - const expandedStart = clearTempExpanded(expandedDatabases); - return applyTempExpanded(expandedStart, filterResults); - }); - }, - [setExpandedDatabases] - ); - - const collapseAllTemporarilyExpanded = useCallback(() => { - setExpandedDatabases(clearTempExpanded); - }, [setExpandedDatabases]); - - // filter updates - // databases change often, but the effect only uses databases if the filter is active - // so we use this conditional dependency to avoid too many calls - const databasesButOnlyIfFilterIsActive = - filterRegex && connections[0].databases; - useEffect(() => { - if (!filterRegex) { - setFilteredDatabases(undefined); - collapseAllTemporarilyExpanded(); - } else if (databasesButOnlyIfFilterIsActive) { - // the above check is extra just to please TS - - // When filtering, emit an event so that we can fetch all collections. This - // is required as a workaround for the synchronous nature of the current - // filtering feature - _fetchAllCollections(connectionId); - - const results = filterDatabases( - databasesButOnlyIfFilterIsActive, - filterRegex - ); - setFilteredDatabases(results); - temporarilyExpand(results); - } - }, [ - connectionId, - filterRegex, - databasesButOnlyIfFilterIsActive, - setFilteredDatabases, - temporarilyExpand, - collapseAllTemporarilyExpanded, - _fetchAllCollections, - ]); - - const onNamespaceAction = useCallback( - (connectionId: string, ns: string, action: Actions) => { - switch (action) { - case 'select-database': - openCollectionsWorkspace(connectionId, ns); - return; - case 'select-collection': - openCollectionWorkspace(connectionId, ns); - return; - case 'open-in-new-tab': - openCollectionWorkspace(connectionId, ns, { newTab: true }); - return; - case 'modify-view': { - const coll = findCollection(ns, connection.databases || []); - - if (coll && coll.sourceName && coll.pipeline) { - openEditViewWorkspace(connectionId, coll._id, { - sourceName: coll.sourceName, - sourcePipeline: coll.pipeline, - newTab: true, - }); - } - return; - } - default: - _onNamespaceAction(connectionId, ns, action); - return; - } - }, - [ - connection, - openCollectionsWorkspace, - openCollectionWorkspace, - openEditViewWorkspace, - _onNamespaceAction, - ] - ); - - // auto-expanding on a workspace change - useEffect(() => { - if ( - activeWorkspace && - (activeWorkspace.type === 'Collections' || - activeWorkspace.type === 'Collection') - ) { - const namespace: string = activeWorkspace.namespace; - handleDatabaseExpand(connectionId, namespace, true); - } - }, [activeWorkspace, handleDatabaseExpand, connectionId]); - - const onItemAction = useCallback( - (item: SidebarItem, action: Actions) => { - if (item.type !== 'connection') { - const ns = item.type === 'database' ? item.dbName : item.namespace; - onNamespaceAction(item.connectionId, ns, action); - } - }, - [onNamespaceAction] - ); - - const onItemExpand = useCallback( - (item: SidebarItem, isExpanded: boolean) => { - if (item.type === 'database') { - handleDatabaseExpand(item.connectionId, item.dbName, isExpanded); - } - }, - [handleDatabaseExpand] - ); - - return ( - - ); -} - -const mapStateToProps: MapStateToProps< - MapStateProps, - SidebarDatabasesNavigationComponentProps, - RootState -> = (state: RootState, { connectionInfo }) => { - const connectionId = connectionInfo.id; - const instance = state.instance[connectionId]; - const { databases } = state.databases[connectionId] || {}; - - const status = instance?.databasesStatus; - const isReady = - status !== undefined && !['initial', 'fetching'].includes(status); - - const isDataLake = instance?.dataLake?.isDataLake ?? false; - const isWritable = instance?.isWritable ?? false; - - return { - connections: [ - { - isReady, - isDataLake, - isWritable, - name: '', - connectionInfo, - databasesLength: databases?.length || 0, - databasesStatus: (status ?? - 'fetching') as SidebarConnectedConnection['databasesStatus'], - databases: databases ?? [], - connectionStatus: ConnectionStatus.Connected, - // TODO: this should be state formed in render, but alas, refactoring - // this is too much work and this code will go away soon anyway. This - // flag is only relevant for compass-web, so we'll just set it to always - // `true` here - isPerformanceTabAvailable: true, - isPerformanceTabSupported: - !isDataLake && !!state.isPerformanceTabSupported[connectionId], - isGenuineMongoDB: instance?.genuineMongoDB.isGenuine !== false, - csfleMode: instance?.csfleMode, - }, - ], - }; -}; - -const onNamespaceAction = ( - connectionId: ConnectionInfo['id'], - namespace: string, - action: Actions -): SidebarThunkAction => { - return (_dispatch, getState, { globalAppRegistry }) => { - // TODO: COMPASS-7719 to adapt modals to be multiple connection aware - const emit = (action: string, ...rest: any[]) => { - globalAppRegistry.emit(action, ...rest); - }; - const ns = toNS(namespace); - switch (action) { - case 'drop-database': - emit('open-drop-database', ns.database, { connectionId }); - return; - case 'rename-collection': - emit('open-rename-collection', ns, { connectionId }); - return; - case 'drop-collection': - emit('open-drop-collection', ns, { connectionId }); - return; - case 'create-collection': - emit('open-create-collection', ns, { - connectionId, - }); - return; - case 'duplicate-view': { - const coll = findCollection( - namespace, - getState().databases[connectionId].databases - ); - if (coll && coll.sourceName) { - emit( - 'open-create-view', - { - source: coll.sourceName, - pipeline: coll.pipeline, - duplicate: true, - }, - { - connectionId, - } - ); - } - return; - } - default: - // no-op - } - }; -}; - -const mapDispatchToProps: MapDispatchToProps< - MapDispatchProps, - SidebarDatabasesNavigationComponentProps -> = { - onNamespaceAction, - fetchAllCollections, - onDatabaseExpand, -}; - -export default connect( - mapStateToProps, - mapDispatchToProps -)(SidebarDatabasesNavigation); diff --git a/packages/compass-sidebar/src/components/legacy/sidebar-title.tsx b/packages/compass-sidebar/src/components/legacy/sidebar-title.tsx deleted file mode 100644 index ff7714a7455..00000000000 --- a/packages/compass-sidebar/src/components/legacy/sidebar-title.tsx +++ /dev/null @@ -1,174 +0,0 @@ -import React, { useCallback, useMemo } from 'react'; - -import { - MongoDBLogoMark, - css, - cx, - palette, - spacing, - ItemActionControls, - useDarkMode, - useDefaultAction, -} from '@mongodb-js/compass-components'; - -import type { ItemAction } from '@mongodb-js/compass-components'; -import { useOpenWorkspace } from '@mongodb-js/compass-workspaces/provider'; -import FavoriteIndicator from './favorite-indicator'; - -type Action = - | 'copy-connection-string' - | 'edit-favorite' - | 'open-connection-info' - | 'expand-sidebar' - | 'refresh-data' - | 'open-compass-settings'; - -const titleLabel = css({ - overflow: 'hidden', - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - fontSize: '18px', - fontWeight: 600, // TODO: 500 once we have the new font - marginLeft: '2px', // hardcoded to try and match the design - paddingRight: spacing[2], -}); - -const TitleLabel: React.FunctionComponent> = ({ - children, - className, - ...props -}) => { - return ( - - {children} - - ); -}; - -const titleLogo = css({ - width: spacing[5], - marginTop: '6px', // hardcoded to try and match the design - flexShrink: 0, -}); - -function TitleLogo() { - const darkMode = useDarkMode(); - - return ( -
- -
- ); -} - -const sidebarTitle = css({ - display: 'flex', - alignItems: 'center', - cursor: 'pointer', - color: 'var(--title-color)', - backgroundColor: 'var(--title-bg-color)', - - height: spacing[6], - padding: spacing[3], -}); - -const iconButtonDark = css({ - color: palette.gray.dark3, - '&:hover': { - color: palette.white, - }, -}); - -const iconButtonLight = css({ - color: palette.white, - '&:hover': { - color: palette.gray.dark3, - }, -}); - -const iconButtonStyle = css({ - color: 'inherit', -}); - -function SidebarTitle({ - title, - isFavorite, - favoriteColor, - onAction, -}: { - title: string; - isFavorite: boolean; - favoriteColor?: string; - onAction(actionName: Action, ...rest: any[]): void; -}) { - const { openMyQueriesWorkspace } = useOpenWorkspace(); - - const actions = useMemo(() => { - const actions: ItemAction[] = []; - - actions.push({ - action: 'copy-connection-string', - label: 'Copy connection string', - icon: 'Copy', - }); - - actions.push({ - action: 'edit-favorite', - label: isFavorite ? 'Edit favorite' : 'Save favorite', - icon: 'Favorite', - }); - - actions.push({ - action: 'open-connection-info', - label: 'Connection info', - icon: 'Connect', - }); - - actions.push({ - action: 'open-compass-settings', - label: 'Compass Settings', - icon: 'Settings', - }); - - return actions; - }, [isFavorite]); - - const darkMode = useDarkMode(); - - const onClick = useCallback(() => { - openMyQueriesWorkspace(); - }, [openMyQueriesWorkspace]); - - const defaultActionProps = useDefaultAction(onClick); - - return ( - <> -
- - {title} - - onAction={onAction} - iconSize="small" - actions={actions} - data-testid="sidebar-title-actions" - iconClassName={cx( - iconButtonStyle, - darkMode ? iconButtonDark : iconButtonLight - )} - > -
- {isFavorite && favoriteColor && ( - - )} - - ); -} - -export default SidebarTitle; diff --git a/packages/compass-sidebar/src/components/legacy/sidebar.tsx b/packages/compass-sidebar/src/components/legacy/sidebar.tsx deleted file mode 100644 index 61bc871f409..00000000000 --- a/packages/compass-sidebar/src/components/legacy/sidebar.tsx +++ /dev/null @@ -1,268 +0,0 @@ -import React, { useCallback, useState } from 'react'; -import { cloneDeep } from 'lodash'; -import { connect } from 'react-redux'; -import { getConnectionTitle } from '@mongodb-js/connection-info'; -import type { ConnectionInfo } from '@mongodb-js/connection-info'; -import { - css, - spacing, - ResizableSidebar, - useToast, -} from '@mongodb-js/compass-components'; -import { SaveConnectionModal } from '@mongodb-js/connection-form'; -import { - useConnectionInfo, - useConnections, -} from '@mongodb-js/compass-connections/provider'; - -import SidebarTitle from './sidebar-title'; -import NavigationItems from './navigation-items'; -import ConnectionInfoModal from '../connection-info-modal'; -import CSFLEConnectionModal from '../csfle-connection-modal'; -import CSFLEMarker from '../csfle-marker'; -import NonGenuineMarker from '../non-genuine-marker'; - -import { setConnectionIsCSFLEEnabled } from '../../modules/data-service'; -import { useMaybeProtectConnectionString } from '@mongodb-js/compass-maybe-protect-connection-string'; -import type { RootState, SidebarThunkAction } from '../../modules'; -import type { WorkspaceTab } from '@mongodb-js/compass-workspaces'; - -const TOAST_TIMEOUT_MS = 5000; // 5 seconds. - -const sidebarStyles = css({ - // Sidebar internally has z-indexes higher than zero. We set zero on the - // container so that the sidebar doesn't stick out in the layout z ordering - // with other parts of the app - zIndex: 0, -}); - -const connectionBadgesContainerStyles = css({ - display: 'grid', - gridTemplateColumns: '100%', - gridTemplateRows: 'auto', - gap: spacing[2], - marginTop: spacing[3], - '&:empty': { - display: 'none', - }, -}); - -const navigationItemsContainerStyles = css({ - display: 'flex', - flexDirection: 'column', - flex: 1, - marginTop: spacing[2], - '&:first-child': { - marginTop: 2, - }, -}); - -// eslint-disable-next-line no-empty-pattern -export function Sidebar({ - showSidebarHeader = true, - activeWorkspace, - connectionInfo, - setConnectionIsCSFLEEnabled, - isGenuine, - csfleMode, - onSidebarAction, -}: { - showSidebarHeader?: boolean; - activeWorkspace: WorkspaceTab | null; - connectionInfo: ConnectionInfo; - setConnectionIsCSFLEEnabled: (connectionId: string, enabled: boolean) => void; - isGenuine?: boolean; - csfleMode?: 'enabled' | 'disabled' | 'unavailable'; - onSidebarAction(action: string, ...rest: any[]): void; -}) { - const { saveEditedConnection, showNonGenuineMongoDBWarningModal } = - useConnections(); - const [isFavoriteModalVisible, setIsFavoriteModalVisible] = useState(false); - const [isConnectionInfoModalVisible, setIsConnectionInfoModalVisible] = - useState(false); - - const onClickSaveFavorite = useCallback( - (newFavoriteInfo) => { - setIsFavoriteModalVisible(false); - - return saveEditedConnection({ - ...cloneDeep(connectionInfo), - favorite: newFavoriteInfo, - savedConnectionType: 'favorite', - }); - }, - [connectionInfo, saveEditedConnection] - ); - - const { openToast } = useToast('compass-connections'); - const maybeProtectConnectionString = useMaybeProtectConnectionString(); - - const onAction = useCallback( - (action: string, ...rest: any[]) => { - async function copyConnectionString(connectionString: string) { - try { - await navigator.clipboard.writeText(connectionString); - openToast('copy-to-clipboard', { - title: 'Success', - description: 'Copied to clipboard.', - variant: 'success', - timeout: TOAST_TIMEOUT_MS, - }); - } catch (err) { - openToast('copy-to-clipboard', { - title: 'Error', - description: - 'An error occurred when copying to clipboard. Please try again.', - variant: 'warning', - timeout: TOAST_TIMEOUT_MS, - }); - } - } - - if (action === 'copy-connection-string') { - void copyConnectionString( - maybeProtectConnectionString( - connectionInfo.connectionOptions.connectionString ?? '' - ) - ); - return; - } - - if (action === 'edit-favorite') { - setIsFavoriteModalVisible(true); - return; - } - - if (action === 'open-connection-info') { - setIsConnectionInfoModalVisible(true); - return; - } - - if (action === 'open-create-database') { - onSidebarAction(action, ...rest, { - connectionId: connectionInfo.id, - }); - return; - } - - if (action === 'refresh-databases') { - onSidebarAction(action, ...rest, { - connectionId: connectionInfo.id, - }); - return; - } - - onSidebarAction(action, ...rest); - }, - [ - connectionInfo.id, - onSidebarAction, - openToast, - maybeProtectConnectionString, - connectionInfo.connectionOptions.connectionString, - ] - ); - - const [isCSFLEModalVisible, setIsCSFLEModalVisible] = useState(false); - - const toggleCSFLEModalVisible = useCallback(() => { - setIsCSFLEModalVisible(!isCSFLEModalVisible); - }, [setIsCSFLEModalVisible, isCSFLEModalVisible]); - - return ( - - <> - {showSidebarHeader && ( -
- -
- { - showNonGenuineMongoDBWarningModal(connectionInfo.id); - }} - /> - -
-
- )} - -
- -
- - setIsFavoriteModalVisible(false)} - onSaveClicked={(favoriteInfo) => onClickSaveFavorite(favoriteInfo)} - /> - setIsCSFLEModalVisible(false)} - setConnectionIsCSFLEEnabled={(enabled) => - setConnectionIsCSFLEEnabled(connectionInfo.id, enabled) - } - /> - setIsConnectionInfoModalVisible(false)} - /> - -
- ); -} - -const mapStateToProps = ( - state: RootState, - { - connectionInfo, - }: { - connectionInfo: ConnectionInfo; - } -) => { - return { - isGenuine: state.instance[connectionInfo.id]?.genuineMongoDB.isGenuine, - csfleMode: state.instance[connectionInfo.id]?.csfleMode, - }; -}; - -const onSidebarAction = ( - action: string, - ...rest: any[] -): SidebarThunkAction => { - return (_dispatch, _getState, { globalAppRegistry }) => { - globalAppRegistry.emit(action, ...rest); - }; -}; - -const MappedSidebar = connect(mapStateToProps, { - setConnectionIsCSFLEEnabled, - onSidebarAction, -})(Sidebar); - -export default function SidebarWithConnectionInfo( - props: Omit, 'connectionInfo'> -) { - const connectionInfo = useConnectionInfo(); - return ( - - ); -} diff --git a/packages/compass-sidebar/src/plugin.tsx b/packages/compass-sidebar/src/plugin.tsx index 9b387b75806..4f5b2ae5540 100644 --- a/packages/compass-sidebar/src/plugin.tsx +++ b/packages/compass-sidebar/src/plugin.tsx @@ -6,11 +6,8 @@ import { defaultSidebarWidth, } from '@mongodb-js/compass-components'; import { useActiveWorkspace } from '@mongodb-js/compass-workspaces/provider'; -import Sidebar from './components/legacy/sidebar'; -import { usePreference } from 'compass-preferences-model/provider'; import MultipleConnectionSidebar from './components/multiple-connections/sidebar'; import type { ConnectionInfo } from '@mongodb-js/compass-connections/provider'; -import { useSingleConnectionModeConnectionInfoStatus } from '@mongodb-js/compass-connections/provider'; const errorBoundaryStyles = css({ width: defaultSidebarWidth, @@ -27,11 +24,6 @@ const SidebarPlugin: React.FunctionComponent = ({ showSidebarHeader, onOpenConnectViaModal, }) => { - const isMultiConnectionEnabled = usePreference( - 'enableMultipleConnectionSystem' - ); - const { connectionInfo } = useSingleConnectionModeConnectionInfoStatus(); - const activeWorkspace = useActiveWorkspace(); const { log, mongoLogId } = useLogger('COMPASS-SIDEBAR-UI'); @@ -48,19 +40,11 @@ const SidebarPlugin: React.FunctionComponent = ({ ); }} > - {isMultiConnectionEnabled && ( - - )} - {!isMultiConnectionEnabled && connectionInfo && ( - - )} + ); }; diff --git a/packages/connection-form/package.json b/packages/connection-form/package.json index 410310a5bcb..9c511ef3e38 100644 --- a/packages/connection-form/package.json +++ b/packages/connection-form/package.json @@ -52,7 +52,6 @@ "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/shell-bson-parser": "^1.1.2", - "compass-preferences-model": "^2.29.0", "lodash": "^4.17.21", "mongodb": "^6.8.0", "mongodb-build-info": "^1.7.2", diff --git a/packages/connection-form/src/components/connection-form.spec.tsx b/packages/connection-form/src/components/connection-form.spec.tsx index 0620a892e00..46485aac68a 100644 --- a/packages/connection-form/src/components/connection-form.spec.tsx +++ b/packages/connection-form/src/components/connection-form.spec.tsx @@ -9,8 +9,6 @@ import { within, } from '@mongodb-js/testing-library-compass'; import { expect } from 'chai'; -import type { PreferencesAccess } from 'compass-preferences-model'; -import { createSandboxFromDefaultPreferences } from 'compass-preferences-model'; import ConnectionForm from './connection-form'; import type { ConnectionFormProps } from './connection-form'; import Sinon from 'sinon'; @@ -32,7 +30,6 @@ const saveAndConnectText = 'Save & Connect'; const favoriteText = 'FAVORITE'; describe('ConnectionForm Component', function () { - let preferences: PreferencesAccess; function renderForm(props: Partial = {}) { return render( void; - code: string; - hex: string; -}): React.ReactElement { - return ( - - ); -} - -export function FavoriteColorPicker({ - colorCode, - onChange, -}: { - colorCode?: string; - onChange: (newColor?: string) => void; -}): React.ReactElement { - const selectedColorCode = legacyColorsToColorCode(colorCode); - const { connectionColorToHex: colorCodeToHex } = useConnectionColor(); - const selectedColorHex = colorCodeToHex(selectedColorCode); - return ( - <> - -
- - {CONNECTION_COLOR_CODES.map((colorCode) => { - const hex = colorCodeToHex(colorCode) || ''; - return ( - { - onChange(colorCode); - }} - isSelected={colorCode === selectedColorCode} - hex={hex} - code={colorCode} - key={colorCode} - /> - ); - })} -
- - ); -} diff --git a/packages/connection-form/src/components/save-connection-modal.spec.tsx b/packages/connection-form/src/components/save-connection-modal.spec.tsx deleted file mode 100644 index 4399932522b..00000000000 --- a/packages/connection-form/src/components/save-connection-modal.spec.tsx +++ /dev/null @@ -1,168 +0,0 @@ -import React from 'react'; -import { - render, - screen, - cleanup, - fireEvent, -} from '@mongodb-js/testing-library-compass'; -import { expect } from 'chai'; -import sinon from 'sinon'; - -import SaveConnectionModal from './save-connection-modal'; - -describe('SaveConnectionModal Component', function () { - let onSaveSpy: sinon.SinonSpy; - let onCancelSpy: sinon.SinonSpy; - - beforeEach(function () { - onSaveSpy = sinon.spy(); - onCancelSpy = sinon.spy(); - }); - - afterEach(function () { - cleanup(); - }); - - describe('when the loaded connection is not a favorite', function () { - beforeEach(function () { - render( - - ); - }); - - it('should have the title "Save connection to favorites"', function () { - expect(screen.getByText('Save connection to favorites')).to.be.visible; - }); - - it('should have the no-color option already selected', function () { - expect(screen.getByTestId('color-pick-no-color-selected')).to.be.visible; - }); - - describe('when the color and name are changed and save is clicked', function () { - beforeEach(function () { - fireEvent.click(screen.getByTestId('color-pick-color3')); - - const textArea = screen.getByRole('textbox'); - - fireEvent.change(textArea, { - target: { value: 'delicious cuban sandwich' }, - }); - }); - - describe('when the cancel button is clicked', function () { - beforeEach(function () { - fireEvent.click(screen.getByText('Cancel')); - }); - - it('should not have called to save', function () { - expect(onSaveSpy.callCount).to.equal(0); - }); - - it('should have called the cancel spy', function () { - expect(onCancelSpy.callCount).to.equal(1); - }); - }); - - describe('when the save button is clicked', function () { - beforeEach(function () { - fireEvent.click(screen.getByText('Save')); - }); - - it('should have called to save with the new config', function () { - expect(onSaveSpy.callCount).to.equal(1); - expect(onSaveSpy.firstCall.args[0]).to.deep.equal({ - name: 'delicious cuban sandwich', - color: 'color3', - }); - }); - - it('should not have called the cancel spy', function () { - expect(onCancelSpy.callCount).to.equal(0); - }); - }); - }); - }); - - describe('when the connection does not have a name', function () { - beforeEach(function () { - render( - - ); - }); - - it('renders save disabled', function () { - const button = screen.getByText('Save').closest('button'); - expect(button?.getAttribute('aria-disabled')).to.equal('true'); - }); - }); - - describe('when the connection does have a name', function () { - beforeEach(function () { - render( - - ); - }); - - it('renders save as enabled', function () { - const button = screen.getByText('Save').closest('button'); - expect(button?.getAttribute('aria-disabled')).to.not.equal('true'); - }); - }); - - describe('when the loaded connection is already a favorite', function () { - beforeEach(function () { - render( - - ); - }); - - it('should have the title "Edit favorite"', function () { - expect(screen.getByText('Edit favorite')).to.be.visible; - }); - - it('should have the color already selected', function () { - expect(screen.queryByTestId('color-pick-no-color-selected')).to.not.exist; - expect(screen.getByTestId('color-pick-color3-selected')).to.be.visible; - }); - }); - - describe('when saveText is passed', function () { - beforeEach(function () { - render( - - ); - }); - - it('should set the button text accordingly', function () { - expect(screen.getByText('Save & Connect')).to.be.visible; - }); - }); -}); diff --git a/packages/connection-form/src/components/save-connection-modal.tsx b/packages/connection-form/src/components/save-connection-modal.tsx deleted file mode 100644 index 483720c938d..00000000000 --- a/packages/connection-form/src/components/save-connection-modal.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import React, { useState } from 'react'; -import { - FormModal, - FormFieldContainer, - TextInput, -} from '@mongodb-js/compass-components'; -import type { ConnectionFavoriteOptions } from '@mongodb-js/connection-info'; - -import { FavoriteColorPicker } from './favorite-color-picker'; - -function SaveConnectionModal({ - initialFavoriteInfo, - onCancelClicked, - onSaveClicked, - open, - saveText = 'Save', -}: { - initialFavoriteInfo?: ConnectionFavoriteOptions; - onCancelClicked: () => void; - onSaveClicked: (favoriteInfo: ConnectionFavoriteOptions) => Promise; - open: boolean; - saveText?: string; -}): React.ReactElement { - const [editingFavorite, setEditingFavorite] = useState({ - name: '', - ...initialFavoriteInfo, - }); - - return ( - { - void onSaveClicked({ - ...editingFavorite, - }); - }} - submitDisabled={(editingFavorite.name || '').trim() ? false : true} - onCancel={onCancelClicked} - submitButtonText={saveText} - data-testid="favorite-modal" - > - - ) => { - setEditingFavorite({ - ...editingFavorite, - name: value, - }); - }} - label="Name" - value={editingFavorite.name} - /> - - - { - setEditingFavorite({ - ...editingFavorite, - color: newColor, - }); - }} - /> - - - ); -} - -export default SaveConnectionModal; diff --git a/packages/connection-form/src/hooks/use-connection-color.spec.tsx b/packages/connection-form/src/hooks/use-connection-color.spec.tsx index fcbdf223944..5c4e6dfa761 100644 --- a/packages/connection-form/src/hooks/use-connection-color.spec.tsx +++ b/packages/connection-form/src/hooks/use-connection-color.spec.tsx @@ -33,35 +33,6 @@ describe('useConnectionColor', function () { } }); - // TODO(COMPASS-7906): remove - it.skip('converts legacy colors', function () { - const legacyColors = { - '#5fc86e': 'color1', - '#326fde': 'color2', - '#deb342': 'color3', - '#d4366e': 'color4', - '#59c1e2': 'color5', - '#2c5f4a': 'color6', - '#d66531': 'color7', - '#773819': 'color8', - '#3b8196': 'color9', - '#ababab': 'color10', - }; - - for (const [legacyColor, colorCode] of Object.entries(legacyColors)) { - const { container: container1 } = render( - - ); - const { container: container2 } = render( - - ); - expect(container1.firstChild?.textContent).to.be.not.be.undefined; - expect(container1.firstChild?.textContent).to.equal( - container2.firstChild?.textContent - ); - } - }); - it('does not convert an unknown color code', function () { const { container } = render( diff --git a/packages/connection-form/src/hooks/use-connection-color.ts b/packages/connection-form/src/hooks/use-connection-color.ts index 7a5b232b291..0b84862f56c 100644 --- a/packages/connection-form/src/hooks/use-connection-color.ts +++ b/packages/connection-form/src/hooks/use-connection-color.ts @@ -1,5 +1,4 @@ import { useCallback } from 'react'; -import { usePreference } from 'compass-preferences-model/provider'; import { palette, useDarkMode } from '@mongodb-js/compass-components'; type ColorCode = `color${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10}`; @@ -86,19 +85,6 @@ export const COLOR_CODE_TO_NAME: Record = { color10: 'Gray', }; -const LEGACY_COLORS_TO_COLOR_CODE_MAP: Record = { - '#5fc86e': 'color1', - '#326fde': 'color2', - '#deb342': 'color3', - '#d4366e': 'color4', - '#59c1e2': 'color5', - '#2c5f4a': 'color6', - '#d66531': 'color7', - '#773819': 'color8', - '#3b8196': 'color9', - '#ababab': 'color10', -}; - export const CONNECTION_COLOR_CODES = Object.keys( COLOR_CODES_TO_UI_COLORS_DARK_THEME_MAP ) as ColorCode[]; @@ -109,20 +95,6 @@ function isColorCode( return CONNECTION_COLOR_CODES.includes(hexOrColorCode as ColorCode); } -export function legacyColorsToColorCode( - hexOrColorCode: string | undefined -): ColorCode | undefined { - if (!hexOrColorCode) { - return; - } - - if (isColorCode(hexOrColorCode)) { - return hexOrColorCode; - } - - return LEGACY_COLORS_TO_COLOR_CODE_MAP[hexOrColorCode]; -} - export function useConnectionColor(): { connectionColorCodes: () => ColorCode[]; connectionColorToHex: (colorCode: string | undefined) => string | undefined; @@ -133,7 +105,7 @@ export function useConnectionColor(): { } { const isDarkMode = useDarkMode(); - const newColorCodeToHex = useCallback( + const colorCodeToHex = useCallback( (colorCode: string | undefined): string | undefined => { if (!colorCode || !isColorCode(colorCode)) { return; @@ -161,22 +133,6 @@ export function useConnectionColor(): { [isDarkMode] ); - const colorCodeToHex = useCallback( - (colorCode: string | undefined): string | undefined => { - if (!colorCode) { - return; - } - - const migratedColor = legacyColorsToColorCode(colorCode); - if (!migratedColor) { - return; - } - - return COLOR_CODES_TO_UI_COLORS_DARK_THEME_MAP[migratedColor]; - }, - [] - ); - const colorToName = useCallback( (colorCode: string | undefined): string | undefined => { if (!colorCode || !isColorCode(colorCode)) { @@ -188,22 +144,10 @@ export function useConnectionColor(): { [] ); - const isMultiConnectionEnabled = usePreference( - 'enableMultipleConnectionSystem' - ); - - const connectionColorCodes = () => { - if (isMultiConnectionEnabled) { - return CONNECTION_COLOR_CODES.slice(0, 9); - } else { - return CONNECTION_COLOR_CODES; - } - }; + const connectionColorCodes = () => CONNECTION_COLOR_CODES.slice(0, 9); return { - connectionColorToHex: isMultiConnectionEnabled - ? newColorCodeToHex - : colorCodeToHex, + connectionColorToHex: colorCodeToHex, connectionColorToHexActive: connectionColorToHexActive, connectionColorToName: colorToName, connectionColorCodes, diff --git a/packages/connection-form/src/index.ts b/packages/connection-form/src/index.ts index ea1ff5de37b..1358163ec23 100644 --- a/packages/connection-form/src/index.ts +++ b/packages/connection-form/src/index.ts @@ -1,17 +1,14 @@ import ConnectionForm, { ColorCircleGlyph } from './components/connection-form'; import ConnectionFormModal from './components/connection-form-modal'; -import SaveConnectionModal from './components/save-connection-modal'; import { adjustConnectionOptionsBeforeConnect } from './hooks/use-connect-form'; export { - SaveConnectionModal, adjustConnectionOptionsBeforeConnect, ConnectionFormModal, ColorCircleGlyph, }; export { - legacyColorsToColorCode, useConnectionColor, DefaultColorCode, CONNECTION_COLOR_CODES, From e577bf1352998935a85b277b4e640ae8a3a10121 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 11:02:32 +0000 Subject: [PATCH 02/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6299) Update report Co-authored-by: paula-stacho <5196720+paula-stacho@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 7f291606895..8dca8fe19cf 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Sun Sep 29 2024. +This document was automatically generated on Mon Sep 30 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index a00acc32f45..6d768c9f1f1 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Sun, Sep 29, 2024 at 03:16 AM +Generated on Mon, Sep 30, 2024 at 11:02 AM ## Table of Contents From 93df62bccf3c6bb41f12d76a44e06d4f18221e86 Mon Sep 17 00:00:00 2001 From: svc-devtoolsbot <79531021+svc-devtoolsbot@users.noreply.github.com> Date: Mon, 30 Sep 2024 08:41:35 -0400 Subject: [PATCH 03/31] chore(release): bump package versions (#6296) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- package-lock.json | 500 +++++++++--------- packages/compass-aggregations/package.json | 14 +- packages/compass-app-stores/package.json | 4 +- packages/compass-collection/package.json | 8 +- .../package.json | 4 +- .../package.json | 8 +- packages/compass-connections/package.json | 4 +- packages/compass-crud/package.json | 14 +- packages/compass-explain-plan/package.json | 6 +- .../compass-export-to-language/package.json | 6 +- packages/compass-field-store/package.json | 4 +- packages/compass-global-writes/package.json | 8 +- packages/compass-import-export/package.json | 6 +- packages/compass-indexes/package.json | 10 +- packages/compass-query-bar/package.json | 10 +- .../package.json | 10 +- .../compass-schema-validation/package.json | 12 +- packages/compass-schema/package.json | 10 +- packages/compass-serverstats/package.json | 8 +- packages/compass-shell/package.json | 6 +- packages/compass-sidebar/package.json | 14 +- packages/compass-web/package.json | 36 +- packages/compass-welcome/package.json | 6 +- packages/compass-workspaces/package.json | 6 +- packages/compass/package.json | 44 +- packages/connection-form/package.json | 2 +- .../databases-collections-list/package.json | 6 +- packages/databases-collections/package.json | 10 +- 28 files changed, 388 insertions(+), 388 deletions(-) diff --git a/package-lock.json b/package-lock.json index df47bfba330..2baf4ff408c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43776,36 +43776,36 @@ "@electron/rebuild": "^3.6.0", "@electron/remote": "^2.1.2", "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", - "@mongodb-js/compass-databases-collections": "^1.42.0", - "@mongodb-js/compass-explain-plan": "^6.43.0", - "@mongodb-js/compass-export-to-language": "^9.19.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-databases-collections": "^1.42.1", + "@mongodb-js/compass-explain-plan": "^6.43.1", + "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-find-in-page": "^4.31.0", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.1.0", - "@mongodb-js/compass-import-export": "^7.42.0", - "@mongodb-js/compass-indexes": "^5.42.0", + "@mongodb-js/compass-global-writes": "^1.2.0", + "@mongodb-js/compass-import-export": "^7.42.1", + "@mongodb-js/compass-indexes": "^5.42.1", "@mongodb-js/compass-intercom": "^0.13.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", - "@mongodb-js/compass-saved-aggregations-queries": "^1.43.0", - "@mongodb-js/compass-schema": "^6.44.0", - "@mongodb-js/compass-schema-validation": "^6.43.0", - "@mongodb-js/compass-serverstats": "^16.42.0", + "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-saved-aggregations-queries": "^1.43.1", + "@mongodb-js/compass-schema": "^6.44.1", + "@mongodb-js/compass-schema-validation": "^6.43.1", + "@mongodb-js/compass-serverstats": "^16.42.1", "@mongodb-js/compass-settings": "^0.41.0", - "@mongodb-js/compass-shell": "^3.42.0", - "@mongodb-js/compass-sidebar": "^5.43.0", + "@mongodb-js/compass-shell": "^3.42.1", + "@mongodb-js/compass-sidebar": "^5.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.41.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-welcome": "^0.41.1", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", @@ -43865,7 +43865,7 @@ }, "packages/compass-aggregations": { "name": "@mongodb-js/compass-aggregations", - "version": "9.45.0", + "version": "9.45.1", "license": "SSPL", "dependencies": { "@babel/generator": "^7.19.5", @@ -43875,18 +43875,18 @@ "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/my-queries-storage": "^0.17.0", @@ -43966,11 +43966,11 @@ }, "packages/compass-app-stores": { "name": "@mongodb-js/compass-app-stores", - "version": "7.29.0", + "version": "7.29.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/connection-info": "^0.9.0", "hadron-app-registry": "^9.2.7", @@ -44030,15 +44030,15 @@ }, "packages/compass-collection": { "name": "@mongodb-js/compass-collection", - "version": "4.42.0", + "version": "4.42.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/mongodb-constants": "^0.10.2", "compass-preferences-model": "^2.29.0", @@ -44216,11 +44216,11 @@ }, "packages/compass-connection-import-export": { "name": "@mongodb-js/compass-connection-import-export", - "version": "0.39.0", + "version": "0.39.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/connection-storage": "^0.22.0", "compass-preferences-model": "^2.29.0", "hadron-ipc": "^3.2.23", @@ -44278,7 +44278,7 @@ }, "packages/compass-connections": { "name": "@mongodb-js/compass-connections", - "version": "1.43.0", + "version": "1.43.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", @@ -44286,7 +44286,7 @@ "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-storage": "^0.22.0", "bson": "^6.7.0", @@ -44327,13 +44327,13 @@ }, "packages/compass-connections-navigation": { "name": "@mongodb-js/compass-connections-navigation", - "version": "1.42.0", + "version": "1.42.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", "mongodb-build-info": "^1.7.2", @@ -44422,19 +44422,19 @@ }, "packages/compass-crud": { "name": "@mongodb-js/compass-crud", - "version": "13.43.0", + "version": "13.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", + "@mongodb-js/compass-query-bar": "^8.44.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", @@ -44896,12 +44896,12 @@ }, "packages/compass-explain-plan": { "name": "@mongodb-js/compass-explain-plan", - "version": "6.43.0", + "version": "6.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", @@ -44975,12 +44975,12 @@ }, "packages/compass-export-to-language": { "name": "@mongodb-js/compass-export-to-language", - "version": "9.19.0", + "version": "9.19.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", @@ -45038,10 +45038,10 @@ }, "packages/compass-field-store": { "name": "@mongodb-js/compass-field-store", - "version": "9.18.0", + "version": "9.18.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", @@ -45268,14 +45268,14 @@ }, "packages/compass-global-writes": { "name": "@mongodb-js/compass-global-writes", - "version": "1.1.0", + "version": "1.2.0", "license": "SSPL", "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "hadron-app-registry": "^9.2.7", @@ -45461,17 +45461,17 @@ }, "packages/compass-import-export": { "name": "@mongodb-js/compass-import-export", - "version": "7.42.0", + "version": "7.42.1", "license": "SSPL", "dependencies": { "@electron/remote": "^2.1.2", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "bson": "^6.7.0", "compass-preferences-model": "^2.29.0", "debug": "^4.3.4", @@ -45555,18 +45555,18 @@ }, "packages/compass-indexes": { "name": "@mongodb-js/compass-indexes", - "version": "5.42.0", + "version": "5.42.1", "license": "SSPL", "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", @@ -45969,16 +45969,16 @@ }, "packages/compass-query-bar": { "name": "@mongodb-js/compass-query-bar", - "version": "8.44.0", + "version": "8.44.1", "license": "SSPL", "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", @@ -46047,16 +46047,16 @@ }, "packages/compass-saved-aggregations-queries": { "name": "@mongodb-js/compass-saved-aggregations-queries", - "version": "1.43.0", + "version": "1.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/my-queries-storage": "^0.17.0", "bson": "^6.7.0", @@ -46123,15 +46123,15 @@ }, "packages/compass-schema": { "name": "@mongodb-js/compass-schema", - "version": "6.44.0", + "version": "6.44.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", + "@mongodb-js/compass-query-bar": "^8.44.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", @@ -46182,16 +46182,16 @@ }, "packages/compass-schema-validation": { "name": "@mongodb-js/compass-schema-validation", - "version": "6.43.0", + "version": "6.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "bson": "^6.7.0", @@ -46259,14 +46259,14 @@ }, "packages/compass-serverstats": { "name": "@mongodb-js/compass-serverstats", - "version": "16.42.0", + "version": "16.42.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", @@ -46377,16 +46377,16 @@ }, "packages/compass-shell": { "name": "@mongodb-js/compass-shell", - "version": "3.42.0", + "version": "3.42.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongosh/browser-repl": "^2.3.1", "@mongosh/logging": "^2.3.1", "@mongosh/node-runtime-worker-thread": "^2.3.1", @@ -46702,19 +46702,19 @@ }, "packages/compass-sidebar": { "name": "@mongodb-js/compass-sidebar", - "version": "5.43.0", + "version": "5.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-connections-navigation": "^1.42.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-connections-navigation": "^1.42.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", @@ -47077,31 +47077,31 @@ }, "packages/compass-web": { "name": "@mongodb-js/compass-web", - "version": "0.8.0", + "version": "0.8.1", "license": "SSPL", "devDependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", - "@mongodb-js/compass-databases-collections": "^1.42.0", - "@mongodb-js/compass-explain-plan": "^6.43.0", - "@mongodb-js/compass-export-to-language": "^9.19.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-databases-collections": "^1.42.1", + "@mongodb-js/compass-explain-plan": "^6.43.1", + "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.1.0", - "@mongodb-js/compass-indexes": "^5.42.0", + "@mongodb-js/compass-global-writes": "^1.2.0", + "@mongodb-js/compass-indexes": "^5.42.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", - "@mongodb-js/compass-schema": "^6.44.0", - "@mongodb-js/compass-schema-validation": "^6.43.0", - "@mongodb-js/compass-sidebar": "^5.43.0", + "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-schema": "^6.44.1", + "@mongodb-js/compass-schema-validation": "^6.43.1", + "@mongodb-js/compass-sidebar": "^5.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.41.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-welcome": "^0.41.1", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -47317,14 +47317,14 @@ }, "packages/compass-welcome": { "name": "@mongodb-js/compass-welcome", - "version": "0.41.0", + "version": "0.41.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", @@ -47383,12 +47383,12 @@ }, "packages/compass-workspaces": { "name": "@mongodb-js/compass-workspaces", - "version": "0.24.0", + "version": "0.24.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "bson": "^6.7.0", "compass-preferences-model": "^2.29.0", @@ -47556,7 +47556,7 @@ }, "packages/connection-form": { "name": "@mongodb-js/connection-form", - "version": "1.41.0", + "version": "1.41.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", @@ -48072,17 +48072,17 @@ }, "packages/databases-collections": { "name": "@mongodb-js/compass-databases-collections", - "version": "1.42.0", + "version": "1.42.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/databases-collections-list": "^1.40.0", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/databases-collections-list": "^1.40.1", "@mongodb-js/my-queries-storage": "^0.17.0", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", @@ -48119,13 +48119,13 @@ }, "packages/databases-collections-list": { "name": "@mongodb-js/databases-collections-list", - "version": "1.40.0", + "version": "1.40.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", "mongodb-ns": "^2.4.2", @@ -56001,18 +56001,18 @@ "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56087,7 +56087,7 @@ "version": "file:packages/compass-app-stores", "requires": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -56141,12 +56141,12 @@ "@mongodb-js/compass-collection": { "version": "file:packages/compass-collection", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56312,7 +56312,7 @@ "version": "file:packages/compass-connection-import-export", "requires": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56371,7 +56371,7 @@ "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -56436,9 +56436,9 @@ "version": "file:packages/compass-connections-navigation", "requires": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56496,17 +56496,17 @@ "@mongodb-js/compass-crud": { "version": "file:packages/compass-crud", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", + "@mongodb-js/compass-query-bar": "^8.44.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56560,14 +56560,14 @@ "@mongodb-js/compass-databases-collections": { "version": "file:packages/databases-collections", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/databases-collections-list": "^1.40.0", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/databases-collections-list": "^1.40.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/my-queries-storage": "^0.17.0", @@ -56684,9 +56684,9 @@ "@mongodb-js/compass-explain-plan": { "version": "file:packages/compass-explain-plan", "requires": { - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", @@ -56754,9 +56754,9 @@ "@mongodb-js/compass-export-to-language": { "version": "file:packages/compass-export-to-language", "requires": { - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", @@ -56810,7 +56810,7 @@ "@mongodb-js/compass-field-store": { "version": "file:packages/compass-field-store", "requires": { - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -57004,10 +57004,10 @@ "version": "file:packages/compass-global-writes", "requires": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -57121,13 +57121,13 @@ "requires": { "@electron/remote": "^2.1.2", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57205,14 +57205,14 @@ "version": "file:packages/compass-indexes", "requires": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -57484,12 +57484,12 @@ "version": "file:packages/compass-query-bar", "requires": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", @@ -57552,13 +57552,13 @@ "@mongodb-js/compass-saved-aggregations-queries": { "version": "file:packages/compass-saved-aggregations-queries", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -57621,12 +57621,12 @@ "@mongodb-js/compass-schema": { "version": "file:packages/compass-schema", "requires": { - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", + "@mongodb-js/compass-query-bar": "^8.44.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -57698,13 +57698,13 @@ "@mongodb-js/compass-schema-validation": { "version": "file:packages/compass-schema-validation", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -58087,11 +58087,11 @@ "@mongodb-js/compass-serverstats": { "version": "file:packages/compass-serverstats", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58197,12 +58197,12 @@ "version": "file:packages/compass-shell", "requires": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58431,16 +58431,16 @@ "@mongodb-js/compass-sidebar": { "version": "file:packages/compass-sidebar", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-connections-navigation": "^1.42.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-connections-navigation": "^1.42.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -58762,27 +58762,27 @@ "version": "file:packages/compass-web", "requires": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", - "@mongodb-js/compass-databases-collections": "^1.42.0", - "@mongodb-js/compass-explain-plan": "^6.43.0", - "@mongodb-js/compass-export-to-language": "^9.19.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-databases-collections": "^1.42.1", + "@mongodb-js/compass-explain-plan": "^6.43.1", + "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.1.0", - "@mongodb-js/compass-indexes": "^5.42.0", + "@mongodb-js/compass-global-writes": "^1.2.0", + "@mongodb-js/compass-indexes": "^5.42.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", - "@mongodb-js/compass-schema": "^6.44.0", - "@mongodb-js/compass-schema-validation": "^6.43.0", - "@mongodb-js/compass-sidebar": "^5.43.0", + "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-schema": "^6.44.1", + "@mongodb-js/compass-schema-validation": "^6.43.1", + "@mongodb-js/compass-sidebar": "^5.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.41.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-welcome": "^0.41.1", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -58980,10 +58980,10 @@ "version": "file:packages/compass-welcome", "requires": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -59038,9 +59038,9 @@ "@mongodb-js/compass-workspaces": { "version": "file:packages/compass-workspaces", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -59423,9 +59423,9 @@ "version": "file:packages/databases-collections-list", "requires": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -80055,36 +80055,36 @@ "@electron/rebuild": "^3.6.0", "@electron/remote": "^2.1.2", "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", - "@mongodb-js/compass-databases-collections": "^1.42.0", - "@mongodb-js/compass-explain-plan": "^6.43.0", - "@mongodb-js/compass-export-to-language": "^9.19.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-databases-collections": "^1.42.1", + "@mongodb-js/compass-explain-plan": "^6.43.1", + "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-find-in-page": "^4.31.0", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.1.0", - "@mongodb-js/compass-import-export": "^7.42.0", - "@mongodb-js/compass-indexes": "^5.42.0", + "@mongodb-js/compass-global-writes": "^1.2.0", + "@mongodb-js/compass-import-export": "^7.42.1", + "@mongodb-js/compass-indexes": "^5.42.1", "@mongodb-js/compass-intercom": "^0.13.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", - "@mongodb-js/compass-saved-aggregations-queries": "^1.43.0", - "@mongodb-js/compass-schema": "^6.44.0", - "@mongodb-js/compass-schema-validation": "^6.43.0", - "@mongodb-js/compass-serverstats": "^16.42.0", + "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-saved-aggregations-queries": "^1.43.1", + "@mongodb-js/compass-schema": "^6.44.1", + "@mongodb-js/compass-schema-validation": "^6.43.1", + "@mongodb-js/compass-serverstats": "^16.42.1", "@mongodb-js/compass-settings": "^0.41.0", - "@mongodb-js/compass-shell": "^3.42.0", - "@mongodb-js/compass-sidebar": "^5.43.0", + "@mongodb-js/compass-shell": "^3.42.1", + "@mongodb-js/compass-sidebar": "^5.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.41.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-welcome": "^0.41.1", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", diff --git a/packages/compass-aggregations/package.json b/packages/compass-aggregations/package.json index 7b8bedac027..942e5c44a1c 100644 --- a/packages/compass-aggregations/package.json +++ b/packages/compass-aggregations/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-aggregations", "description": "Compass Aggregation Pipeline Builder", "private": true, - "version": "9.45.0", + "version": "9.45.1", "main": "dist/index.js", "compass:main": "src/index.ts", "types": "dist/index.d.ts", @@ -62,18 +62,18 @@ "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/my-queries-storage": "^0.17.0", diff --git a/packages/compass-app-stores/package.json b/packages/compass-app-stores/package.json index 1c0f8c613fc..264955481ea 100644 --- a/packages/compass-app-stores/package.json +++ b/packages/compass-app-stores/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.29.0", + "version": "7.29.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -74,7 +74,7 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/connection-info": "^0.9.0", "hadron-app-registry": "^9.2.7", diff --git a/packages/compass-collection/package.json b/packages/compass-collection/package.json index 12da225d0b8..7dbaedf490b 100644 --- a/packages/compass-collection/package.json +++ b/packages/compass-collection/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "4.42.0", + "version": "4.42.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,12 +48,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/mongodb-constants": "^0.10.2", "compass-preferences-model": "^2.29.0", diff --git a/packages/compass-connection-import-export/package.json b/packages/compass-connection-import-export/package.json index 42d690f47ae..65f9da8d486 100644 --- a/packages/compass-connection-import-export/package.json +++ b/packages/compass-connection-import-export/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.39.0", + "version": "0.39.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,7 +52,7 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/connection-storage": "^0.22.0", "compass-preferences-model": "^2.29.0", "hadron-ipc": "^3.2.23", diff --git a/packages/compass-connections-navigation/package.json b/packages/compass-connections-navigation/package.json index d96d133ba40..253bbcf0169 100644 --- a/packages/compass-connections-navigation/package.json +++ b/packages/compass-connections-navigation/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.42.0", + "version": "1.42.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,11 +49,11 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/connection-form": "^1.41.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/compass-workspaces": "^0.24.1", "compass-preferences-model": "^2.29.0", "mongodb-build-info": "^1.7.2", "react": "^17.0.2", diff --git a/packages/compass-connections/package.json b/packages/compass-connections/package.json index d44c2895c3a..26c64c2bfc8 100644 --- a/packages/compass-connections/package.json +++ b/packages/compass-connections/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.43.0", + "version": "1.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -56,7 +56,7 @@ "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-storage": "^0.22.0", "bson": "^6.7.0", diff --git a/packages/compass-crud/package.json b/packages/compass-crud/package.json index 1467c8bb7e2..5e1de5ec2bf 100644 --- a/packages/compass-crud/package.json +++ b/packages/compass-crud/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "13.43.0", + "version": "13.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -71,16 +71,16 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", + "@mongodb-js/compass-query-bar": "^8.44.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", diff --git a/packages/compass-explain-plan/package.json b/packages/compass-explain-plan/package.json index a67cb924f0b..7173623df09 100644 --- a/packages/compass-explain-plan/package.json +++ b/packages/compass-explain-plan/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.43.0", + "version": "6.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,9 +69,9 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", diff --git a/packages/compass-export-to-language/package.json b/packages/compass-export-to-language/package.json index 9bc7a271299..bece71d16f6 100644 --- a/packages/compass-export-to-language/package.json +++ b/packages/compass-export-to-language/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.19.0", + "version": "9.19.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,9 +48,9 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", diff --git a/packages/compass-field-store/package.json b/packages/compass-field-store/package.json index 15de2554167..a092100b9b1 100644 --- a/packages/compass-field-store/package.json +++ b/packages/compass-field-store/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.18.0", + "version": "9.18.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,7 +69,7 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", diff --git a/packages/compass-global-writes/package.json b/packages/compass-global-writes/package.json index af67762fb58..b2594f351d5 100644 --- a/packages/compass-global-writes/package.json +++ b/packages/compass-global-writes/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.1.0", + "version": "1.2.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,13 +50,13 @@ }, "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "hadron-app-registry": "^9.2.7", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-import-export/package.json b/packages/compass-import-export/package.json index d520739a5c4..a5c69e6ccdf 100644 --- a/packages/compass-import-export/package.json +++ b/packages/compass-import-export/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.42.0", + "version": "7.42.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,12 +50,12 @@ "dependencies": { "@electron/remote": "^2.1.2", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "bson": "^6.7.0", "compass-preferences-model": "^2.29.0", "debug": "^4.3.4", diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json index 8d173ddd12b..79ce4fe69ef 100644 --- a/packages/compass-indexes/package.json +++ b/packages/compass-indexes/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "5.42.0", + "version": "5.42.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -68,14 +68,14 @@ }, "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", diff --git a/packages/compass-query-bar/package.json b/packages/compass-query-bar/package.json index cfafc7de36e..ec57ad2f178 100644 --- a/packages/compass-query-bar/package.json +++ b/packages/compass-query-bar/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "8.44.0", + "version": "8.44.1", "homepage": "https://github.com/mongodb-js/compass", "license": "SSPL", "bugs": { @@ -67,12 +67,12 @@ }, "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", diff --git a/packages/compass-saved-aggregations-queries/package.json b/packages/compass-saved-aggregations-queries/package.json index 2872532c07c..c40664c63ac 100644 --- a/packages/compass-saved-aggregations-queries/package.json +++ b/packages/compass-saved-aggregations-queries/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.43.0", + "version": "1.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,13 +48,13 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/my-queries-storage": "^0.17.0", "bson": "^6.7.0", diff --git a/packages/compass-schema-validation/package.json b/packages/compass-schema-validation/package.json index bb8da9d3bea..675e6d89eb3 100644 --- a/packages/compass-schema-validation/package.json +++ b/packages/compass-schema-validation/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.43.0", + "version": "6.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,13 +69,13 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "bson": "^6.7.0", diff --git a/packages/compass-schema/package.json b/packages/compass-schema/package.json index 658f6d5993d..ff93ca59ee7 100644 --- a/packages/compass-schema/package.json +++ b/packages/compass-schema/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.44.0", + "version": "6.44.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -72,13 +72,13 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-query-bar": "^8.44.0", + "@mongodb-js/compass-query-bar": "^8.44.1", "@mongodb-js/connection-storage": "^0.22.0", "bson": "^6.7.0", "compass-preferences-model": "^2.29.0", diff --git a/packages/compass-serverstats/package.json b/packages/compass-serverstats/package.json index d843e95ffd0..fd813f21cbf 100644 --- a/packages/compass-serverstats/package.json +++ b/packages/compass-serverstats/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-serverstats", "description": "Compass Real Time", "private": true, - "version": "16.42.0", + "version": "16.42.1", "main": "dist/index.js", "compass:main": "src/index.ts", "exports": { @@ -30,11 +30,11 @@ }, "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", diff --git a/packages/compass-shell/package.json b/packages/compass-shell/package.json index ad2c132fa5e..0b5df28e674 100644 --- a/packages/compass-shell/package.json +++ b/packages/compass-shell/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "3.42.0", + "version": "3.42.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,12 +50,12 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongosh/browser-repl": "^2.3.1", "@mongosh/logging": "^2.3.1", "@mongosh/node-runtime-worker-thread": "^2.3.1", diff --git a/packages/compass-sidebar/package.json b/packages/compass-sidebar/package.json index d27751a2aa3..b29c313edac 100644 --- a/packages/compass-sidebar/package.json +++ b/packages/compass-sidebar/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "5.43.0", + "version": "5.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,16 +48,16 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-connections-navigation": "^1.42.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-connections-navigation": "^1.42.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/connection-form": "^1.41.0", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", diff --git a/packages/compass-web/package.json b/packages/compass-web/package.json index 1018ecbfa84..786b5a5e5c2 100644 --- a/packages/compass-web/package.json +++ b/packages/compass-web/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.8.0", + "version": "0.8.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -63,27 +63,27 @@ }, "devDependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", - "@mongodb-js/compass-databases-collections": "^1.42.0", - "@mongodb-js/compass-explain-plan": "^6.43.0", - "@mongodb-js/compass-export-to-language": "^9.19.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-databases-collections": "^1.42.1", + "@mongodb-js/compass-explain-plan": "^6.43.1", + "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.1.0", - "@mongodb-js/compass-indexes": "^5.42.0", + "@mongodb-js/compass-global-writes": "^1.2.0", + "@mongodb-js/compass-indexes": "^5.42.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", - "@mongodb-js/compass-schema": "^6.44.0", - "@mongodb-js/compass-schema-validation": "^6.43.0", - "@mongodb-js/compass-sidebar": "^5.43.0", + "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-schema": "^6.44.1", + "@mongodb-js/compass-schema-validation": "^6.43.1", + "@mongodb-js/compass-sidebar": "^5.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.41.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-welcome": "^0.41.1", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", "@mongodb-js/eslint-config-compass": "^1.1.7", diff --git a/packages/compass-welcome/package.json b/packages/compass-welcome/package.json index 27ec568e488..042662abd1b 100644 --- a/packages/compass-welcome/package.json +++ b/packages/compass-welcome/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.41.0", + "version": "0.41.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,10 +50,10 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", diff --git a/packages/compass-workspaces/package.json b/packages/compass-workspaces/package.json index d389188ac4e..b7983d8e2ec 100644 --- a/packages/compass-workspaces/package.json +++ b/packages/compass-workspaces/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.24.0", + "version": "0.24.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,9 +51,9 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "bson": "^6.7.0", "compass-preferences-model": "^2.29.0", diff --git a/packages/compass/package.json b/packages/compass/package.json index 89055421783..4027ea3b23a 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -192,36 +192,36 @@ "@electron/rebuild": "^3.6.0", "@electron/remote": "^2.1.2", "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.0", - "@mongodb-js/compass-app-stores": "^7.29.0", - "@mongodb-js/compass-collection": "^4.42.0", + "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.0", - "@mongodb-js/compass-connections": "^1.43.0", - "@mongodb-js/compass-crud": "^13.43.0", - "@mongodb-js/compass-databases-collections": "^1.42.0", - "@mongodb-js/compass-explain-plan": "^6.43.0", - "@mongodb-js/compass-export-to-language": "^9.19.0", - "@mongodb-js/compass-field-store": "^9.18.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-databases-collections": "^1.42.1", + "@mongodb-js/compass-explain-plan": "^6.43.1", + "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-find-in-page": "^4.31.0", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.1.0", - "@mongodb-js/compass-import-export": "^7.42.0", - "@mongodb-js/compass-indexes": "^5.42.0", + "@mongodb-js/compass-global-writes": "^1.2.0", + "@mongodb-js/compass-import-export": "^7.42.1", + "@mongodb-js/compass-indexes": "^5.42.1", "@mongodb-js/compass-intercom": "^0.13.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.0", - "@mongodb-js/compass-saved-aggregations-queries": "^1.43.0", - "@mongodb-js/compass-schema": "^6.44.0", - "@mongodb-js/compass-schema-validation": "^6.43.0", - "@mongodb-js/compass-serverstats": "^16.42.0", + "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-saved-aggregations-queries": "^1.43.1", + "@mongodb-js/compass-schema": "^6.44.1", + "@mongodb-js/compass-schema-validation": "^6.43.1", + "@mongodb-js/compass-serverstats": "^16.42.1", "@mongodb-js/compass-settings": "^0.41.0", - "@mongodb-js/compass-shell": "^3.42.0", - "@mongodb-js/compass-sidebar": "^5.43.0", + "@mongodb-js/compass-shell": "^3.42.1", + "@mongodb-js/compass-sidebar": "^5.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.41.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-welcome": "^0.41.1", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", diff --git a/packages/connection-form/package.json b/packages/connection-form/package.json index 9c511ef3e38..443c7b72f89 100644 --- a/packages/connection-form/package.json +++ b/packages/connection-form/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.41.0", + "version": "1.41.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/packages/databases-collections-list/package.json b/packages/databases-collections-list/package.json index 19533c42d1c..3ef13aa1e50 100644 --- a/packages/databases-collections-list/package.json +++ b/packages/databases-collections-list/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.40.0", + "version": "1.40.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,9 +49,9 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", + "@mongodb-js/compass-workspaces": "^0.24.1", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", "mongodb-ns": "^2.4.2", diff --git a/packages/databases-collections/package.json b/packages/databases-collections/package.json index cc3f0e9bae8..48c4abc06a5 100644 --- a/packages/databases-collections/package.json +++ b/packages/databases-collections/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-databases-collections", "description": "Plugin for viewing the list of, creating, and dropping databases and collections", "private": true, - "version": "1.42.0", + "version": "1.42.1", "license": "SSPL", "homepage": "https://github.com/mongodb-js/compass", "bugs": { @@ -59,14 +59,14 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.0", + "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.0", - "@mongodb-js/databases-collections-list": "^1.40.0", + "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/databases-collections-list": "^1.40.1", "@mongodb-js/my-queries-storage": "^0.17.0", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", From 835a4c5026bc35cef5129a0cec6fc4e9c157249b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 12:48:49 +0000 Subject: [PATCH 04/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6301) Update report Co-authored-by: paula-stacho <5196720+paula-stacho@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 6d768c9f1f1..cac9e707ac2 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Sep 30, 2024 at 11:02 AM +Generated on Mon, Sep 30, 2024 at 12:48 PM ## Table of Contents From a1d78d9e601c2fc65ad3577b2f299654745d5d09 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Mon, 30 Sep 2024 16:38:37 +0200 Subject: [PATCH 05/31] chore(compass-web): refactor sandbox to better handle cert issuing logic (#6295) * chore(compass-web): refactor sandbox to better handle cert issuing logic * chore(web): extend connection timeouts for web sandbox in atlas mode * chore(web): adjust the logic that waits for the compass web server to be ready * chore(web): fix typo * chore(web): electron.dock might be undefined * chore: restore accidentally removed else * chore: error logging and typos * chore: remove unnecessary eslint ignores --- configs/webpack-config-compass/src/index.ts | 1 + packages/compass-e2e-tests/index.ts | 40 ++- packages/compass-web/package.json | 2 +- packages/compass-web/sandbox/index.tsx | 7 + .../compass-web/scripts/electron-proxy.js | 330 +++++++++++++----- .../scripts/start-electron-proxy.js | 16 - packages/compass-web/scripts/ws-proxy.js | 6 +- .../compass-web/src/connection-storage.tsx | 48 ++- packages/compass-web/webpack.config.js | 10 +- .../src/components/workspaces.tsx | 2 +- 10 files changed, 328 insertions(+), 134 deletions(-) delete mode 100644 packages/compass-web/scripts/start-electron-proxy.js diff --git a/configs/webpack-config-compass/src/index.ts b/configs/webpack-config-compass/src/index.ts index 0992dcc88f2..2211b985f74 100644 --- a/configs/webpack-config-compass/src/index.ts +++ b/configs/webpack-config-compass/src/index.ts @@ -372,3 +372,4 @@ export { sharedExternals, pluginExternals }; export { webpackArgsWithDefaults, isServe } from './args'; export { default as webpack } from 'webpack'; export { merge } from 'webpack-merge'; +export { default as WebpackDevServer } from 'webpack-dev-server'; diff --git a/packages/compass-e2e-tests/index.ts b/packages/compass-e2e-tests/index.ts index cbbe284c16d..309767330a2 100644 --- a/packages/compass-e2e-tests/index.ts +++ b/packages/compass-e2e-tests/index.ts @@ -23,6 +23,11 @@ import ResultLogger from './helpers/result-logger'; const debug = Debug('compass-e2e-tests'); +const wait = (ms: number) => + new Promise((resolve) => { + setTimeout(resolve, ms); + }); + const allowedArgs = [ '--test-compass-web', '--no-compile', @@ -75,18 +80,27 @@ async function setup() { }, } ); - // wait for webpack to finish compiling - await new Promise((resolve) => { - let output = ''; - const listener = function (chunk: string) { - output += chunk; - if (/^webpack \d+\.\d+\.\d+ compiled/m.test(output)) { - compassWeb.stdout.off('data', listener); - resolve(); - } - }; - compassWeb.stdout.setEncoding('utf8').on('data', listener); - }); + + compassWeb.stdout.pipe(process.stdout); + compassWeb.stderr.pipe(process.stderr); + + let serverReady = false; + const start = Date.now(); + while (!serverReady) { + if (Date.now() - start >= 120_000) { + throw new Error( + 'The compass-web sandbox is still not running after 120000ms' + ); + } + try { + const res = await fetch('http://localhost:7777'); + serverReady = res.ok; + debug('Web server ready: %s', serverReady); + } catch (err) { + debug('Failed to connect to dev server: %s', (err as any).message); + } + await wait(1000); + } } else { debug('Writing electron-versions.json'); crossSpawn.sync('scripts/write-electron-versions.sh', [], { @@ -131,7 +145,7 @@ function cleanup() { try { if (compassWeb.pid) { debug(`killing compass-web [${compassWeb.pid}]`); - kill(compassWeb.pid); + kill(compassWeb.pid, 'SIGINT'); } else { debug('no pid for compass-web'); } diff --git a/packages/compass-web/package.json b/packages/compass-web/package.json index 786b5a5e5c2..3257fcc935f 100644 --- a/packages/compass-web/package.json +++ b/packages/compass-web/package.json @@ -40,7 +40,7 @@ "webpack": "webpack-compass", "postcompile": "npm run typescript", "typescript": "tsc -p tsconfig-build.json --emitDeclarationOnly", - "start": "npm run webpack serve -- --mode development", + "start": "electron ./scripts/electron-proxy.js", "analyze": "npm run webpack -- --mode production --analyze", "watch": "npm run webpack -- --mode development --watch", "sync": "node scripts/sync-dist-to-mms.js", diff --git a/packages/compass-web/sandbox/index.tsx b/packages/compass-web/sandbox/index.tsx index ff03193f723..c539e9ad9f8 100644 --- a/packages/compass-web/sandbox/index.tsx +++ b/packages/compass-web/sandbox/index.tsx @@ -37,6 +37,13 @@ const App = () => { return ( } */ - async fetchProjectId() { - const cookie = (await this.#getCloudSessionCookies()).join('; '); - const res = await fetch(CLOUD_ORIGIN, { - method: 'HEAD', - redirect: 'manual', - headers: { cookie }, - }); - - const location = res.headers.get('location') ?? ''; - - return this.#isAuthenticatedUrl(location) - ? this.#getProjectIdFromUrl(location) - : null; + async getProjectId() { + const res = await this.#fetch('/user/shared'); + return res?.currentProject?.projectId ?? null; } /** @@ -162,13 +194,13 @@ class AtlasCloudAuthenticator { return (this.#authenticatePromise ??= (async () => { try { await electronApp.whenReady(); - const projectId = await this.fetchProjectId(); + const projectId = await this.getProjectId(); if (projectId) { return { projectId }; } const bw = new BrowserWindow({ - height: 800, width: 600, + height: 800, resizable: false, fullscreenable: false, }); @@ -196,7 +228,6 @@ class AtlasCloudAuthenticator { }).finally(() => { queueMicrotask(() => { abortController.abort(); - electronApp.dock.hide(); bw.close(); }); }), @@ -204,7 +235,7 @@ class AtlasCloudAuthenticator { throw new Error('Window closed before finished signing in'); }), ]); - electronApp.dock.show(); + void electronApp.dock?.show(); void bw.loadURL(`${CLOUD_ORIGIN}/account/login`); return authInfoPromise; } finally { @@ -213,67 +244,120 @@ class AtlasCloudAuthenticator { })()); } - async logout() { - await session.defaultSession.clearStorageData({ storages: ['cookies'] }); + async cleanupAndLogout() { + // When logging out, delete the test user too. If we don't do this now, we + // will lose a chance to do it later due to missing auth + try { + await atlasCloudAuthenticator.deleteTestDBUser(); + } catch (err) { + logger.err('[electron-proxy] failed to remove the test user:', err); + } + await session.defaultSession.clearStorageData({ + storages: ['cookies', 'localstorage'], + }); } - async #createTestDBUser(projectId) { - return await fetch( - `http://localhost:${PROXY_PORT}/cloud-mongodb-com/nds/${projectId}/users`, - { - method: 'POST', - headers: { - 'content-type': 'application/json', - }, - body: JSON.stringify({ - awsIAMType: 'NONE', - db: '$external', - deleteAfterDate: null, - hasScramSha256Auth: false, - hasUserToDNMapping: false, - isEditable: true, - labels: [], - ldapAuthType: 'NONE', - oidcAuthType: 'NONE', - roles: [{ collection: null, db: 'admin', role: 'atlasAdmin' }], - scopes: [], - user: `CN=${TEST_DB_USER}`, - x509Type: 'MANAGED', - }), - } - ).then(handleRes); + #createTestDBUser(projectId) { + return this.#fetch(`/nds/${projectId}/users`, { + method: 'POST', + headers: { + 'content-type': 'application/json', + }, + body: JSON.stringify({ + awsIAMType: 'NONE', + db: '$external', + deleteAfterDate: null, + hasScramSha256Auth: false, + hasUserToDNMapping: false, + isEditable: true, + labels: [], + ldapAuthType: 'NONE', + oidcAuthType: 'NONE', + roles: [{ collection: null, db: 'admin', role: 'atlasAdmin' }], + scopes: [], + user: `CN=${TEST_DB_USER}`, + x509Type: 'MANAGED', + }), + }); } async #ensureTestDBUserExists(projectId) { - const users = await fetch( - `http://localhost:${PROXY_PORT}/cloud-mongodb-com/nds/${projectId}/users` - ).then(handleRes); + const users = await this.#fetch(`/nds/${projectId}/users`); const testCertUser = users.find((user) => { - return user.x509Type === 'MANAGED' && user.user === TEST_DB_USER; + return ( + user.x509Type === 'MANAGED' && + user.user.replace(/^cn=/i, '') === TEST_DB_USER + ); }); - return testCertUser ?? (await this.#createTestDBUser(projectId)); + const user = testCertUser ?? (await this.#createTestDBUser(projectId)); + let mongodbConfigurationInProgress = true; + let attempts = 0; + while (mongodbConfigurationInProgress && attempts <= 10) { + attempts++; + await new Promise((resolve) => { + setTimeout(resolve, 5_000); + }); + const project = await this.#fetch(`/nds/${projectId}`); + const configuringUserOrRoles = project?.plans?.some((plan) => { + return plan.moves?.some((move) => { + return move.name === 'ConfigureMongoDBForProject'; + }); + }); + mongodbConfigurationInProgress = + project?.state === 'UPDATING' && + (!project?.plans || configuringUserOrRoles); + } + return user; } - async getX509Cert() { - const projectId = await this.fetchProjectId(); - const testUser = await this.#ensureTestDBUserExists(projectId); + async deleteTestDBUser() { + const projectId = await this.getProjectId(); const certUsername = encodeURIComponent( - `CN=${testUser.user.replace(/^cn=/i, '')}` + `CN=${TEST_DB_USER.replace(/^cn=/i, '')}` ); - const certAuthDb = testUser.db ?? '$external'; - return fetch( - `http://localhost:${PROXY_PORT}/cloud-mongodb-com/nds/${projectId}/users/${certAuthDb}/${certUsername}/certs?monthsUntilExpiration=1` - ).then((res) => { - return res.text(); + return this.#fetch(`/nds/${projectId}/users/$external/${certUsername}`, { + method: 'DELETE', }); } + + /** + * + * @returns {Promise} + */ + async getX509Cert() { + const projectId = await this.getProjectId(); + if (TEST_X509_CERT_PROMISE.has(projectId)) { + return TEST_X509_CERT_PROMISE.get(projectId); + } + const promise = (async () => { + try { + const testUser = await this.#ensureTestDBUserExists(projectId); + const certUsername = encodeURIComponent( + `CN=${testUser.user.replace(/^cn=/i, '')}` + ); + const certAuthDb = testUser.db ?? '$external'; + return await this.#fetch( + `/nds/${projectId}/users/${certAuthDb}/${certUsername}/certs?monthsUntilExpiration=1` + ); + } catch (err) { + TEST_X509_CERT_PROMISE.delete(projectId, promise); + logger.error( + '[electron-proxy] failed to issue a cert for the test user', + err + ); + throw err; + } + })(); + TEST_X509_CERT_PROMISE.set(projectId, promise); + return promise; + } } const atlasCloudAuthenticator = new AtlasCloudAuthenticator(); // Proxy endpoint that triggers the sign in flow through configured cloud // environment -proxyWebServer.use('/authenticate', async (req, res) => { +expressProxy.use('/authenticate', async (req, res) => { if (req.method !== 'POST') { res.statusCode = 400; res.end(); @@ -282,6 +366,10 @@ proxyWebServer.use('/authenticate', async (req, res) => { try { const { projectId } = await atlasCloudAuthenticator.authenticate(); + // Start issuing the cert to save some time when signing in + void atlasCloudAuthenticator.getX509Cert().catch(() => { + // ignore errors + }); res.setHeader('Content-Type', 'application/json'); res.send(JSON.stringify({ projectId })); } catch (err) { @@ -291,19 +379,19 @@ proxyWebServer.use('/authenticate', async (req, res) => { res.end(); }); -proxyWebServer.use('/logout', async (req, res) => { +expressProxy.use('/logout', async (req, res) => { if (req.method !== 'GET') { res.statusCode = 400; res.end(); return; } - await atlasCloudAuthenticator.logout(); + await atlasCloudAuthenticator.cleanupAndLogout(); res.statusCode = 200; res.end(); }); -proxyWebServer.use('/x509', async (req, res) => { +expressProxy.use('/x509', async (req, res) => { if (req.method !== 'GET') { res.statusCode = 400; res.end(); @@ -322,7 +410,7 @@ proxyWebServer.use('/x509', async (req, res) => { res.end(); }); -proxyWebServer.use('/projectId', async (req, res) => { +expressProxy.use('/projectId', async (req, res) => { if (req.method !== 'GET') { res.statusCode = 400; res.end(); @@ -330,7 +418,7 @@ proxyWebServer.use('/projectId', async (req, res) => { } try { - const projectId = await atlasCloudAuthenticator.fetchProjectId(); + const projectId = await atlasCloudAuthenticator.getProjectId(); if (!projectId) { res.statusCode = 403; } else { @@ -344,7 +432,7 @@ proxyWebServer.use('/projectId', async (req, res) => { res.end(); }); -proxyWebServer.use('/create-cluster', async (req, res) => { +expressProxy.use('/create-cluster', async (req, res) => { if (req.method !== 'GET') { res.statusCode = 400; res.end(); @@ -353,14 +441,14 @@ proxyWebServer.use('/create-cluster', async (req, res) => { res.setHeader( 'Location', - `${CLOUD_ORIGIN}/v2/${await atlasCloudAuthenticator.fetchProjectId()}#/clusters/edit/` + `${CLOUD_ORIGIN}/v2/${await atlasCloudAuthenticator.getProjectId()}#/clusters/edit/` ); res.statusCode = 303; res.end(); }); // Prefixed proxy to the cloud backend -proxyWebServer.use( +expressProxy.use( '/cloud-mongodb-com', proxyMiddleware(CLOUD_ORIGIN, { async proxyReqOptDecorator(req) { @@ -387,23 +475,91 @@ proxyWebServer.use( ); // Everything else is proxied directly to webpack-dev-server -proxyWebServer.use( +expressProxy.use( proxyMiddleware(`http://localhost:${WEBPACK_DEV_SERVER_PORT}`) ); -proxyWebServer.listen(PROXY_PORT, 'localhost'); +void electronApp.dock?.hide(); -electronApp.dock.hide(); +logger.log('[electron-proxy] starting proxy server on port %s', PROXY_PORT); -electronApp.on('window-all-closed', () => { - // We want proxy to keep running even when all the windows are closed -}); +const proxyServer = expressProxy.listen(PROXY_PORT, 'localhost'); -electronApp.on('will-quit', () => { - atlasCloudAuthenticator.logout(); +const websocketProxyServer = createWebSocketProxy(); + +const webpackCompiler = webpack(webpackConfig); + +const webpackDevServer = new WebpackDevServer( + { ...webpackConfig.devServer, setupExitSignals: false }, + webpackCompiler +); + +let cleaningUp = false; + +// If stdio stream was already destroyed while we're cleaning up, these streams +// can throw causing Electron to pop up a modal with an error, so we catch and +// print the error ourselves +[process.stdout, process.stderr].forEach((stream) => { + stream.on('error', (err) => { + logger.error(err); + }); }); -electronApp.whenReady().then(() => { +function cleanupAndExit() { + if (cleaningUp) { + return; + } + cleaningUp = true; + logger.log('[electron-proxy] cleaning up before exit'); + void Promise.allSettled([ + // This will cleanup auth and remove the session test user + atlasCloudAuthenticator.cleanupAndLogout(), + + // close the http proxy server + proxyServer.closeAllConnections(), + new Promise((resolve) => { + proxyServer.close(resolve); + }), + + // close the driver websocket proxy server + Array.from(websocketProxyServer.clients.values()).map((ws) => { + return ws.terminate(); + }), + new Promise((resolve) => { + websocketProxyServer.close(resolve); + }), + + // cleanup everything webpack-server related + new Promise((resolve) => { + webpackDevServer.compiler?.close?.(resolve); + }), + webpackDevServer.stop(), + ]).finally(() => { + logger.log('[electron-proxy] done cleaning up'); + process.exitCode = 0; + process.exit(); + }); +} + +electronApp.whenReady().then(async () => { + electronApp.on('window-all-closed', () => { + // We want proxy to keep running even when all the windows are closed, but + // hide the dock icon because there are not windows associated with it + // anyway + electronApp.dock?.hide(); + }); + + electronApp.on('will-quit', (evt) => { + evt.preventDefault(); + void cleanupAndExit(); + }); + + for (const signal of ['SIGINT', 'SIGTERM']) { + process.on(signal, cleanupAndExit); + } + + await webpackDevServer.start(); + if (process.env.OPEN_BROWSER !== 'false') { shell.openExternal(`http://localhost:${PROXY_PORT}`); } diff --git a/packages/compass-web/scripts/start-electron-proxy.js b/packages/compass-web/scripts/start-electron-proxy.js deleted file mode 100644 index dbbc4e2f1f0..00000000000 --- a/packages/compass-web/scripts/start-electron-proxy.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; -const path = require('path'); -const child_process = require('child_process'); -const electronPath = require('electron'); - -function startElectronProxy() { - const child = child_process.execFile( - electronPath, - [path.resolve(__dirname, 'electron-proxy.js')], - { env: process.env } - ); - child.stdout.pipe(process.stdout); - child.stderr.pipe(process.stderr); -} - -module.exports = { startElectronProxy }; diff --git a/packages/compass-web/scripts/ws-proxy.js b/packages/compass-web/scripts/ws-proxy.js index 4efec52d86d..c3e2e6a2561 100644 --- a/packages/compass-web/scripts/ws-proxy.js +++ b/packages/compass-web/scripts/ws-proxy.js @@ -46,7 +46,7 @@ async function resolveX509Cert({ projectId, clusterName }) { * every follow-up message is directly written to the opened socket stream */ function createWebSocketProxy(port = 1337, logger = console) { - const wsServer = new WebSocketServer({ port }, () => { + const wsServer = new WebSocketServer({ host: 'localhost', port }, () => { logger.log('ws server listening at %s', wsServer.options.port); }); @@ -62,7 +62,6 @@ function createWebSocketProxy(port = 1337, logger = console) { }); ws.on('message', async (data) => { if (socket) { - logger.log('message from client'); socket.write(data, 'binary'); } else { // First message before socket is created is with connection info @@ -117,12 +116,13 @@ function createWebSocketProxy(port = 1337, logger = console) { ws.send(JSON.stringify({ evt: connectEvent })); }); socket.on('data', async (data) => { - logger.log('message from server'); ws.send(data); }); } }); }); + + return wsServer; } module.exports = { createWebSocketProxy }; diff --git a/packages/compass-web/src/connection-storage.tsx b/packages/compass-web/src/connection-storage.tsx index 213a22b919e..274fb2d2920 100644 --- a/packages/compass-web/src/connection-storage.tsx +++ b/packages/compass-web/src/connection-storage.tsx @@ -150,7 +150,8 @@ export function buildConnectionInfoFromClusterDescription( orgId: string, projectId: string, description: ClusterDescriptionWithDataProcessingRegion, - deployment: Deployment + deployment: Deployment, + extraConnectionOptions?: Record ) { const connectionString = new ConnectionString( `mongodb+srv://${description.srvAddress}` @@ -169,6 +170,10 @@ export function buildConnectionInfoFromClusterDescription( connectionString.searchParams.set('srvMaxHosts', '3'); } + for (const [key, value] of Object.entries(extraConnectionOptions ?? {})) { + connectionString.searchParams.set(key, String(value)); + } + const deploymentItem = findDeploymentItemByClusterName( description, deployment @@ -211,7 +216,8 @@ class AtlasCloudConnectionStorage constructor( private atlasService: AtlasService, private orgId: string, - private projectId: string + private projectId: string, + private extraConnectionOptions?: Record ) { super(); } @@ -276,7 +282,8 @@ class AtlasCloudConnectionStorage this.orgId, this.projectId, description, - deployment + deployment, + this.extraConnectionOptions ); }); } @@ -294,13 +301,34 @@ class AtlasCloudConnectionStorage const SandboxConnectionStorageContext = React.createContext(null); +const SandboxExtraConnectionOptionsContext = React.createContext< + Record | undefined +>(undefined); + /** * Only used in the sandbox to provide connection info when connecting to the * non-Atlas deployment * @internal */ -export const SandboxConnectionStorageProviver = - SandboxConnectionStorageContext.Provider; +export const SandboxConnectionStorageProviver = ({ + value, + extraConnectionOptions, + children, +}: { + value: ConnectionStorage | null; + extraConnectionOptions?: Record; + children: React.ReactNode; +}) => { + return ( + + + {children} + + + ); +}; export const AtlasCloudConnectionStorageProvider = createServiceProvider( function AtlasCloudConnectionStorageProvider({ @@ -312,9 +340,17 @@ export const AtlasCloudConnectionStorageProvider = createServiceProvider( projectId: string; children: React.ReactChild; }) { + const extraConnectionOptions = useContext( + SandboxExtraConnectionOptionsContext + ); const atlasService = atlasServiceLocator(); const storage = useRef( - new AtlasCloudConnectionStorage(atlasService, orgId, projectId) + new AtlasCloudConnectionStorage( + atlasService, + orgId, + projectId, + extraConnectionOptions + ) ); const sandboxConnectionStorage = useContext( SandboxConnectionStorageContext diff --git a/packages/compass-web/webpack.config.js b/packages/compass-web/webpack.config.js index d16c68303f5..5a614982eb7 100644 --- a/packages/compass-web/webpack.config.js +++ b/packages/compass-web/webpack.config.js @@ -6,8 +6,6 @@ const { isServe, merge, } = require('@mongodb-js/webpack-config-compass'); -const { startElectronProxy } = require('./scripts/start-electron-proxy'); -const { createWebSocketProxy } = require('./scripts/ws-proxy'); const { execFile } = require('child_process'); const { promisify } = require('util'); @@ -17,7 +15,7 @@ function localPolyfill(name) { return path.resolve(__dirname, 'polyfills', ...name.split('/'), 'index.ts'); } -module.exports = async (env, args) => { +module.exports = (env, args) => { const serve = isServe({ env }); let config = createWebConfig({ @@ -29,6 +27,8 @@ module.exports = async (env, args) => { delete config.externals; config = merge(config, { + context: __dirname, + resolve: { alias: { // Dependencies for the unsupported connection types in data-service @@ -143,10 +143,6 @@ module.exports = async (env, args) => { }); if (serve) { - startElectronProxy(); - // TODO: logs are pretty rough here, should make it better - createWebSocketProxy(); - config.output = { path: config.output.path, filename: config.output.filename, diff --git a/packages/compass-workspaces/src/components/workspaces.tsx b/packages/compass-workspaces/src/components/workspaces.tsx index dd8a902cc63..624b697911c 100644 --- a/packages/compass-workspaces/src/components/workspaces.tsx +++ b/packages/compass-workspaces/src/components/workspaces.tsx @@ -81,7 +81,7 @@ const ActiveTabCloseHandler: React.FunctionComponent = ({ children }) => { // Make sure we don't count clicking on buttons that actually cause the // workspace to change, like using breadcrumbs or clicking on an item in the // Databases / Collections list. There are certain corner-cases this doesn't - // handle, but it's good enough to prevent most cases where users can loose + // handle, but it's good enough to prevent most cases where users can lose // content by accident rafraf(() => { if (mountedRef.current) { From 3eaf6b6a6ae479eaa1d98ec064a3592d8492ae9f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 14:47:08 +0000 Subject: [PATCH 06/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6303) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index cac9e707ac2..5c50d0defaa 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Sep 30, 2024 at 12:48 PM +Generated on Mon, Sep 30, 2024 at 02:46 PM ## Table of Contents From c64c3eb80d5fc1c2d71c9794f9b35ec86d0ff181 Mon Sep 17 00:00:00 2001 From: svc-devtoolsbot <79531021+svc-devtoolsbot@users.noreply.github.com> Date: Tue, 1 Oct 2024 01:04:04 -0400 Subject: [PATCH 07/31] chore(release): bump package versions (#6302) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- configs/webpack-config-compass/package.json | 2 +- package-lock.json | 290 +++++++++--------- packages/compass-aggregations/package.json | 8 +- packages/compass-collection/package.json | 4 +- .../package.json | 4 +- packages/compass-crud/package.json | 8 +- packages/compass-e2e-tests/package.json | 2 +- packages/compass-explain-plan/package.json | 4 +- .../compass-export-to-language/package.json | 4 +- packages/compass-global-writes/package.json | 4 +- packages/compass-import-export/package.json | 4 +- packages/compass-indexes/package.json | 4 +- packages/compass-query-bar/package.json | 4 +- .../package.json | 4 +- .../compass-schema-validation/package.json | 6 +- packages/compass-schema/package.json | 6 +- packages/compass-serverstats/package.json | 4 +- packages/compass-shell/package.json | 4 +- packages/compass-sidebar/package.json | 6 +- packages/compass-web/package.json | 32 +- packages/compass-welcome/package.json | 4 +- packages/compass-workspaces/package.json | 2 +- packages/compass/package.json | 38 +-- .../databases-collections-list/package.json | 4 +- packages/databases-collections/package.json | 6 +- 25 files changed, 229 insertions(+), 229 deletions(-) diff --git a/configs/webpack-config-compass/package.json b/configs/webpack-config-compass/package.json index b4f8955cc12..43ab0dcffa1 100644 --- a/configs/webpack-config-compass/package.json +++ b/configs/webpack-config-compass/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.4.3", + "version": "1.4.4", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/package-lock.json b/package-lock.json index 2baf4ff408c..397cebf3545 100644 --- a/package-lock.json +++ b/package-lock.json @@ -497,7 +497,7 @@ }, "configs/webpack-config-compass": { "name": "@mongodb-js/webpack-config-compass", - "version": "1.4.3", + "version": "1.4.4", "license": "SSPL", "dependencies": { "@babel/core": "^7.21.4", @@ -43776,36 +43776,36 @@ "@electron/rebuild": "^3.6.0", "@electron/remote": "^2.1.2", "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-aggregations": "^9.45.2", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connection-import-export": "^0.39.1", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", - "@mongodb-js/compass-databases-collections": "^1.42.1", - "@mongodb-js/compass-explain-plan": "^6.43.1", - "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-find-in-page": "^4.31.0", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.0", - "@mongodb-js/compass-import-export": "^7.42.1", - "@mongodb-js/compass-indexes": "^5.42.1", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-import-export": "^7.42.2", + "@mongodb-js/compass-indexes": "^5.42.2", "@mongodb-js/compass-intercom": "^0.13.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", - "@mongodb-js/compass-saved-aggregations-queries": "^1.43.1", - "@mongodb-js/compass-schema": "^6.44.1", - "@mongodb-js/compass-schema-validation": "^6.43.1", - "@mongodb-js/compass-serverstats": "^16.42.1", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-saved-aggregations-queries": "^1.43.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-serverstats": "^16.42.2", "@mongodb-js/compass-settings": "^0.41.0", - "@mongodb-js/compass-shell": "^3.42.1", - "@mongodb-js/compass-sidebar": "^5.43.1", + "@mongodb-js/compass-shell": "^3.42.2", + "@mongodb-js/compass-sidebar": "^5.43.2", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.41.1", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", @@ -43818,7 +43818,7 @@ "@mongodb-js/sbom-tools": "^0.7.0", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.3", + "@mongodb-js/webpack-config-compass": "^1.4.4", "@segment/analytics-node": "^1.1.4", "ampersand-view": "^9.0.0", "chai": "^4.3.4", @@ -43865,7 +43865,7 @@ }, "packages/compass-aggregations": { "name": "@mongodb-js/compass-aggregations", - "version": "9.45.1", + "version": "9.45.2", "license": "SSPL", "dependencies": { "@babel/generator": "^7.19.5", @@ -43876,17 +43876,17 @@ "@dnd-kit/utilities": "^3.2.1", "@mongodb-js/atlas-service": "^0.29.0", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-crud": "^13.43.2", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/my-queries-storage": "^0.17.0", @@ -44030,7 +44030,7 @@ }, "packages/compass-collection": { "name": "@mongodb-js/compass-collection", - "version": "4.42.1", + "version": "4.42.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", @@ -44038,7 +44038,7 @@ "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/mongodb-constants": "^0.10.2", "compass-preferences-model": "^2.29.0", @@ -44327,12 +44327,12 @@ }, "packages/compass-connections-navigation": { "name": "@mongodb-js/compass-connections-navigation", - "version": "1.42.1", + "version": "1.42.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", @@ -44422,19 +44422,19 @@ }, "packages/compass-crud": { "name": "@mongodb-js/compass-crud", - "version": "13.43.1", + "version": "13.43.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-query-bar": "^8.44.2", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", @@ -44526,7 +44526,7 @@ } }, "packages/compass-e2e-tests": { - "version": "1.27.1", + "version": "1.27.2", "devDependencies": { "@electron/rebuild": "^3.6.0", "@mongodb-js/compass-test-server": "^0.1.22", @@ -44896,10 +44896,10 @@ }, "packages/compass-explain-plan": { "name": "@mongodb-js/compass-explain-plan", - "version": "6.43.1", + "version": "6.43.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", @@ -44975,10 +44975,10 @@ }, "packages/compass-export-to-language": { "name": "@mongodb-js/compass-export-to-language", - "version": "9.19.1", + "version": "9.19.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", @@ -45268,11 +45268,11 @@ }, "packages/compass-global-writes": { "name": "@mongodb-js/compass-global-writes", - "version": "1.2.0", + "version": "1.2.1", "license": "SSPL", "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-field-store": "^9.18.1", @@ -45461,7 +45461,7 @@ }, "packages/compass-import-export": { "name": "@mongodb-js/compass-import-export", - "version": "7.42.1", + "version": "7.42.2", "license": "SSPL", "dependencies": { "@electron/remote": "^2.1.2", @@ -45471,7 +45471,7 @@ "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "bson": "^6.7.0", "compass-preferences-model": "^2.29.0", "debug": "^4.3.4", @@ -45555,7 +45555,7 @@ }, "packages/compass-indexes": { "name": "@mongodb-js/compass-indexes", - "version": "5.42.1", + "version": "5.42.2", "license": "SSPL", "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", @@ -45566,7 +45566,7 @@ "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", @@ -45969,12 +45969,12 @@ }, "packages/compass-query-bar": { "name": "@mongodb-js/compass-query-bar", - "version": "8.44.1", + "version": "8.44.2", "license": "SSPL", "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", @@ -46047,7 +46047,7 @@ }, "packages/compass-saved-aggregations-queries": { "name": "@mongodb-js/compass-saved-aggregations-queries", - "version": "1.43.1", + "version": "1.43.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", @@ -46055,7 +46055,7 @@ "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/my-queries-storage": "^0.17.0", @@ -46123,15 +46123,15 @@ }, "packages/compass-schema": { "name": "@mongodb-js/compass-schema", - "version": "6.44.1", + "version": "6.44.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-query-bar": "^8.44.2", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", @@ -46182,14 +46182,14 @@ }, "packages/compass-schema-validation": { "name": "@mongodb-js/compass-schema-validation", - "version": "6.43.1", + "version": "6.43.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-crud": "^13.43.2", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", @@ -46259,14 +46259,14 @@ }, "packages/compass-serverstats": { "name": "@mongodb-js/compass-serverstats", - "version": "16.42.1", + "version": "16.42.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", @@ -46377,7 +46377,7 @@ }, "packages/compass-shell": { "name": "@mongodb-js/compass-shell", - "version": "3.42.1", + "version": "3.42.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", @@ -46386,7 +46386,7 @@ "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongosh/browser-repl": "^2.3.1", "@mongosh/logging": "^2.3.1", "@mongosh/node-runtime-worker-thread": "^2.3.1", @@ -46702,18 +46702,18 @@ }, "packages/compass-sidebar": { "name": "@mongodb-js/compass-sidebar", - "version": "5.43.1", + "version": "5.43.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connection-import-export": "^0.39.1", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-connections-navigation": "^1.42.1", + "@mongodb-js/compass-connections-navigation": "^1.42.2", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", @@ -47077,31 +47077,31 @@ }, "packages/compass-web": { "name": "@mongodb-js/compass-web", - "version": "0.8.1", + "version": "0.8.2", "license": "SSPL", "devDependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-aggregations": "^9.45.2", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", - "@mongodb-js/compass-databases-collections": "^1.42.1", - "@mongodb-js/compass-explain-plan": "^6.43.1", - "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.0", - "@mongodb-js/compass-indexes": "^5.42.1", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-indexes": "^5.42.2", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", - "@mongodb-js/compass-schema": "^6.44.1", - "@mongodb-js/compass-schema-validation": "^6.43.1", - "@mongodb-js/compass-sidebar": "^5.43.1", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-sidebar": "^5.43.2", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.41.1", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -47109,7 +47109,7 @@ "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.3", + "@mongodb-js/webpack-config-compass": "^1.4.4", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/express-http-proxy": "^1.6.6", @@ -47317,14 +47317,14 @@ }, "packages/compass-welcome": { "name": "@mongodb-js/compass-welcome", - "version": "0.41.1", + "version": "0.41.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", @@ -47383,7 +47383,7 @@ }, "packages/compass-workspaces": { "name": "@mongodb-js/compass-workspaces", - "version": "0.24.1", + "version": "0.24.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", @@ -48072,7 +48072,7 @@ }, "packages/databases-collections": { "name": "@mongodb-js/compass-databases-collections", - "version": "1.42.1", + "version": "1.42.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", @@ -48081,8 +48081,8 @@ "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", - "@mongodb-js/databases-collections-list": "^1.40.1", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/databases-collections-list": "^1.40.2", "@mongodb-js/my-queries-storage": "^0.17.0", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", @@ -48119,13 +48119,13 @@ }, "packages/databases-collections-list": { "name": "@mongodb-js/databases-collections-list", - "version": "1.40.1", + "version": "1.40.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", "mongodb-ns": "^2.4.2", @@ -56002,17 +56002,17 @@ "@dnd-kit/utilities": "^3.2.1", "@mongodb-js/atlas-service": "^0.29.0", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-crud": "^13.43.2", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56146,7 +56146,7 @@ "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56437,7 +56437,7 @@ "requires": { "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -56497,16 +56497,16 @@ "version": "file:packages/compass-crud", "requires": { "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-query-bar": "^8.44.2", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56566,8 +56566,8 @@ "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", - "@mongodb-js/databases-collections-list": "^1.40.1", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/databases-collections-list": "^1.40.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/my-queries-storage": "^0.17.0", @@ -56684,7 +56684,7 @@ "@mongodb-js/compass-explain-plan": { "version": "file:packages/compass-explain-plan", "requires": { - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", @@ -56754,7 +56754,7 @@ "@mongodb-js/compass-export-to-language": { "version": "file:packages/compass-export-to-language", "requires": { - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", @@ -57004,7 +57004,7 @@ "version": "file:packages/compass-global-writes", "requires": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-field-store": "^9.18.1", @@ -57127,7 +57127,7 @@ "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57212,7 +57212,7 @@ "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -57485,7 +57485,7 @@ "requires": { "@mongodb-js/atlas-service": "^0.29.0", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", @@ -57557,7 +57557,7 @@ "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -57621,12 +57621,12 @@ "@mongodb-js/compass-schema": { "version": "file:packages/compass-schema", "requires": { - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-query-bar": "^8.44.2", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -57699,10 +57699,10 @@ "version": "file:packages/compass-schema-validation", "requires": { "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-crud": "^13.43.2", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", @@ -58091,7 +58091,7 @@ "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58202,7 +58202,7 @@ "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58435,11 +58435,11 @@ "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connection-import-export": "^0.39.1", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-connections-navigation": "^1.42.1", + "@mongodb-js/compass-connections-navigation": "^1.42.2", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -58762,27 +58762,27 @@ "version": "file:packages/compass-web", "requires": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-aggregations": "^9.45.2", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", - "@mongodb-js/compass-databases-collections": "^1.42.1", - "@mongodb-js/compass-explain-plan": "^6.43.1", - "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.0", - "@mongodb-js/compass-indexes": "^5.42.1", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-indexes": "^5.42.2", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", - "@mongodb-js/compass-schema": "^6.44.1", - "@mongodb-js/compass-schema-validation": "^6.43.1", - "@mongodb-js/compass-sidebar": "^5.43.1", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-sidebar": "^5.43.2", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.41.1", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -58790,7 +58790,7 @@ "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.3", + "@mongodb-js/webpack-config-compass": "^1.4.4", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/express-http-proxy": "^1.6.6", @@ -58983,7 +58983,7 @@ "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -59425,7 +59425,7 @@ "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -80055,36 +80055,36 @@ "@electron/rebuild": "^3.6.0", "@electron/remote": "^2.1.2", "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-aggregations": "^9.45.2", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connection-import-export": "^0.39.1", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", - "@mongodb-js/compass-databases-collections": "^1.42.1", - "@mongodb-js/compass-explain-plan": "^6.43.1", - "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-find-in-page": "^4.31.0", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.0", - "@mongodb-js/compass-import-export": "^7.42.1", - "@mongodb-js/compass-indexes": "^5.42.1", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-import-export": "^7.42.2", + "@mongodb-js/compass-indexes": "^5.42.2", "@mongodb-js/compass-intercom": "^0.13.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", - "@mongodb-js/compass-saved-aggregations-queries": "^1.43.1", - "@mongodb-js/compass-schema": "^6.44.1", - "@mongodb-js/compass-schema-validation": "^6.43.1", - "@mongodb-js/compass-serverstats": "^16.42.1", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-saved-aggregations-queries": "^1.43.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-serverstats": "^16.42.2", "@mongodb-js/compass-settings": "^0.41.0", - "@mongodb-js/compass-shell": "^3.42.1", - "@mongodb-js/compass-sidebar": "^5.43.1", + "@mongodb-js/compass-shell": "^3.42.2", + "@mongodb-js/compass-sidebar": "^5.43.2", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.41.1", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", @@ -80097,7 +80097,7 @@ "@mongodb-js/sbom-tools": "^0.7.0", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.3", + "@mongodb-js/webpack-config-compass": "^1.4.4", "@mongosh/node-runtime-worker-thread": "^2.3.1", "@segment/analytics-node": "^1.1.4", "ampersand-view": "^9.0.0", diff --git a/packages/compass-aggregations/package.json b/packages/compass-aggregations/package.json index 942e5c44a1c..1cf42ff6fcd 100644 --- a/packages/compass-aggregations/package.json +++ b/packages/compass-aggregations/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-aggregations", "description": "Compass Aggregation Pipeline Builder", "private": true, - "version": "9.45.1", + "version": "9.45.2", "main": "dist/index.js", "compass:main": "src/index.ts", "types": "dist/index.d.ts", @@ -63,17 +63,17 @@ "@dnd-kit/utilities": "^3.2.1", "@mongodb-js/atlas-service": "^0.29.0", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-crud": "^13.43.2", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/my-queries-storage": "^0.17.0", diff --git a/packages/compass-collection/package.json b/packages/compass-collection/package.json index 7dbaedf490b..7000307b358 100644 --- a/packages/compass-collection/package.json +++ b/packages/compass-collection/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "4.42.1", + "version": "4.42.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -53,7 +53,7 @@ "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/mongodb-constants": "^0.10.2", "compass-preferences-model": "^2.29.0", diff --git a/packages/compass-connections-navigation/package.json b/packages/compass-connections-navigation/package.json index 253bbcf0169..419f4f67123 100644 --- a/packages/compass-connections-navigation/package.json +++ b/packages/compass-connections-navigation/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.42.1", + "version": "1.42.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -53,7 +53,7 @@ "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "compass-preferences-model": "^2.29.0", "mongodb-build-info": "^1.7.2", "react": "^17.0.2", diff --git a/packages/compass-crud/package.json b/packages/compass-crud/package.json index 5e1de5ec2bf..dec2f171c2f 100644 --- a/packages/compass-crud/package.json +++ b/packages/compass-crud/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "13.43.1", + "version": "13.43.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -72,15 +72,15 @@ }, "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-query-bar": "^8.44.2", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index fb6a7405e35..454074f362e 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "compass-e2e-tests", - "version": "1.27.1", + "version": "1.27.2", "private": true, "description": "E2E test suite for Compass app that follows smoke tests / feature testing matrix", "scripts": { diff --git a/packages/compass-explain-plan/package.json b/packages/compass-explain-plan/package.json index 7173623df09..e46411c6d7a 100644 --- a/packages/compass-explain-plan/package.json +++ b/packages/compass-explain-plan/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.43.1", + "version": "6.43.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,7 +69,7 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", diff --git a/packages/compass-export-to-language/package.json b/packages/compass-export-to-language/package.json index bece71d16f6..f9d7f4ef167 100644 --- a/packages/compass-export-to-language/package.json +++ b/packages/compass-export-to-language/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.19.1", + "version": "9.19.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,7 +48,7 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", diff --git a/packages/compass-global-writes/package.json b/packages/compass-global-writes/package.json index b2594f351d5..ab2f3f13335 100644 --- a/packages/compass-global-writes/package.json +++ b/packages/compass-global-writes/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.2.0", + "version": "1.2.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,7 +50,7 @@ }, "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", diff --git a/packages/compass-import-export/package.json b/packages/compass-import-export/package.json index a5c69e6ccdf..5c46f687ec1 100644 --- a/packages/compass-import-export/package.json +++ b/packages/compass-import-export/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.42.1", + "version": "7.42.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -55,7 +55,7 @@ "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "bson": "^6.7.0", "compass-preferences-model": "^2.29.0", "debug": "^4.3.4", diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json index 79ce4fe69ef..7cdc20a6075 100644 --- a/packages/compass-indexes/package.json +++ b/packages/compass-indexes/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "5.42.1", + "version": "5.42.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -75,7 +75,7 @@ "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", diff --git a/packages/compass-query-bar/package.json b/packages/compass-query-bar/package.json index ec57ad2f178..3855ba7aa8a 100644 --- a/packages/compass-query-bar/package.json +++ b/packages/compass-query-bar/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "8.44.1", + "version": "8.44.2", "homepage": "https://github.com/mongodb-js/compass", "license": "SSPL", "bugs": { @@ -68,7 +68,7 @@ "dependencies": { "@mongodb-js/atlas-service": "^0.29.0", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-editor": "^0.31.0", diff --git a/packages/compass-saved-aggregations-queries/package.json b/packages/compass-saved-aggregations-queries/package.json index c40664c63ac..8f014bec958 100644 --- a/packages/compass-saved-aggregations-queries/package.json +++ b/packages/compass-saved-aggregations-queries/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.43.1", + "version": "1.43.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -53,7 +53,7 @@ "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/my-queries-storage": "^0.17.0", diff --git a/packages/compass-schema-validation/package.json b/packages/compass-schema-validation/package.json index 675e6d89eb3..60e0ee6cc7e 100644 --- a/packages/compass-schema-validation/package.json +++ b/packages/compass-schema-validation/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.43.1", + "version": "6.43.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -70,10 +70,10 @@ }, "dependencies": { "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", + "@mongodb-js/compass-crud": "^13.43.2", "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", diff --git a/packages/compass-schema/package.json b/packages/compass-schema/package.json index ff93ca59ee7..ff92b7e7689 100644 --- a/packages/compass-schema/package.json +++ b/packages/compass-schema/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.44.1", + "version": "6.44.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -72,13 +72,13 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-query-bar": "^8.44.1", + "@mongodb-js/compass-query-bar": "^8.44.2", "@mongodb-js/connection-storage": "^0.22.0", "bson": "^6.7.0", "compass-preferences-model": "^2.29.0", diff --git a/packages/compass-serverstats/package.json b/packages/compass-serverstats/package.json index fd813f21cbf..77bb6e773ec 100644 --- a/packages/compass-serverstats/package.json +++ b/packages/compass-serverstats/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-serverstats", "description": "Compass Real Time", "private": true, - "version": "16.42.1", + "version": "16.42.2", "main": "dist/index.js", "compass:main": "src/index.ts", "exports": { @@ -34,7 +34,7 @@ "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", diff --git a/packages/compass-shell/package.json b/packages/compass-shell/package.json index 0b5df28e674..908679cce68 100644 --- a/packages/compass-shell/package.json +++ b/packages/compass-shell/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "3.42.1", + "version": "3.42.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -55,7 +55,7 @@ "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongosh/browser-repl": "^2.3.1", "@mongosh/logging": "^2.3.1", "@mongosh/node-runtime-worker-thread": "^2.3.1", diff --git a/packages/compass-sidebar/package.json b/packages/compass-sidebar/package.json index b29c313edac..735a9301b75 100644 --- a/packages/compass-sidebar/package.json +++ b/packages/compass-sidebar/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "5.43.1", + "version": "5.43.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,11 +52,11 @@ "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connection-import-export": "^0.39.1", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-connections-navigation": "^1.42.1", + "@mongodb-js/compass-connections-navigation": "^1.42.2", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-form": "^1.41.1", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", diff --git a/packages/compass-web/package.json b/packages/compass-web/package.json index 3257fcc935f..41030bbcc4c 100644 --- a/packages/compass-web/package.json +++ b/packages/compass-web/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.8.1", + "version": "0.8.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -63,27 +63,27 @@ }, "devDependencies": { "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-aggregations": "^9.45.2", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", - "@mongodb-js/compass-databases-collections": "^1.42.1", - "@mongodb-js/compass-explain-plan": "^6.43.1", - "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.0", - "@mongodb-js/compass-indexes": "^5.42.1", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-indexes": "^5.42.2", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", - "@mongodb-js/compass-schema": "^6.44.1", - "@mongodb-js/compass-schema-validation": "^6.43.1", - "@mongodb-js/compass-sidebar": "^5.43.1", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-sidebar": "^5.43.2", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.41.1", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -91,7 +91,7 @@ "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.3", + "@mongodb-js/webpack-config-compass": "^1.4.4", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/express-http-proxy": "^1.6.6", diff --git a/packages/compass-welcome/package.json b/packages/compass-welcome/package.json index 042662abd1b..e0c2ebfb3d6 100644 --- a/packages/compass-welcome/package.json +++ b/packages/compass-welcome/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.41.1", + "version": "0.41.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -53,7 +53,7 @@ "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", diff --git a/packages/compass-workspaces/package.json b/packages/compass-workspaces/package.json index b7983d8e2ec..50d0ddea3f1 100644 --- a/packages/compass-workspaces/package.json +++ b/packages/compass-workspaces/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.24.1", + "version": "0.24.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/packages/compass/package.json b/packages/compass/package.json index 4027ea3b23a..bb934a8154f 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -192,36 +192,36 @@ "@electron/rebuild": "^3.6.0", "@electron/remote": "^2.1.2", "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.1", + "@mongodb-js/compass-aggregations": "^9.45.2", "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.1", + "@mongodb-js/compass-collection": "^4.42.2", "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connection-import-export": "^0.39.1", "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.1", - "@mongodb-js/compass-databases-collections": "^1.42.1", - "@mongodb-js/compass-explain-plan": "^6.43.1", - "@mongodb-js/compass-export-to-language": "^9.19.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", "@mongodb-js/compass-field-store": "^9.18.1", "@mongodb-js/compass-find-in-page": "^4.31.0", "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.0", - "@mongodb-js/compass-import-export": "^7.42.1", - "@mongodb-js/compass-indexes": "^5.42.1", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-import-export": "^7.42.2", + "@mongodb-js/compass-indexes": "^5.42.2", "@mongodb-js/compass-intercom": "^0.13.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.1", - "@mongodb-js/compass-saved-aggregations-queries": "^1.43.1", - "@mongodb-js/compass-schema": "^6.44.1", - "@mongodb-js/compass-schema-validation": "^6.43.1", - "@mongodb-js/compass-serverstats": "^16.42.1", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-saved-aggregations-queries": "^1.43.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-serverstats": "^16.42.2", "@mongodb-js/compass-settings": "^0.41.0", - "@mongodb-js/compass-shell": "^3.42.1", - "@mongodb-js/compass-sidebar": "^5.43.1", + "@mongodb-js/compass-shell": "^3.42.2", + "@mongodb-js/compass-sidebar": "^5.43.2", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.41.1", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/devtools-proxy-support": "^0.3.9", @@ -234,7 +234,7 @@ "@mongodb-js/sbom-tools": "^0.7.0", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.3", + "@mongodb-js/webpack-config-compass": "^1.4.4", "@segment/analytics-node": "^1.1.4", "ampersand-view": "^9.0.0", "chai": "^4.3.4", diff --git a/packages/databases-collections-list/package.json b/packages/databases-collections-list/package.json index 3ef13aa1e50..d4f8db40e1e 100644 --- a/packages/databases-collections-list/package.json +++ b/packages/databases-collections-list/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.40.1", + "version": "1.40.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,7 +51,7 @@ "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/compass-connections": "^1.43.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/connection-info": "^0.9.0", "compass-preferences-model": "^2.29.0", "mongodb-ns": "^2.4.2", diff --git a/packages/databases-collections/package.json b/packages/databases-collections/package.json index 48c4abc06a5..fa378a64d14 100644 --- a/packages/databases-collections/package.json +++ b/packages/databases-collections/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-databases-collections", "description": "Plugin for viewing the list of, creating, and dropping databases and collections", "private": true, - "version": "1.42.1", + "version": "1.42.2", "license": "SSPL", "homepage": "https://github.com/mongodb-js/compass", "bugs": { @@ -65,8 +65,8 @@ "@mongodb-js/compass-editor": "^0.31.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.1", - "@mongodb-js/databases-collections-list": "^1.40.1", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/databases-collections-list": "^1.40.2", "@mongodb-js/my-queries-storage": "^0.17.0", "compass-preferences-model": "^2.29.0", "hadron-app-registry": "^9.2.7", From 9279a7857cd0b8ed920b0a1e6536af84f14bb765 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 05:11:01 +0000 Subject: [PATCH 08/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6306) Update report Co-authored-by: svc-devtoolsbot <79531021+svc-devtoolsbot@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 8dca8fe19cf..616e9ade9e5 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Mon Sep 30 2024. +This document was automatically generated on Tue Oct 01 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 5c50d0defaa..4f972851018 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Sep 30, 2024 at 02:46 PM +Generated on Tue, Oct 1, 2024 at 05:10 AM ## Table of Contents From 42294867749aa34faf6b8e7c48d946d3f3cc2b5e Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Tue, 1 Oct 2024 09:27:22 +0200 Subject: [PATCH 09/31] chore(atlas-service, indexes): remove all the domain specific parts of automation agent request helper (#6305) * chore(atlas-service, indexes): remove all the domain specific parts of automation agent request helper * chore(indexes): add some tests --- packages/atlas-service/src/atlas-service.ts | 109 +++++++--- .../make-automation-agent-op-request.spec.ts | 124 ------------ .../src/make-automation-agent-op-request.ts | 186 ------------------ .../modules/rolling-indexes-service.spec.ts | 69 +++++++ .../src/modules/rolling-indexes-service.ts | 62 ++++-- 5 files changed, 199 insertions(+), 351 deletions(-) delete mode 100644 packages/atlas-service/src/make-automation-agent-op-request.spec.ts delete mode 100644 packages/atlas-service/src/make-automation-agent-op-request.ts create mode 100644 packages/compass-indexes/src/modules/rolling-indexes-service.spec.ts diff --git a/packages/atlas-service/src/atlas-service.ts b/packages/atlas-service/src/atlas-service.ts index 8abe8f2c03b..c57a506b852 100644 --- a/packages/atlas-service/src/atlas-service.ts +++ b/packages/atlas-service/src/atlas-service.ts @@ -9,11 +9,6 @@ import { import type { Logger } from '@mongodb-js/compass-logging'; import type { PreferencesAccess } from 'compass-preferences-model'; import type { AtlasClusterMetadata } from '@mongodb-js/connection-info'; -import type { - AutomationAgentRequestTypes, - AutomationAgentResponse, -} from './make-automation-agent-op-request'; -import { makeAutomationAgentOpRequest } from './make-automation-agent-op-request'; export type AtlasServiceOptions = { defaultHeaders?: Record; @@ -104,34 +99,90 @@ export class AtlasService { }, }); } - automationAgentFetch( - atlasMetadata: Pick< - AtlasClusterMetadata, - | 'projectId' - | 'clusterUniqueId' - | 'regionalBaseUrl' - | 'metricsType' - | 'metricsId' - >, - opType: OpType, - opBody: Omit< - AutomationAgentRequestTypes[OpType], - 'clusterId' | 'serverlessId' - > - ): Promise> { + async automationAgentRequest( + atlasMetadata: AtlasClusterMetadata, + opType: string, + opBody: Record + ): Promise<{ _id: string; requestType: string } | undefined> { const opBodyClusterId = atlasMetadata.metricsType === 'serverless' ? { serverlessId: atlasMetadata.clusterUniqueId } : { clusterId: atlasMetadata.metricsId }; - return makeAutomationAgentOpRequest( - this.authenticatedFetch.bind(this), - this.regionalizedCloudEndpoint(atlasMetadata), - atlasMetadata.projectId, - opType, - Object.assign( - opBodyClusterId, - opBody - ) as AutomationAgentRequestTypes[OpType] + const requestUrl = this.regionalizedCloudEndpoint( + atlasMetadata, + `/explorer/v1/groups/${atlasMetadata.projectId}/requests/${opType}` ); + const json = await this.authenticatedFetch(requestUrl, { + method: 'POST', + headers: { + 'content-type': 'application/json', + }, + body: JSON.stringify({ ...opBodyClusterId, ...opBody }), + }).then((res) => { + if ( + res.headers + .get('content-type') + ?.toLowerCase() + .includes('application/json') + ) { + return res.json(); + } + }); + assertAutomationAgentRequestResponse(json, opType); + return json; + } + async automationAgentAwait( + atlasMetadata: AtlasClusterMetadata, + opType: string, + requestId: string + ): Promise<{ + _id: string; + requestType: string; + response: T[]; + }> { + const requestUrl = this.regionalizedCloudEndpoint( + atlasMetadata, + `/explorer/v1/groups/${atlasMetadata.projectId}/requests/${requestId}/types/${opType}/await` + ); + const json = await this.authenticatedFetch(requestUrl, { + method: 'GET', + }).then((res) => { + return res.json(); + }); + assertAutomationAgentAwaitResponse(json, opType); + return json; + } +} + +function assertAutomationAgentRequestResponse( + json: any, + opType: string +): asserts json is { _id: string; requestType: string } { + if ( + Object.prototype.hasOwnProperty.call(json, '_id') && + Object.prototype.hasOwnProperty.call(json, 'requestType') && + json.requestType === opType + ) { + return; + } + throw new Error( + 'Got unexpected backend response for automation agent request' + ); +} + +function assertAutomationAgentAwaitResponse( + json: any, + opType: string +): asserts json is { _id: string; requestType: string; response: T[] } { + if ( + Object.prototype.hasOwnProperty.call(json, '_id') && + Object.prototype.hasOwnProperty.call(json, 'requestType') && + Object.prototype.hasOwnProperty.call(json, 'response') && + json.requestType === opType + ) { + return; } + throw new Error( + 'Got unexpected backend response for automation agent request await' + ); } diff --git a/packages/atlas-service/src/make-automation-agent-op-request.spec.ts b/packages/atlas-service/src/make-automation-agent-op-request.spec.ts deleted file mode 100644 index c989d62fca7..00000000000 --- a/packages/atlas-service/src/make-automation-agent-op-request.spec.ts +++ /dev/null @@ -1,124 +0,0 @@ -import Sinon from 'sinon'; -import { makeAutomationAgentOpRequest } from './make-automation-agent-op-request'; -import { expect } from 'chai'; - -describe('makeAutomationAgentOpRequest', function () { - const successSpecs = [ - [ - 'succeeds if backend returned requestId and response', - { _id: 'abc', requestType: 'listIndexStats' }, - { - _id: 'abc', - requestType: 'listIndexStats', - response: [{ indexName: 'test' }], - }, - ], - ] as const; - - const failSpecs = [ - [ - 'fails if initial request fails', - new Error('NetworkError'), - {}, - /NetworkError/, - ], - [ - 'fails if await response fails', - { _id: 'abc', requestType: 'listIndexStats' }, - new Error('NetworkError'), - /NetworkError/, - ], - [ - 'fails if backend did not return requestId', - {}, - {}, - /Got unexpected backend response/, - ], - [ - 'fails if backend returned requestId but no response', - { _id: 'abc', requestType: 'listIndexStats' }, - {}, - /Got unexpected backend response/, - ], - ] as const; - - function getMockFetch( - requestResponse: Record | Error, - awaitResponse: Record | Error - ) { - return Sinon.stub() - .onFirstCall() - .callsFake(() => { - return requestResponse instanceof Error - ? Promise.reject(requestResponse) - : Promise.resolve({ - ok: true, - staus: 200, - json() { - return Promise.resolve(requestResponse); - }, - }); - }) - .onSecondCall() - .callsFake(() => { - return awaitResponse instanceof Error - ? Promise.reject(awaitResponse) - : Promise.resolve({ - ok: true, - staus: 200, - json() { - return Promise.resolve(awaitResponse); - }, - }); - }); - } - - function getRequestBodyFromFnCall(call: Sinon.SinonSpyCall) { - return JSON.parse(call.args[1].body); - } - - for (const [ - successSpecName, - requestResponse, - awaitResponse, - ] of successSpecs) { - it(successSpecName, async function () { - const fetchFn = getMockFetch(requestResponse, awaitResponse); - const res = await makeAutomationAgentOpRequest( - fetchFn, - 'http://example.com', - 'abc', - 'listIndexStats', - { clusterId: 'abc', db: 'db', collection: 'coll' } - ); - expect(getRequestBodyFromFnCall(fetchFn.firstCall)).to.deep.eq({ - clusterId: 'abc', - collection: 'coll', - db: 'db', - }); - expect(res).to.deep.eq(awaitResponse.response); - }); - } - - for (const [ - failSpecName, - requestResponse, - awaitResponse, - errorMessage, - ] of failSpecs) { - it(failSpecName, async function () { - try { - await makeAutomationAgentOpRequest( - getMockFetch(requestResponse, awaitResponse), - 'http://example.com', - 'abc', - 'listIndexStats', - { clusterId: 'abc', db: 'db', collection: 'coll' } - ); - expect.fail('Expected makeAutomationAgentOpRequest call to fail'); - } catch (err) { - expect((err as any).message).to.match(errorMessage); - } - }); - } -}); diff --git a/packages/atlas-service/src/make-automation-agent-op-request.ts b/packages/atlas-service/src/make-automation-agent-op-request.ts deleted file mode 100644 index 1d0c5c0def1..00000000000 --- a/packages/atlas-service/src/make-automation-agent-op-request.ts +++ /dev/null @@ -1,186 +0,0 @@ -type ClusterOrServerlessId = - | { serverlessId?: never; clusterId: string } - | { serverlessId: string; clusterId?: never }; - -export type AutomationAgentRequestTypes = { - listIndexStats: ClusterOrServerlessId & { - db: string; - collection: string; - }; - index: ClusterOrServerlessId & { - db: string; - collection: string; - keys: string; - options: string; - collationOptions: string; - }; - dropIndex: ClusterOrServerlessId & { - db: string; - collection: string; - name: string; - }; -}; - -type AutomationAgentRequestOpTypes = keyof AutomationAgentRequestTypes; - -type AutomationAgentRequestResponse< - OpType extends AutomationAgentRequestOpTypes -> = { - _id: string; - requestType: OpType; -}; - -function assertAutomationAgentRequestResponse< - OpType extends AutomationAgentRequestOpTypes ->( - json: any, - opType: OpType -): asserts json is AutomationAgentRequestResponse { - if ( - Object.prototype.hasOwnProperty.call(json, '_id') && - Object.prototype.hasOwnProperty.call(json, 'requestType') && - json.requestType === opType - ) { - return; - } - throw new Error( - 'Got unexpected backend response for automation agent request' - ); -} - -export type AutomationAgentAwaitResponseTypes = { - listIndexStats: { - collName: string; - dbName: string; - indexName: string; - indexProperties: { label: string; properties: Record }[]; - indexType: { label: string }; - keys: { name: string; value: string | number }; - sizeBytes: number; - status: 'rolling build' | 'building' | 'exists'; - }[]; - dropIndex: never[]; -}; - -type AutomationAgentAwaitOpTypes = keyof AutomationAgentAwaitResponseTypes; - -type AutomationAgentAwaitResponse = - { - _id: string; - requestID: string; - requestType: OpType; - response: AutomationAgentAwaitResponseTypes[OpType]; - type: OpType; - }; - -function assertAutomationAgentAwaitResponse< - OpType extends AutomationAgentAwaitOpTypes ->( - json: any, - opType: OpType -): asserts json is AutomationAgentAwaitResponse { - if ( - Object.prototype.hasOwnProperty.call(json, '_id') && - Object.prototype.hasOwnProperty.call(json, 'requestType') && - Object.prototype.hasOwnProperty.call(json, 'response') && - json.requestType === opType - ) { - return; - } - throw new Error( - 'Got unexpected backend response for automation agent request await' - ); -} - -type PickAwaitResponse = - AutomationAgentAwaitResponse['response']; - -/** - * Helper type that maps whatever is returned by automation agent in response - * prop as follows: - * - * empty array -> undefined - * array with one item -> unwrapped item - * array of items -> array of items - */ -export type UnwrappedAutomationAgentAwaitResponse< - OpType extends AutomationAgentAwaitOpTypes -> = PickAwaitResponse extends never[] - ? undefined - : PickAwaitResponse extends [infer UnwrappedResponse] - ? UnwrappedResponse - : PickAwaitResponse extends Array - ? PickAwaitResponse - : never; - -function unwrapAutomationAgentAwaitResponse( - json: any, - opType: 'listIndexStats' -): UnwrappedAutomationAgentAwaitResponse<'listIndexStats'>; -function unwrapAutomationAgentAwaitResponse( - json: any, - opType: 'dropIndex' -): UnwrappedAutomationAgentAwaitResponse<'dropIndex'>; -function unwrapAutomationAgentAwaitResponse(json: any, opType: string): never; -function unwrapAutomationAgentAwaitResponse( - json: any, - opType: string -): unknown { - if (opType === 'dropIndex') { - assertAutomationAgentAwaitResponse(json, opType); - // `dropIndex` returns an empty array, so returning undefined here is just a - // bit more explicit than returning `json.response[0]` instead - return undefined; - } - if (opType === 'listIndexStats') { - assertAutomationAgentAwaitResponse(json, opType); - return json.response; - } - throw new Error(`Unsupported await response type: ${opType}`); -} - -export type AutomationAgentResponse< - OpType extends AutomationAgentRequestOpTypes -> = OpType extends AutomationAgentAwaitOpTypes - ? UnwrappedAutomationAgentAwaitResponse - : undefined; - -async function makeAutomationAgentOpRequest< - OpType extends AutomationAgentRequestOpTypes ->( - fetchFn: typeof fetch, - baseUrl: string, - projectId: string, - opType: OpType, - opBody: AutomationAgentRequestTypes[OpType] -): Promise> { - const requestUrl = - baseUrl + encodeURI(`/explorer/v1/groups/${projectId}/requests/${opType}`); - // Tell automation agent to run the op first, this will return the id that we - // can use to track the job result - const requestRes = await fetchFn(requestUrl, { - method: 'POST', - headers: { - 'content-type': 'application/json', - }, - body: JSON.stringify(opBody), - }); - // Rolling index creation request doesn't return anything that we can "await" - // on (a successful response is already an acknowledgement that request to - // create an index was registered), so we just end here - if (opType === 'index') { - return undefined as AutomationAgentResponse; - } - const requestJson = await requestRes.json(); - assertAutomationAgentRequestResponse(requestJson, opType); - const awaitUrl = - baseUrl + - encodeURI( - `/explorer/v1/groups/${projectId}/requests/${requestJson._id}/types/${opType}/await` - ); - const awaitRes = await fetchFn(awaitUrl, { method: 'GET' }); - const awaitJson = await awaitRes.json(); - return unwrapAutomationAgentAwaitResponse(awaitJson, opType); -} - -export { makeAutomationAgentOpRequest }; diff --git a/packages/compass-indexes/src/modules/rolling-indexes-service.spec.ts b/packages/compass-indexes/src/modules/rolling-indexes-service.spec.ts new file mode 100644 index 00000000000..6fd94829d5f --- /dev/null +++ b/packages/compass-indexes/src/modules/rolling-indexes-service.spec.ts @@ -0,0 +1,69 @@ +import Sinon from 'sinon'; +import { RollingIndexesService } from './rolling-indexes-service'; +import { expect } from 'chai'; + +describe('RollingIndexesService', function () { + const atlasServiceStub = { + automationAgentRequest: Sinon.stub(), + automationAgentAwait: Sinon.stub(), + }; + let service: RollingIndexesService; + + beforeEach(() => { + service = new RollingIndexesService(atlasServiceStub, { + current: { + atlasMetadata: { + projectId: 'abc', + metricsType: 'cluster', + metricsId: '123', + }, + } as any, + }); + }); + + afterEach(() => { + atlasServiceStub.automationAgentRequest.reset(); + atlasServiceStub.automationAgentAwait.reset(); + }); + + describe('listRollingIndexes', function () { + it('should succeed if automation agent reutrned all responses as expected and filter only the rolling indexes', async function () { + atlasServiceStub.automationAgentRequest.resolves({ + _id: '_id', + requestType: 'requestType', + }); + atlasServiceStub.automationAgentAwait.resolves({ + response: [ + { indexName: 'abc', status: 'rolling build' }, + { indexName: 'cba', status: 'exists' }, + ], + }); + const res = await service.listRollingIndexes('db.coll'); + expect(res).to.deep.eq([{ indexName: 'abc', status: 'rolling build' }]); + }); + + it('should fail if automation agent backend returned unexpected result', async function () { + atlasServiceStub.automationAgentRequest.resolves(undefined); + + try { + await service.listRollingIndexes('db.coll'); + expect.fail('expected listRollingIndexes to throw'); + } catch (err) { + expect(err).not.to.be.null; + } + }); + }); + + describe('createRollingIndex', function () { + it('should fail if automation agent returned unexpected result', async function () { + atlasServiceStub.automationAgentRequest.resolves({ _id: '_id' }); + + try { + await service.createRollingIndex('db.coll', {}, {}); + expect.fail('expected createRollingIndex to throw'); + } catch (err) { + expect(err).not.to.be.null; + } + }); + }); +}); diff --git a/packages/compass-indexes/src/modules/rolling-indexes-service.ts b/packages/compass-indexes/src/modules/rolling-indexes-service.ts index 78e7863fcd1..df89c246bed 100644 --- a/packages/compass-indexes/src/modules/rolling-indexes-service.ts +++ b/packages/compass-indexes/src/modules/rolling-indexes-service.ts @@ -3,12 +3,26 @@ import type { ConnectionInfoRef } from '@mongodb-js/compass-connections/provider import type { CreateIndexesOptions } from 'mongodb'; import toNS from 'mongodb-ns'; +type AtlasIndexStats = { + collName: string; + dbName: string; + indexName: string; + indexProperties: { label: string; properties: Record }[]; + indexType: { label: string }; + keys: { name: string; value: string | number }; + sizeBytes: number; + status: 'rolling build' | 'building' | 'exists'; +}; + export class RollingIndexesService { constructor( - private atlasService: AtlasService, + private atlasService: Pick< + AtlasService, + 'automationAgentRequest' | 'automationAgentAwait' + >, private connectionInfo: ConnectionInfoRef ) {} - async listRollingIndexes(namespace: string) { + async listRollingIndexes(namespace: string): Promise { const { atlasMetadata } = this.connectionInfo.current; if (!atlasMetadata) { throw new Error( @@ -16,16 +30,26 @@ export class RollingIndexesService { ); } const { database: db, collection } = toNS(namespace); - const indexes = await this.atlasService.automationAgentFetch( + const req = await this.atlasService.automationAgentRequest( atlasMetadata, 'listIndexStats', { db, collection } ); - return indexes.filter((index) => { + if (!req) { + throw new Error( + 'Unexpected response from the automation agent backend: expected to get the request metadata, got undefined' + ); + } + const res = await this.atlasService.automationAgentAwait( + atlasMetadata, + req.requestType, + req._id + ); + return res.response.filter((index) => { return index.status === 'rolling build'; }); } - createRollingIndex( + async createRollingIndex( namespace: string, indexSpec: Record, { collation, ...options }: CreateIndexesOptions @@ -37,12 +61,26 @@ export class RollingIndexesService { ); } const { database: db, collection } = toNS(namespace); - return this.atlasService.automationAgentFetch(atlasMetadata, 'index', { - db, - collection, - keys: JSON.stringify(indexSpec), - options: Object.keys(options).length > 0 ? JSON.stringify(options) : '', - collationOptions: collation ? JSON.stringify(collation) : '', - }); + const res = await this.atlasService.automationAgentRequest( + atlasMetadata, + 'index', + { + db, + collection, + keys: JSON.stringify(indexSpec), + options: Object.keys(options).length > 0 ? JSON.stringify(options) : '', + collationOptions: collation ? JSON.stringify(collation) : '', + } + ); + // Creating a rolling index doesn't return an "awaitable" job from + // automation agent backend + if (res) { + throw new Error( + `Unexpected response from the server, expected undefined, but got ${JSON.stringify( + res + )}` + ); + } + return undefined; } } From 6a1457ddc0d7dc004b940b03cad4e31b4b0463d8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 07:34:03 +0000 Subject: [PATCH 10/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6308) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 4f972851018..64f7ecd0d6f 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 1, 2024 at 05:10 AM +Generated on Tue, Oct 1, 2024 at 07:33 AM ## Table of Contents From 7d5c91abeaa5d97f60748466e902d6285061e79f Mon Sep 17 00:00:00 2001 From: Le Roux Bodenstein Date: Tue, 1 Oct 2024 13:04:27 +0100 Subject: [PATCH 11/31] chore(compas-indexes): store real indexes and in-progress indexes as separate lists (#6300) * store real indexes and in-progress indexes as separate lists * fixes after reading through it * more comments * fix helper * move drop failed index to its own action creator * split index actions into two specialised components * nit * unnecessary assertions * function that asserts --- .../indexes-toolbar/indexes-toolbar.tsx | 4 +- .../src/components/indexes/indexes.spec.tsx | 38 +-- .../in-progress-index-actions.spec.tsx | 58 +++++ .../in-progress-index-actions.tsx | 55 ++++ .../index-actions.spec.tsx | 94 ------- .../property-field.spec.tsx | 10 +- .../regular-indexes-table/property-field.tsx | 62 +++-- .../regular-index-actions.spec.tsx | 119 +++++++++ ...-actions.tsx => regular-index-actions.tsx} | 26 +- .../regular-indexes-table.spec.tsx | 152 +++++++++-- .../regular-indexes-table.tsx | 245 ++++++++++++++---- .../regular-indexes-table/type-field.tsx | 11 +- .../index.spec.tsx | 2 +- .../search-indexes-table.spec.tsx | 10 +- .../search-indexes-table.tsx | 29 ++- .../src/modules/regular-indexes.spec.ts | 126 ++------- .../src/modules/regular-indexes.ts | 151 ++++------- .../src/utils/index-link-helper.ts | 2 +- .../test/fixtures/regular-indexes.ts | 25 +- packages/compass-indexes/test/helpers.ts | 3 + .../data-service/src/index-detail-helper.ts | 2 +- 21 files changed, 734 insertions(+), 490 deletions(-) create mode 100644 packages/compass-indexes/src/components/regular-indexes-table/in-progress-index-actions.spec.tsx create mode 100644 packages/compass-indexes/src/components/regular-indexes-table/in-progress-index-actions.tsx delete mode 100644 packages/compass-indexes/src/components/regular-indexes-table/index-actions.spec.tsx create mode 100644 packages/compass-indexes/src/components/regular-indexes-table/regular-index-actions.spec.tsx rename packages/compass-indexes/src/components/regular-indexes-table/{index-actions.tsx => regular-index-actions.tsx} (87%) diff --git a/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.tsx b/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.tsx index 2b8632dc57f..c9287df0b04 100644 --- a/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.tsx +++ b/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.tsx @@ -189,7 +189,9 @@ export const IndexesToolbar: React.FunctionComponent = ({ warnings={['Readonly views may not contain indexes.']} /> ) : ( - !!errorMessage && + !!errorMessage && ( + + ) )}
); diff --git a/packages/compass-indexes/src/components/indexes/indexes.spec.tsx b/packages/compass-indexes/src/components/indexes/indexes.spec.tsx index d1ec4a6b5eb..4706d23a155 100644 --- a/packages/compass-indexes/src/components/indexes/indexes.spec.tsx +++ b/packages/compass-indexes/src/components/indexes/indexes.spec.tsx @@ -95,7 +95,9 @@ describe('Indexes Component', function () { }, }); expect(screen.getByTestId('indexes-toolbar')).to.exist; - // TODO: actually check for the error + expect(screen.getByTestId('indexes-error').textContent).to.equal( + 'Some random error' + ); }); it('renders indexes toolbar when there is a search indexes error', async function () { @@ -200,28 +202,20 @@ describe('Indexes Component', function () { ], usageCount: 20, }, + ], + inProgressIndexes: [ { - key: {}, - ns: 'db.coll', - cardinality: 'single', + id: 'test-inprogress-index', name: 'item', - size: 0, - relativeSize: 0, - type: 'hashed', - extra: { - status: 'inprogress', - }, - properties: [], fields: [ { field: 'item', value: 1, }, ], - usageCount: 0, + status: 'inprogress', }, ], - inProgressIndexes: [], error: undefined, status: 'READY', }, @@ -263,29 +257,21 @@ describe('Indexes Component', function () { ], usageCount: 20, }, + ], + inProgressIndexes: [ { - key: {}, - ns: 'db.coll', - cardinality: 'single', + id: 'test-inprogress-index', name: 'item', - size: 0, - relativeSize: 0, - type: 'hashed', - extra: { - status: 'failed', - regularError: 'regularError message', - }, - properties: [], fields: [ { field: 'item', value: 1, }, ], - usageCount: 0, + status: 'failed', + error: 'Error message', }, ], - inProgressIndexes: [], error: undefined, status: 'READY', }, diff --git a/packages/compass-indexes/src/components/regular-indexes-table/in-progress-index-actions.spec.tsx b/packages/compass-indexes/src/components/regular-indexes-table/in-progress-index-actions.spec.tsx new file mode 100644 index 00000000000..a9641c189de --- /dev/null +++ b/packages/compass-indexes/src/components/regular-indexes-table/in-progress-index-actions.spec.tsx @@ -0,0 +1,58 @@ +import React from 'react'; +import { + cleanup, + render, + screen, + userEvent, +} from '@mongodb-js/testing-library-compass'; +import { expect } from 'chai'; +import { spy } from 'sinon'; +import type { SinonSpy } from 'sinon'; + +import InProgressIndexActions from './in-progress-index-actions'; + +describe('IndexActions Component', function () { + let onDeleteSpy: SinonSpy; + + before(cleanup); + afterEach(cleanup); + beforeEach(function () { + onDeleteSpy = spy(); + }); + + it('does not render the delete button for an in progress index that is still in progress', function () { + render( + + ); + + const button = screen.queryByTestId('index-actions-delete-action'); + expect(button).to.not.exist; + }); + + it('renders delete button for an in progress index that has failed', function () { + render( + + ); + + const button = screen.getByTestId('index-actions-delete-action'); + expect(button).to.exist; + expect(button.getAttribute('aria-label')).to.equal( + 'Drop Index artist_id_index' + ); + expect(onDeleteSpy.callCount).to.equal(0); + userEvent.click(button); + expect(onDeleteSpy.callCount).to.equal(1); + }); +}); diff --git a/packages/compass-indexes/src/components/regular-indexes-table/in-progress-index-actions.tsx b/packages/compass-indexes/src/components/regular-indexes-table/in-progress-index-actions.tsx new file mode 100644 index 00000000000..1596a1e541c --- /dev/null +++ b/packages/compass-indexes/src/components/regular-indexes-table/in-progress-index-actions.tsx @@ -0,0 +1,55 @@ +import React, { useCallback, useMemo } from 'react'; +import type { GroupedItemAction } from '@mongodb-js/compass-components'; +import { ItemActionGroup } from '@mongodb-js/compass-components'; +import type { InProgressIndex } from '../../modules/regular-indexes'; + +type Index = { + name: string; + status: InProgressIndex['status']; +}; + +type IndexActionsProps = { + index: Index; + onDeleteFailedIndexClick: (name: string) => void; +}; + +type IndexAction = 'delete'; + +const IndexActions: React.FunctionComponent = ({ + index, + onDeleteFailedIndexClick, +}) => { + const indexActions: GroupedItemAction[] = useMemo(() => { + const actions: GroupedItemAction[] = []; + + // you can only drop regular indexes or failed inprogress indexes + if (index.status === 'failed') { + actions.push({ + action: 'delete', + label: `Drop Index ${index.name}`, + icon: 'Trash', + }); + } + + return actions; + }, [index]); + + const onAction = useCallback( + (action: IndexAction) => { + if (action === 'delete') { + onDeleteFailedIndexClick(index.name); + } + }, + [onDeleteFailedIndexClick, index] + ); + + return ( + + data-testid="index-actions" + actions={indexActions} + onAction={onAction} + > + ); +}; + +export default IndexActions; diff --git a/packages/compass-indexes/src/components/regular-indexes-table/index-actions.spec.tsx b/packages/compass-indexes/src/components/regular-indexes-table/index-actions.spec.tsx deleted file mode 100644 index 12c9dd55a8c..00000000000 --- a/packages/compass-indexes/src/components/regular-indexes-table/index-actions.spec.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import React from 'react'; -import { - cleanup, - render, - screen, - userEvent, -} from '@mongodb-js/testing-library-compass'; -import { expect } from 'chai'; -import { spy } from 'sinon'; -import type { SinonSpy } from 'sinon'; - -import IndexActions from './index-actions'; - -describe('IndexActions Component', function () { - let onDeleteSpy: SinonSpy; - let onHideIndexSpy: SinonSpy; - let onUnhideIndexSpy: SinonSpy; - - before(cleanup); - afterEach(cleanup); - beforeEach(function () { - onDeleteSpy = spy(); - onHideIndexSpy = spy(); - onUnhideIndexSpy = spy(); - render( - - ); - }); - - it('renders delete button', function () { - const button = screen.getByTestId('index-actions-delete-action'); - expect(button).to.exist; - expect(button.getAttribute('aria-label')).to.equal( - 'Drop Index artist_id_index' - ); - expect(onDeleteSpy.callCount).to.equal(0); - userEvent.click(button); - expect(onDeleteSpy.callCount).to.equal(1); - }); - - context('when server version is >= 4.4.0', function () { - it('renders hide index button when index is not hidden', function () { - const button = screen.getByTestId('index-actions-hide-action'); - expect(button).to.exist; - expect(button.getAttribute('aria-label')).to.equal( - 'Hide Index artist_id_index' - ); - expect(onHideIndexSpy.callCount).to.equal(0); - userEvent.click(button); - expect(onHideIndexSpy.callCount).to.equal(1); - }); - - it('renders unhide index button when index is hidden', function () { - render( - - ); - const button = screen.getByTestId('index-actions-unhide-action'); - expect(button).to.exist; - expect(button.getAttribute('aria-label')).to.equal( - 'Unhide Index artist_id_index' - ); - expect(onUnhideIndexSpy.callCount).to.equal(0); - userEvent.click(button); - expect(onUnhideIndexSpy.callCount).to.equal(1); - }); - }); - - context('when server version is < 4.4.0', function () { - it('will not render hide index button', function () { - render( - - ); - expect(() => screen.getByTestId('index-actions-hide-action')).to.throw; - }); - }); -}); diff --git a/packages/compass-indexes/src/components/regular-indexes-table/property-field.spec.tsx b/packages/compass-indexes/src/components/regular-indexes-table/property-field.spec.tsx index 4bd91314221..a5fc8596218 100644 --- a/packages/compass-indexes/src/components/regular-indexes-table/property-field.spec.tsx +++ b/packages/compass-indexes/src/components/regular-indexes-table/property-field.spec.tsx @@ -9,6 +9,7 @@ import { expect } from 'chai'; import PropertyField, { getPropertyTooltip } from './property-field'; import getIndexHelpLink from '../../utils/index-link-helper'; +import type { HELP_URL_KEY } from '../../utils/index-link-helper'; describe('PropertyField', function () { before(cleanup); @@ -26,7 +27,8 @@ describe('PropertyField', function () { /> ); - ['ttl', 'partial'].forEach((type) => { + const helpFields = ['ttl', 'partial']; + for (const type of helpFields) { const badge = screen.getByTestId(`${type}-badge`); expect(badge).to.exist; expect(badge.textContent).to.equal(type); @@ -35,9 +37,9 @@ describe('PropertyField', function () { }); expect(infoIcon).to.exist; expect(infoIcon.closest('a')?.href).to.equal( - getIndexHelpLink(type.toUpperCase() as any) + getIndexHelpLink(type.toUpperCase() as HELP_URL_KEY) ); - }); + } }); it('does not render cardinality badge when its single', function () { @@ -69,7 +71,7 @@ describe('PropertyField', function () { render( ); diff --git a/packages/compass-indexes/src/components/regular-indexes-table/property-field.tsx b/packages/compass-indexes/src/components/regular-indexes-table/property-field.tsx index fe29fa9197c..2c09340139e 100644 --- a/packages/compass-indexes/src/components/regular-indexes-table/property-field.tsx +++ b/packages/compass-indexes/src/components/regular-indexes-table/property-field.tsx @@ -10,7 +10,10 @@ import { BadgeVariant, useDarkMode, } from '@mongodb-js/compass-components'; -import type { RegularIndex } from '../../modules/regular-indexes'; +import type { + InProgressIndex, + RegularIndex, +} from '../../modules/regular-indexes'; import BadgeWithIconLink from '../indexes-table/badge-with-icon-link'; const containerStyles = css({ @@ -24,19 +27,23 @@ const partialTooltip = (partialFilterExpression: unknown) => { return `partialFilterExpression: ${JSON.stringify(partialFilterExpression)}`; }; -const ttlTooltip = (expireAfterSeconds: number) => { +const ttlTooltip = (expireAfterSeconds: string) => { return `expireAfterSeconds: ${expireAfterSeconds}`; }; export const getPropertyTooltip = ( - property: string | undefined, + property: string, extra: RegularIndex['extra'] ): string | null => { - return property === 'ttl' - ? ttlTooltip(extra.expireAfterSeconds as number) - : property === 'partial' - ? partialTooltip(extra.partialFilterExpression) - : null; + if (property === 'ttl' && extra.expireAfterSeconds !== undefined) { + return ttlTooltip(extra.expireAfterSeconds as unknown as string); + } + + if (property === 'partial' && extra.partialFilterExpression !== undefined) { + return partialTooltip(extra.partialFilterExpression); + } + + return null; }; const PropertyBadgeWithTooltip: React.FunctionComponent<{ @@ -70,52 +77,59 @@ const ErrorBadgeWithTooltip: React.FunctionComponent<{ }; type PropertyFieldProps = { - extra: RegularIndex['extra']; + cardinality?: RegularIndex['cardinality']; + extra?: RegularIndex['extra']; properties: RegularIndex['properties']; - cardinality: RegularIndex['cardinality']; + + // TODO(COMPASS-8329): these belong in their own column + status?: InProgressIndex['status']; + error?: InProgressIndex['error']; }; const HIDDEN_INDEX_TEXT = 'HIDDEN'; const PropertyField: React.FunctionComponent = ({ + status, extra, properties, cardinality, + error, }) => { const darkMode = useDarkMode(); return (
- {properties?.map((property) => { - return ( - - ); - })} + {extra && + properties?.map((property) => { + return ( + + ); + })} {cardinality === 'compound' && ( )} - {extra.hidden && ( + {extra?.hidden && ( )} - {extra.status === 'inprogress' && ( + {status === 'inprogress' && ( In Progress ... )} - {extra.status === 'failed' && ( + {status === 'failed' && ( )} diff --git a/packages/compass-indexes/src/components/regular-indexes-table/regular-index-actions.spec.tsx b/packages/compass-indexes/src/components/regular-indexes-table/regular-index-actions.spec.tsx new file mode 100644 index 00000000000..f0606d5affa --- /dev/null +++ b/packages/compass-indexes/src/components/regular-indexes-table/regular-index-actions.spec.tsx @@ -0,0 +1,119 @@ +import React from 'react'; +import { + cleanup, + render, + screen, + userEvent, +} from '@mongodb-js/testing-library-compass'; +import { expect } from 'chai'; +import { spy } from 'sinon'; +import type { SinonSpy } from 'sinon'; + +import RegularIndexActions from './regular-index-actions'; + +describe('IndexActions Component', function () { + let onDeleteSpy: SinonSpy; + let onHideIndexSpy: SinonSpy; + let onUnhideIndexSpy: SinonSpy; + + before(cleanup); + afterEach(cleanup); + beforeEach(function () { + onDeleteSpy = spy(); + onHideIndexSpy = spy(); + onUnhideIndexSpy = spy(); + }); + + it('renders delete button for a regular index', function () { + render( + + ); + + const button = screen.getByTestId('index-actions-delete-action'); + expect(button).to.exist; + expect(button.getAttribute('aria-label')).to.equal( + 'Drop Index artist_id_index' + ); + expect(onDeleteSpy.callCount).to.equal(0); + userEvent.click(button); + expect(onDeleteSpy.callCount).to.equal(1); + }); + + context( + 'when server version is >= 4.4.0 and the index is a regular index', + function () { + it('renders hide index button when index is not hidden', function () { + render( + + ); + + const button = screen.getByTestId('index-actions-hide-action'); + expect(button).to.exist; + expect(button.getAttribute('aria-label')).to.equal( + 'Hide Index artist_id_index' + ); + expect(onHideIndexSpy.callCount).to.equal(0); + userEvent.click(button); + expect(onHideIndexSpy.callCount).to.equal(1); + }); + + it('renders unhide index button when index is hidden', function () { + render( + + ); + const button = screen.getByTestId('index-actions-unhide-action'); + expect(button).to.exist; + expect(button.getAttribute('aria-label')).to.equal( + 'Unhide Index artist_id_index' + ); + expect(onUnhideIndexSpy.callCount).to.equal(0); + userEvent.click(button); + expect(onUnhideIndexSpy.callCount).to.equal(1); + }); + } + ); + + context( + 'when server version is < 4.4.0 and the index is a regular index', + function () { + it('will not render hide index button', function () { + render( + + ); + expect(() => screen.getByTestId('index-actions-hide-action')).to.throw; + }); + } + ); +}); diff --git a/packages/compass-indexes/src/components/regular-indexes-table/index-actions.tsx b/packages/compass-indexes/src/components/regular-indexes-table/regular-index-actions.tsx similarity index 87% rename from packages/compass-indexes/src/components/regular-indexes-table/index-actions.tsx rename to packages/compass-indexes/src/components/regular-indexes-table/regular-index-actions.tsx index 93c73a7daa9..7de14ee4c59 100644 --- a/packages/compass-indexes/src/components/regular-indexes-table/index-actions.tsx +++ b/packages/compass-indexes/src/components/regular-indexes-table/regular-index-actions.tsx @@ -2,10 +2,16 @@ import semver from 'semver'; import React, { useCallback, useMemo } from 'react'; import type { GroupedItemAction } from '@mongodb-js/compass-components'; import { ItemActionGroup } from '@mongodb-js/compass-components'; -import type { RegularIndex } from '../../modules/regular-indexes'; + +type Index = { + name: string; + extra?: { + hidden?: boolean; + }; +}; type IndexActionsProps = { - index: RegularIndex; + index: Index; serverVersion: string; onDeleteIndexClick: (name: string) => void; onHideIndexClick: (name: string) => void; @@ -32,16 +38,10 @@ const IndexActions: React.FunctionComponent = ({ onUnhideIndexClick, }) => { const indexActions: GroupedItemAction[] = useMemo(() => { - const actions: GroupedItemAction[] = [ - { - action: 'delete', - label: `Drop Index ${index.name}`, - icon: 'Trash', - }, - ]; + const actions: GroupedItemAction[] = []; if (serverSupportsHideIndex(serverVersion)) { - actions.unshift( + actions.push( index.extra?.hidden ? { action: 'unhide', @@ -58,6 +58,12 @@ const IndexActions: React.FunctionComponent = ({ ); } + actions.push({ + action: 'delete', + label: `Drop Index ${index.name}`, + icon: 'Trash', + }); + return actions; }, [index, serverVersion]); diff --git a/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.spec.tsx b/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.spec.tsx index 4164b1e9e9a..48210c2ac1b 100644 --- a/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.spec.tsx +++ b/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.spec.tsx @@ -9,10 +9,13 @@ import { import { expect } from 'chai'; import { RegularIndexesTable } from './regular-indexes-table'; -import type { RegularIndex } from '../../modules/regular-indexes'; +import type { + RegularIndex, + InProgressIndex, +} from '../../modules/regular-indexes'; import { mockRegularIndex } from '../../../test/helpers'; -const indexes = [ +const indexes: RegularIndex[] = [ { ns: 'db.coll', cardinality: 'single', @@ -97,7 +100,37 @@ const indexes = [ ], usageCount: 25, }, -] as RegularIndex[]; +]; + +const inProgressIndexes: InProgressIndex[] = [ + { + id: 'in-progress-1', + name: 'AAAA', + fields: [ + { + field: 'a', + value: 1, + }, + { + field: 'b', + value: -1, + }, + ], + status: 'inprogress', + }, + { + id: 'in-progress-2', + name: 'z', + fields: [ + { + field: 'z', + value: 'text', + }, + ], + status: 'inprogress', + error: 'this is an error', + }, +]; const renderIndexList = ( props: Partial> = {} @@ -105,12 +138,14 @@ const renderIndexList = ( return render( {}} onUnhideIndexClick={() => {}} onDeleteIndexClick={() => {}} + onDeleteFailedIndexClick={() => {}} onRegularIndexesOpened={() => {}} onRegularIndexesClosed={() => {}} {...props} @@ -118,40 +153,113 @@ const renderIndexList = ( ); }; +const indexFields = [ + 'indexes-name-field', + 'indexes-type-field', + 'indexes-size-field', + 'indexes-usageCount-field', + 'indexes-properties-field', + 'indexes-actions-field', +]; + describe('RegularIndexesTable Component', function () { before(cleanup); afterEach(cleanup); - it('renders indexes list', function () { + it('renders regular indexes', function () { renderIndexList({ isWritable: true, readOnly: false, indexes: indexes }); const indexesList = screen.getByTestId('indexes-list'); expect(indexesList).to.exist; // Renders indexes list (table rows) - indexes.forEach((index) => { - const indexRow = screen.getByText(index.name).closest('tr')!; + for (const index of indexes) { + const indexRow = screen.getByTestId(`indexes-row-${index.name}`); expect(indexRow, 'it renders each index in a row').to.exist; // Renders index fields (table cells) - [ - 'indexes-name-field', - 'indexes-type-field', - 'indexes-size-field', - 'indexes-usage-field', - 'indexes-properties-field', - 'indexes-actions-field', - ].forEach((indexCell) => { - // For _id index we always hide drop index field - if (index.name !== '_id_' && indexCell !== 'indexes-actions-field') { + for (const indexCell of indexFields) { + let mustExist = true; + + // For _id index we always hide hide/drop index field buttons + if (index.name === '_id_' && indexCell === 'indexes-actions-field') { + mustExist = false; + } + + if (mustExist) { expect(within(indexRow).getByTestId(indexCell)).to.exist; } else { expect(() => { within(indexRow).getByTestId(indexCell); }).to.throw; } - }); + } + + if (index.name === '_id_') { + expect(() => { + within(indexRow).getByTestId('index-actions-hide-action'); + }).to.throw; + expect(() => { + within(indexRow).getByTestId('index-actions-delete-action'); + }).to.throw; + } else { + if (index.extra.hidden) { + expect(() => + within(indexRow).getByTestId('index-actions-hide-action') + ).to.throw; + expect(within(indexRow).getByTestId('index-actions-unhide-action')).to + .exist; + } else { + expect(within(indexRow).getByTestId('index-actions-hide-action')).to + .exist; + expect(() => + within(indexRow).getByTestId('index-actions-unhide-action') + ).to.throw; + } + expect(within(indexRow).getByTestId('index-actions-delete-action')).to + .exist; + } + + userEvent.click(within(indexRow).getByLabelText('Expand row')); + const detailsRow = indexRow.nextSibling as HTMLTableRowElement; + expect(detailsRow).to.exist; + + const details = within(detailsRow).getByTestId( + `indexes-details-${index.name}` + ); + expect(details).to.exist; + + for (const field of index.fields) { + expect(within(details).getByTestId(`${field.field}-key`)); + } + } + }); + + it('renders in-progress indexes', function () { + renderIndexList({ + isWritable: true, + readOnly: false, + inProgressIndexes: inProgressIndexes, }); + + for (const index of inProgressIndexes) { + const indexRow = screen.getByTestId(`indexes-row-${index.name}`); + + for (const indexCell of indexFields) { + expect(within(indexRow).getByTestId(indexCell)).to.exist; + } + + expect(() => within(indexRow).getByTestId('index-actions-hide-action')).to + .throw; + if (index.status === 'inprogress') { + expect(() => + within(indexRow).getByTestId('index-actions-delete-action') + ).to.throw; + } else { + expect(within(indexRow).getByTestId('index-actions-delete-action')).to + .exist; + } + } }); it('does not render the list if there is an error', function () { @@ -172,7 +280,7 @@ describe('RegularIndexesTable Component', function () { const indexesList = screen.getByTestId('indexes-list'); expect(indexesList).to.exist; indexes.forEach((index) => { - const indexRow = screen.getByText(index.name).closest('tr')!; + const indexRow = screen.getByTestId(`indexes-row-${index.name}`); expect(within(indexRow).getByTestId('indexes-actions-field')).to.exist; }); }); @@ -182,9 +290,9 @@ describe('RegularIndexesTable Component', function () { const indexesList = screen.getByTestId('indexes-list'); expect(indexesList).to.exist; indexes.forEach((index) => { - const indexRow = screen.getByText(index.name).closest('tr')!; + const indexRow = screen.getByTestId(`indexes-row-${index.name}`); expect(() => { - within(indexRow).getByTestId('indexes-actions-field'); + within(indexRow).queryByTestId('indexes-actions-field'); }).to.throw; }); }); @@ -194,7 +302,7 @@ describe('RegularIndexesTable Component', function () { const indexesList = screen.getByTestId('indexes-list'); expect(indexesList).to.exist; indexes.forEach((index) => { - const indexRow = screen.getByText(index.name).closest('tr')!; + const indexRow = screen.getByTestId(`indexes-row-${index.name}`); expect(() => { within(indexRow).getByTestId('indexes-actions-field'); }).to.throw; @@ -204,7 +312,7 @@ describe('RegularIndexesTable Component', function () { describe('sorting', function () { function getIndexNames() { return screen.getAllByTestId('indexes-name-field').map((el) => { - return el.textContent!.trim(); + return (el.textContent as string).trim(); }); } diff --git a/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.tsx b/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.tsx index 4325f27c3ad..c30158e6fa4 100644 --- a/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.tsx +++ b/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.tsx @@ -15,26 +15,33 @@ import TypeField from './type-field'; import SizeField from './size-field'; import UsageField from './usage-field'; import PropertyField from './property-field'; -import IndexActions from './index-actions'; +import RegularIndexActions from './regular-index-actions'; +import InProgressIndexActions from './in-progress-index-actions'; import { IndexesTable } from '../indexes-table'; import { dropIndex, + dropFailedIndex, hideIndex, unhideIndex, startPollingRegularIndexes, stopPollingRegularIndexes, } from '../../modules/regular-indexes'; -import { type RegularIndex } from '../../modules/regular-indexes'; +import type { + RegularIndex, + InProgressIndex, +} from '../../modules/regular-indexes'; type RegularIndexesTableProps = { indexes: RegularIndex[]; + inProgressIndexes: InProgressIndex[]; serverVersion: string; isWritable?: boolean; onHideIndexClick: (name: string) => void; onUnhideIndexClick: (name: string) => void; onDeleteIndexClick: (name: string) => void; + onDeleteFailedIndexClick: (name: string) => void; readOnly?: boolean; error?: string | null; onRegularIndexesOpened: (tabId: string) => void; @@ -44,20 +51,30 @@ type RegularIndexesTableProps = { type IndexInfo = { id: string; name: string; - indexInfo: RegularIndex; + indexInfo: MergedIndex; type: React.ReactNode; size: React.ReactNode; - usage: React.ReactNode; + usageCount: React.ReactNode; properties: React.ReactNode; actions: undefined | React.ReactNode; renderExpandedContent: React.ReactNode; }; -function sortByProperties(a: RegularIndex, b: RegularIndex) { - const aValue = - a.cardinality === 'compound' ? 'compound' : a.properties?.[0] || ''; - const bValue = - b.cardinality === 'compound' ? 'compound' : b.properties?.[0] || ''; +function mergedIndexPropertyValue(index: MergedIndex): string { + // TODO(COMPASS-8335): right now only regular indexes have properties & + // cardinality + if (index.compassIndexType !== 'regular-index') { + return ''; + } + + return index.cardinality === 'compound' + ? 'compound' + : index.properties?.[0] || ''; +} + +function sortByProperties(a: MergedIndex, b: MergedIndex) { + const aValue = mergedIndexPropertyValue(a); + const bValue = mergedIndexPropertyValue(b); if (aValue > bValue) { return -1; } @@ -67,11 +84,41 @@ function sortByProperties(a: RegularIndex, b: RegularIndex) { return 0; } +type SortableField = 'name' | 'type' | 'size' | 'usageCount'; + +function mergedIndexFieldValue( + index: MergedIndex, + field: SortableField +): string | number | undefined { + if (index.compassIndexType === 'in-progress-index') { + if (field === 'type') { + // TODO(COMPASS-8335): type should be supported by in-progress-index + return 'unknown'; + } + if (field === 'size' || field === 'usageCount') { + return 0; + } + return index[field]; + } + + return index[field]; +} + +function isSupportedSortField( + field: string +): field is 'name' | 'type' | 'size' | 'usageCount' | 'properties' { + return ['name', 'type', 'size', 'usageCount', 'properties'].includes(field); +} + function sortFn( rowA: LeafyGreenTableRow, rowB: LeafyGreenTableRow, field: string ) { + if (!isSupportedSortField(field)) { + return 0; + } + if (field === 'properties') { const propSort = sortByProperties( rowA.original.indexInfo, @@ -80,12 +127,12 @@ function sortFn( return propSort; } - if (field === 'usage') { - field = 'usageCount'; - } + const fieldA = mergedIndexFieldValue(rowA.original.indexInfo, field); + const fieldB = mergedIndexFieldValue(rowB.original.indexInfo, field); - const fieldA = rowA.original.indexInfo[field as keyof RegularIndex]!; - const fieldB = rowB.original.indexInfo[field as keyof RegularIndex]!; + if (fieldA === undefined || fieldB === undefined) { + return 0; + } if (fieldA > fieldB) return -1; if (fieldB > fieldA) return 1; @@ -113,7 +160,7 @@ const COLUMNS: LGColumnDef[] = [ sortingFn: sortFn, }, { - accessorKey: 'usage', + accessorKey: 'usageCount', header: 'Usage', cell: (info) => info.getValue(), sortingFn: sortFn, @@ -140,16 +187,117 @@ const COLUMNS_WITH_ACTIONS: LGColumnDef[] = [ }, ]; +// compassIndexType because type is taken by RegularIndex. indexType is taken by AtlasIndexStats. +type MappedRegularIndex = RegularIndex & { compassIndexType: 'regular-index' }; +type MappedInProgressIndex = InProgressIndex & { + compassIndexType: 'in-progress-index'; +}; + +type MergedIndex = MappedRegularIndex | MappedInProgressIndex; + +function mergeIndexes( + indexes: RegularIndex[], + inProgressIndexes: InProgressIndex[] +): MergedIndex[] { + const mappedIndexes: MappedRegularIndex[] = indexes.map((index) => { + return { ...index, compassIndexType: 'regular-index' }; + }); + + const mappedInProgressIndexes: MappedInProgressIndex[] = + inProgressIndexes.map((index) => { + return { ...index, compassIndexType: 'in-progress-index' }; + }); + + return [...mappedIndexes, ...mappedInProgressIndexes]; +} + +type CommonIndexInfo = Omit; + +function getInProgressIndexInfo( + index: MappedInProgressIndex, + { + onDeleteFailedIndexClick, + }: { + onDeleteFailedIndexClick: (indexName: string) => void; + } +): CommonIndexInfo { + return { + id: index.id, + name: index.name, + indexInfo: index, + type: , + size: , + usageCount: , + properties: ( + + ), + actions: ( + + ), + }; +} + +function getRegularIndexInfo( + index: MappedRegularIndex, + { + serverVersion, + onHideIndexClick, + onUnhideIndexClick, + onDeleteIndexClick, + }: { + serverVersion: string; + onHideIndexClick: (indexName: string) => void; + onUnhideIndexClick: (indexName: string) => void; + onDeleteIndexClick: (indexName: string) => void; + } +): CommonIndexInfo { + return { + id: index.name, + name: index.name, + indexInfo: index, + type: , + size: , + usageCount: ( + + ), + properties: ( + + ), + actions: index.name !== '_id_' && ( + + ), + }; +} + export const RegularIndexesTable: React.FunctionComponent< RegularIndexesTableProps > = ({ isWritable, readOnly, indexes, + inProgressIndexes, serverVersion, onHideIndexClick, onUnhideIndexClick, onDeleteIndexClick, + onDeleteFailedIndexClick, onRegularIndexesOpened, onRegularIndexesClosed, error, @@ -163,44 +311,41 @@ export const RegularIndexesTable: React.FunctionComponent< }; }, [tabId, onRegularIndexesOpened, onRegularIndexesClosed]); + const allIndexes: MergedIndex[] = mergeIndexes(indexes, inProgressIndexes); + const data = useMemo[]>( () => - indexes.map((index) => ({ - id: index.name, - name: index.name, - indexInfo: index, - type: , - size: , - usage: , - properties: ( - - ), - actions: index.name !== '_id_' && - index.extra.status !== 'inprogress' && ( - - ), - - // eslint-disable-next-line react/display-name - renderExpandedContent: () => ( - - ), - })), + allIndexes.map((index) => { + let indexData: CommonIndexInfo; + if (index.compassIndexType === 'in-progress-index') { + indexData = getInProgressIndexInfo(index, { + onDeleteFailedIndexClick, + }); + } else { + indexData = getRegularIndexInfo(index, { + serverVersion, + onDeleteIndexClick, + onHideIndexClick, + onUnhideIndexClick, + }); + } + + return { + ...indexData, + renderExpandedContent() { + return ( + + ); + }, + }; + }), [ - indexes, + allIndexes, onDeleteIndexClick, + onDeleteFailedIndexClick, onHideIndexClick, onUnhideIndexClick, serverVersion, @@ -233,11 +378,13 @@ const mapState = ({ isWritable, serverVersion, indexes: regularIndexes.indexes, + inProgressIndexes: regularIndexes.inProgressIndexes, error: regularIndexes.error, }); const mapDispatch = { onDeleteIndexClick: dropIndex, + onDeleteFailedIndexClick: dropFailedIndex, onHideIndexClick: hideIndex, onUnhideIndexClick: unhideIndex, onRegularIndexesOpened: startPollingRegularIndexes, diff --git a/packages/compass-indexes/src/components/regular-indexes-table/type-field.tsx b/packages/compass-indexes/src/components/regular-indexes-table/type-field.tsx index 851aa92e7d5..b8fd4b81c89 100644 --- a/packages/compass-indexes/src/components/regular-indexes-table/type-field.tsx +++ b/packages/compass-indexes/src/components/regular-indexes-table/type-field.tsx @@ -5,13 +5,16 @@ import { Tooltip, Body } from '@mongodb-js/compass-components'; import type { RegularIndex } from '../../modules/regular-indexes'; import BadgeWithIconLink from '../indexes-table/badge-with-icon-link'; -export const canRenderTooltip = (type: RegularIndex['type']) => { +export const canRenderTooltip = (type: string) => { return ['text', 'wildcard', 'columnstore'].indexOf(type ?? '') !== -1; }; type TypeFieldProps = { - type: RegularIndex['type']; - extra: RegularIndex['extra']; + // TODO(COMPASS-8335): we can remove unknown once we support type on + // in-progress indexes + type: RegularIndex['type'] | 'unknown'; + // in-progress and rolling indexes don't have extra + extra?: RegularIndex['extra']; }; export const IndexTypeTooltip: React.FunctionComponent<{ @@ -45,7 +48,7 @@ const TypeField: React.FunctionComponent = ({ } > - + {extra && } ); }; diff --git a/packages/compass-indexes/src/components/search-index-template-dropdown/index.spec.tsx b/packages/compass-indexes/src/components/search-index-template-dropdown/index.spec.tsx index f398cae55ec..c0498256616 100644 --- a/packages/compass-indexes/src/components/search-index-template-dropdown/index.spec.tsx +++ b/packages/compass-indexes/src/components/search-index-template-dropdown/index.spec.tsx @@ -39,7 +39,7 @@ describe('Search Index Template Dropdown', function () { it('notifies upwards with onTemplate when a new template is chosen', async function () { const dropDown = screen .getByText('Dynamic field mappings') - .closest('button')!; + .closest('button') as HTMLButtonElement; userEvent.click(dropDown); diff --git a/packages/compass-indexes/src/components/search-indexes-table/search-indexes-table.spec.tsx b/packages/compass-indexes/src/components/search-indexes-table/search-indexes-table.spec.tsx index ebfd350b258..86cf6bcce31 100644 --- a/packages/compass-indexes/src/components/search-indexes-table/search-indexes-table.spec.tsx +++ b/packages/compass-indexes/src/components/search-indexes-table/search-indexes-table.spec.tsx @@ -52,7 +52,9 @@ describe('SearchIndexesTable Component', function () { // Renders indexes list (table rows) for (const index of indexes) { - const indexRow = screen.getByText(index.name).closest('tr')!; + const indexRow = screen + .getByText(index.name) + .closest('tr') as HTMLTableRowElement; expect(indexRow, 'it renders each index in a row').to.exist; // Renders index fields (table cells) @@ -160,7 +162,9 @@ describe('SearchIndexesTable Component', function () { indexes: vectorSearchIndexes, }); - const indexRow = screen.getByText('vectorSearching123').closest('tr')!; + const indexRow = screen + .getByText('vectorSearching123') + .closest('tr') as HTMLTableRowElement; const expandButton = within(indexRow).getByLabelText('Expand row'); expect(expandButton).to.exist; @@ -180,7 +184,7 @@ describe('SearchIndexesTable Component', function () { describe('sorting', function () { function getIndexNames() { return screen.getAllByTestId('search-indexes-name-field').map((el) => { - return el.textContent!.trim(); + return (el.textContent as string).trim(); }); } diff --git a/packages/compass-indexes/src/components/search-indexes-table/search-indexes-table.tsx b/packages/compass-indexes/src/components/search-indexes-table/search-indexes-table.tsx index 6285951d677..ef369e8f207 100644 --- a/packages/compass-indexes/src/components/search-indexes-table/search-indexes-table.tsx +++ b/packages/compass-indexes/src/components/search-indexes-table/search-indexes-table.tsx @@ -342,19 +342,22 @@ export const SearchIndexesTable: React.FunctionComponent< }} /> ), - // eslint-disable-next-line react/display-name - renderExpandedContent: () => ( -
- {isVectorSearchIndex ? ( - - ) : ( - - )} -
- ), + renderExpandedContent() { + return ( +
+ {isVectorSearchIndex ? ( + + ) : ( + + )} +
+ ); + }, }; }), [ diff --git a/packages/compass-indexes/src/modules/regular-indexes.spec.ts b/packages/compass-indexes/src/modules/regular-indexes.spec.ts index c138e14b411..6fa4cec9632 100644 --- a/packages/compass-indexes/src/modules/regular-indexes.spec.ts +++ b/packages/compass-indexes/src/modules/regular-indexes.spec.ts @@ -4,6 +4,7 @@ import { refreshRegularIndexes, pollRegularIndexes, dropIndex, + dropFailedIndex, hideIndex, unhideIndex, startPollingRegularIndexes, @@ -127,81 +128,6 @@ describe('regular-indexes module', function () { expect(state.status).to.equal('READY'); }); - it('merges with in progress indexes', async function () { - const store = await setupStoreAndWait( - {}, - { - indexes: () => Promise.resolve(indexesList), - } - ); - - Object.assign(store.getState(), { - regularIndexes: { - ...store.getState().regularIndexes, - inProgressIndexes: inProgressIndexes.slice(), - }, - }); - - await store.dispatch(refreshRegularIndexes()); - - const state = store.getState().regularIndexes; - - expect(state.indexes.length).to.equal( - defaultSortedIndexes.length + inProgressIndexes.length - ); - - const indexes = state.indexes.filter( - (index: any) => index.extra.status === 'inprogress' - ); - - expect(indexes).to.deep.equal([ - // NOTE: this one is a real index and an in-progress one - { - cardinality: 'single', - extra: { - status: 'inprogress', - }, - fields: [], - key: { - aaaa: -1, - }, - name: 'AAAA', - ns: 'foo', - properties: ['partial', 'ttl'], - relativeSize: 1, - size: 4096, - type: 'regular', - usageCount: 4, - usageHost: 'computername.local:27017', - usageSince: new Date('2019-02-08T14:39:56.285Z'), - version: 2, - }, - // NOTE: this one is only in progress, not also a real index - { - extra: { - status: 'inprogress', - }, - fields: [ - { - field: 'z', - value: 1, - }, - ], - key: { - z: 1, - }, - name: 'z', - ns: 'citibike.trips', - relativeSize: 0, - size: 0, - usageCount: 0, - }, - ]); - - expect(state.error).to.be.undefined; - expect(state.status).to.equal('READY'); - }); - it('sets status=FETCHING when indexes are being fetched and status is NOT_READY', async function () { let statusBeforeFetch: FetchStatus | undefined = undefined; @@ -359,10 +285,13 @@ describe('regular-indexes module', function () { describe('#dropIndex (thunk)', function () { it('removes a failed in-progress index', async function () { + const dropIndexSpy = sinon.spy(); + const store = await setupStoreAndWait( {}, { indexes: () => Promise.resolve(indexesList), + dropIndex: dropIndexSpy, } ); @@ -374,33 +303,22 @@ describe('regular-indexes module', function () { ..._index, }; if (index.name === 'AAAA') { - index.extra.status = 'failed'; + index.status = 'failed'; } return index; }), }, }); - // fetch first so it merges the in-progress ones - await store.dispatch(refreshRegularIndexes()); - - // one of the real indexes is also in progress, so gets merged together - const numOverlapping = 1; - - // sanity check let state = store.getState().regularIndexes; - expect(state.indexes.length).to.equal( - indexesList.length + inProgressIndexes.length - numOverlapping - ); expect(state.inProgressIndexes.length).to.equal(inProgressIndexes.length); - await store.dispatch(dropIndex('AAAA')); + store.dispatch(dropFailedIndex('AAAA')); + + expect(dropIndexSpy.callCount).to.equal(0); state = store.getState().regularIndexes; - expect(state.indexes.length).to.equal( - indexesList.length + inProgressIndexes.length - 1 - ); expect(state.inProgressIndexes.length).to.equal( inProgressIndexes.length - 1 ); @@ -409,10 +327,13 @@ describe('regular-indexes module', function () { }); it('removes a real index', async function () { + const dropIndexSpy = sinon.spy(); + const store = await setupStoreAndWait( {}, { indexes: () => Promise.resolve(indexesList), + dropIndex: dropIndexSpy, } ); @@ -428,33 +349,15 @@ describe('regular-indexes module', function () { }, }); - // fetch first so it merges the in-progress ones - await store.dispatch(refreshRegularIndexes()); - - // one of the real indexes is also in progress, so gets merged together - const numOverlapping = 1; - - // sanity check - let state = store.getState().regularIndexes; - expect(state.indexes.length).to.equal( - indexesList.length + inProgressIndexes.length - numOverlapping - ); - expect(state.inProgressIndexes.length).to.equal(inProgressIndexes.length); - + expect(dropIndexSpy.callCount).to.equal(0); await store.dispatch(dropIndex('BBBB')); // a real regular index. not in progress - - state = store.getState().regularIndexes; - - expect(state.indexes.length).to.equal( - indexesList.length + inProgressIndexes.length - 1 - ); - expect(state.inProgressIndexes.length).to.equal(inProgressIndexes.length); + expect(dropIndexSpy.args).to.deep.equal([['citibike.trips', 'BBBB']]); }); }); describe('#hideIndex (thunk)', function () { it('hides an index', async function () { - const updateCollection = sinon.stub().resolves({}); + const updateCollection = sinon.spy(); const store = await setupStoreAndWait( {}, { @@ -466,6 +369,7 @@ describe('regular-indexes module', function () { // fetch indexes so there's something to hide await store.dispatch(refreshRegularIndexes()); + expect(updateCollection.callCount).to.equal(0); await store.dispatch(hideIndex('BBBB')); expect(updateCollection.args).to.deep.equal([ diff --git a/packages/compass-indexes/src/modules/regular-indexes.ts b/packages/compass-indexes/src/modules/regular-indexes.ts index 042dc2775a1..0b71b617b97 100644 --- a/packages/compass-indexes/src/modules/regular-indexes.ts +++ b/packages/compass-indexes/src/modules/regular-indexes.ts @@ -1,4 +1,4 @@ -import { cloneDeep, isEqual, pick } from 'lodash'; +import { isEqual, pick } from 'lodash'; import type { IndexDefinition } from 'mongodb-data-service'; import type { AnyAction } from 'redux'; import { @@ -20,35 +20,34 @@ import { import type { IndexSpecification, CreateIndexesOptions } from 'mongodb'; import { hasColumnstoreIndex } from '../utils/columnstore-indexes'; -export type RegularIndex = Omit< - IndexDefinition, - 'type' | 'cardinality' | 'properties' | 'version' -> & - Partial; - -export type InProgressIndex = { +export type RegularIndex = Partial & + Pick< + IndexDefinition, + // These are the only ones we're treating as required because they are the + // ones we use. Everything else is treated as optional. + | 'name' + | 'type' + | 'cardinality' + | 'properties' + | 'fields' + | 'extra' + | 'size' + | 'relativeSize' + | 'usageCount' + >; + +export type InProgressIndex = Pick & { id: string; - key: CreateIndexSpec; - fields: { field: string; value: string | number }[]; - name: string; - ns: string; - size: number; - relativeSize: number; - usageCount: number; - extra: { - status: 'inprogress' | 'failed'; - error?: string; - }; + status: 'inprogress' | 'failed'; + error?: string; }; const prepareInProgressIndex = ( id: string, { - ns, name, spec, }: { - ns: string; name?: string; spec: CreateIndexSpec; } @@ -66,16 +65,13 @@ const prepareInProgressIndex = ( }, ''); return { id, - extra: { - status: 'inprogress', - }, - key: spec, + // TODO(COMPASS-8335): we need the type because it shows in the table + // TODO(COMPASS-8335): the table can also use cardinality + status: 'inprogress', fields: inProgressIndexFields, name: inProgressIndexName, - ns, - size: 0, - relativeSize: 0, - usageCount: 0, + // TODO(COMPASS-8335): we never mapped properties and the table does have + // room to display them }; }; @@ -142,8 +138,8 @@ type FailedIndexRemovedAction = { }; export type State = { - indexes: RegularIndex[]; status: FetchStatus; + indexes: RegularIndex[]; inProgressIndexes: InProgressIndex[]; error?: string; }; @@ -191,16 +187,9 @@ export default function reducer( ActionTypes.FetchIndexesSucceeded ) ) { - // Merge the newly fetched indexes and the existing in-progress ones. - const inProgressIndexes = state.inProgressIndexes; - const allIndexes = _mergeInProgressIndexes( - action.indexes, - cloneDeep(inProgressIndexes) - ); - return { ...state, - indexes: allIndexes, + indexes: action.indexes, status: FetchStatuses.READY, }; } @@ -234,16 +223,9 @@ export default function reducer( action.inProgressIndex, ]; - // Merge the in-progress indexes into the existing indexes. - const allIndexes = _mergeInProgressIndexes( - state.indexes, - cloneDeep(inProgressIndexes) - ); - return { ...state, inProgressIndexes, - indexes: allIndexes, }; } @@ -256,9 +238,6 @@ export default function reducer( ) { return { ...state, - // NOTE: the index is still in indexes because it would have been merged - // in there, so it will only be gone from the list once fetchIndexes() - // is dispatched and finishes. inProgressIndexes: state.inProgressIndexes.filter( (x) => x.id !== action.inProgressIndexId ), @@ -275,23 +254,13 @@ export default function reducer( const newInProgressIndexes = state.inProgressIndexes; newInProgressIndexes[idx] = { ...newInProgressIndexes[idx], - extra: { - ...newInProgressIndexes[idx].extra, - status: 'failed', - error: action.error, - }, + status: 'failed', + error: action.error, }; - // When an inprogress index fails to create, we also have to update it in - // the state.indexes list to correctly update the UI with error state. - const newIndexes = _mergeInProgressIndexes( - state.indexes, - newInProgressIndexes - ); return { ...state, inProgressIndexes: newInProgressIndexes, - indexes: newIndexes, }; } @@ -474,7 +443,6 @@ export function createRegularIndex( ) => { const ns = getState().namespace; const inProgressIndex = prepareInProgressIndex(inProgressIndexId, { - ns, name: options.name, spec, }); @@ -528,36 +496,37 @@ const failedIndexRemoved = ( // its value. This enables to test dropIndex action. export const showConfirmation = showConfirmationModal; +export const dropFailedIndex = ( + indexName: string +): IndexesThunkAction => { + return (dispatch, getState) => { + const { regularIndexes } = getState(); + const { inProgressIndexes } = regularIndexes; + + const inProgressIndex = inProgressIndexes.find((x) => x.name === indexName); + if (inProgressIndex && inProgressIndex.status === 'failed') { + // This really just removes the (failed) in-progress index + dispatch(failedIndexRemoved(String(inProgressIndex.id))); + } + }; +}; + export const dropIndex = ( indexName: string -): IndexesThunkAction< - Promise, - FailedIndexRemovedAction | FetchIndexesActions -> => { +): IndexesThunkAction, FetchIndexesActions> => { return async ( dispatch, getState, { connectionInfoRef, dataService, track } ) => { const { namespace, regularIndexes } = getState(); - const { indexes, inProgressIndexes } = regularIndexes; - const index = indexes.find((x) => x.name === indexName); + const { indexes } = regularIndexes; + const index = indexes.find((x) => x.name === indexName); if (!index) { return; } - const inProgressIndex = inProgressIndexes.find((x) => x.name === indexName); - if (inProgressIndex && inProgressIndex.extra.status === 'failed') { - // This really just removes the (failed) in-progress index - dispatch(failedIndexRemoved(String(inProgressIndex.id))); - - // By fetching the indexes again we make sure the merged list doesn't have - // it either. - await dispatch(fetchIndexes(FetchReasons.REFRESH)); - return; - } - try { const connectionInfo = connectionInfoRef.current; track('Screen', { name: 'drop_index_modal' }, connectionInfo); @@ -658,29 +627,3 @@ export const unhideIndex = ( } }; }; - -function _mergeInProgressIndexes( - _indexes: RegularIndex[], - inProgressIndexes: InProgressIndex[] -) { - const indexes = cloneDeep(_indexes); - - for (const inProgressIndex of inProgressIndexes) { - const index = indexes.find((index) => index.name === inProgressIndex.name); - - if (index) { - index.extra = index.extra ?? {}; - index.extra.status = inProgressIndex.extra.status; - if (inProgressIndex.extra.error) { - index.extra.error = inProgressIndex.extra.error; - } - } else { - // in-progress indexes also have ids which regular indexes don't - const index: RegularIndex = { ...inProgressIndex }; - delete (index as RegularIndex & { id?: any }).id; - indexes.push(index); - } - } - - return indexes; -} diff --git a/packages/compass-indexes/src/utils/index-link-helper.ts b/packages/compass-indexes/src/utils/index-link-helper.ts index 07f88f8f30f..50c896dce7c 100644 --- a/packages/compass-indexes/src/utils/index-link-helper.ts +++ b/packages/compass-indexes/src/utils/index-link-helper.ts @@ -25,7 +25,7 @@ const HELP_URLS = { UNKNOWN: null, }; -type HELP_URL_KEY = +export type HELP_URL_KEY = | Uppercase | Lowercase; diff --git a/packages/compass-indexes/test/fixtures/regular-indexes.ts b/packages/compass-indexes/test/fixtures/regular-indexes.ts index 7c663826ce1..e29bc223a7c 100644 --- a/packages/compass-indexes/test/fixtures/regular-indexes.ts +++ b/packages/compass-indexes/test/fixtures/regular-indexes.ts @@ -242,37 +242,18 @@ export const inProgressIndexes: InProgressIndex[] = [ id: 'in-progress-1', name: 'AAAA', //version: 2, - extra: { - status: 'inprogress', - }, - key: { - aaaa: -1, - }, - usageCount: 4, - size: 4096, - fields: [], - ns: 'foo', - relativeSize: 1, + status: 'inprogress', }, { id: 'in-progress-2', - extra: { - status: 'inprogress', - }, - key: { - z: 1, - }, + name: 'z', fields: [ { field: 'z', value: 1, }, ], - name: 'z', - ns: 'citibike.trips', - size: 0, - relativeSize: 0, - usageCount: 0, + status: 'inprogress', }, ]; diff --git a/packages/compass-indexes/test/helpers.ts b/packages/compass-indexes/test/helpers.ts index 2866bcbe7ba..4857ca8dbee 100644 --- a/packages/compass-indexes/test/helpers.ts +++ b/packages/compass-indexes/test/helpers.ts @@ -5,10 +5,13 @@ export function mockRegularIndex(info: Partial): RegularIndex { return { ns: 'test.test', name: '_id_1', + type: 'regular', key: {}, fields: [], size: 0, relativeSize: 0, + cardinality: 'single', + properties: [], ...info, extra: { ...info.extra, diff --git a/packages/data-service/src/index-detail-helper.ts b/packages/data-service/src/index-detail-helper.ts index 6674319c03d..3264e0b3a49 100644 --- a/packages/data-service/src/index-detail-helper.ts +++ b/packages/data-service/src/index-detail-helper.ts @@ -32,7 +32,7 @@ export type IndexDefinition = { | 'columnstore'; cardinality: 'single' | 'compound'; properties: ('unique' | 'sparse' | 'partial' | 'ttl' | 'collation')[]; - extra: Record>; + extra: Record>; size: IndexSize; relativeSize: number; } & IndexStats; From 220067a1e57d4116068ef0f3dae278e155125ca3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 12:12:58 +0000 Subject: [PATCH 12/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6310) Update report Co-authored-by: lerouxb <69737+lerouxb@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 49 ------------------------------------------ docs/tracking-plan.md | 2 +- 2 files changed, 1 insertion(+), 50 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 616e9ade9e5..7a573ab4c57 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -211,7 +211,6 @@ This document was automatically generated on Tue Oct 01 2024. | **[cookie-signature](#28f6116b52488ac66a14424869fc346f611bea6c894e7d0f7f2ca701deb8e49c)** | 1.0.6 | MIT | | **[cookie](#c396652ff004385e7bdb8398e37493d5f4144e475282a413ec52f1d3fdaf25da)** | 0.6.0 | MIT | | **[core-js](#2d0305d15eab4ad23db10b97faf9d8e8e0d5ad30a616c5892d1edd535d8a08c8)** | 3.17.3 | MIT | -| **[cpu-features](#fa992e00865a6ed732ac63bbf64c89ee2da4ec39944684e6002a3a34b5adb65c)** | 0.0.9 | MIT | | **[crelt](#9eba7acaba2af9d27a0a18fcf40d1f133ffa888d85321e4633e7dac58cab2db9)** | 1.0.5 | MIT | | **[cross-fetch](#2cd4375069c47bf89a4b399cd21cd9573086803b2cb9fc56c29df5a598e051e5)** | 3.1.8 | MIT | | **[cross-spawn](#67de3a765808182ee1018c35bc07d7a023a8d645e98cc32814dcac2fc2c427ff)** | 7.0.3 | MIT | @@ -18001,54 +18000,6 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -### [cpu-features](https://www.npmjs.com/package/cpu-features) (version 0.0.9) - -License tags: MIT - -License files: - -- LICENSE: - - Copyright Brian White. All rights reserved. - - - - Permission is hereby granted, free of charge, to any person obtaining a copy - - of this software and associated documentation files (the "Software"), to - - deal in the Software without restriction, including without limitation the - - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - - sell copies of the Software, and to permit persons to whom the Software is - - furnished to do so, subject to the following conditions: - - - - The above copyright notice and this permission notice shall be included in - - all copies or substantial portions of the Software. - - - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - - IN THE SOFTWARE. - ### [crelt](https://www.npmjs.com/package/crelt) (version 1.0.5) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 64f7ecd0d6f..a2519af0160 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 1, 2024 at 07:33 AM +Generated on Tue, Oct 1, 2024 at 12:12 PM ## Table of Contents From 80f6ac0b3460eec09e5e7aa7f17b44a732ed5730 Mon Sep 17 00:00:00 2001 From: Le Roux Bodenstein Date: Tue, 1 Oct 2024 14:47:45 +0100 Subject: [PATCH 13/31] chore(compass-connections): split out connectionSupports into a function that we can use outside of hooks (#6311) split out connectionSupports into a function that we can use outside of hooks --- .../src/hooks/use-connection-supports.ts | 47 +---- packages/compass-connections/src/index.tsx | 2 + .../src/utils/connection-supports.spec.ts | 199 ++++++++++++++++++ .../src/utils/connection-supports.ts | 49 +++++ 4 files changed, 253 insertions(+), 44 deletions(-) create mode 100644 packages/compass-connections/src/utils/connection-supports.spec.ts create mode 100644 packages/compass-connections/src/utils/connection-supports.ts diff --git a/packages/compass-connections/src/hooks/use-connection-supports.ts b/packages/compass-connections/src/hooks/use-connection-supports.ts index 7006c9c33eb..27ffd75809b 100644 --- a/packages/compass-connections/src/hooks/use-connection-supports.ts +++ b/packages/compass-connections/src/hooks/use-connection-supports.ts @@ -1,39 +1,6 @@ import { useSelector } from '../stores/store-context'; -import type { ConnectionState } from '../stores/connections-store-redux'; - -type ConnectionFeature = 'rollingIndexCreation' | 'globalWrites'; - -function isFreeOrSharedTierCluster(instanceSize: string | undefined): boolean { - if (!instanceSize) { - return false; - } - - return ['M0', 'M2', 'M5'].includes(instanceSize); -} - -function supportsRollingIndexCreation(connection: ConnectionState) { - const atlasMetadata = connection.info?.atlasMetadata; - - if (!atlasMetadata) { - return false; - } - - const { metricsType, instanceSize } = atlasMetadata; - return ( - !isFreeOrSharedTierCluster(instanceSize) && - (metricsType === 'cluster' || metricsType === 'replicaSet') - ); -} - -function supportsGlobalWrites(connection: ConnectionState) { - const atlasMetadata = connection.info?.atlasMetadata; - - if (!atlasMetadata) { - return false; - } - - return atlasMetadata.clusterType === 'GEOSHARDED'; -} +import type { ConnectionFeature } from '../utils/connection-supports'; +import { connectionSupports } from '../utils/connection-supports'; export function useConnectionSupports( connectionId: string, @@ -46,14 +13,6 @@ export function useConnectionSupports( return false; } - if (connectionFeature === 'rollingIndexCreation') { - return supportsRollingIndexCreation(connection); - } - - if (connectionFeature === 'globalWrites') { - return supportsGlobalWrites(connection); - } - - return false; + return connectionSupports(connection.info, connectionFeature); }); } diff --git a/packages/compass-connections/src/index.tsx b/packages/compass-connections/src/index.tsx index f24a5758529..daf8203eccb 100644 --- a/packages/compass-connections/src/index.tsx +++ b/packages/compass-connections/src/index.tsx @@ -22,6 +22,8 @@ export { LegacyConnectionsModal } from './components/legacy-connections-modal'; export { useConnectionFormPreferences } from './hooks/use-connection-form-preferences'; import type { connect as devtoolsConnect } from 'mongodb-data-service'; import type { ExtraConnectionData as ExtraConnectionDataForTelemetry } from '@mongodb-js/compass-telemetry'; +export type { ConnectionFeature } from './utils/connection-supports'; +export { connectionSupports } from './utils/connection-supports'; const ConnectionsComponent: React.FunctionComponent<{ appName: string; diff --git a/packages/compass-connections/src/utils/connection-supports.spec.ts b/packages/compass-connections/src/utils/connection-supports.spec.ts new file mode 100644 index 00000000000..de32f2abbcd --- /dev/null +++ b/packages/compass-connections/src/utils/connection-supports.spec.ts @@ -0,0 +1,199 @@ +import { connectionSupports } from './connection-supports'; +import { type ConnectionInfo } from '@mongodb-js/connection-storage/provider'; +import { expect } from 'chai'; + +const mockConnections: ConnectionInfo[] = [ + { + id: 'no-atlasMetadata', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + }, + { + id: 'host-cluster', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'host', + instanceSize: 'M10', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'free-cluster', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'replicaSet', + instanceSize: 'M0', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'serverless-cluster', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'serverless', + instanceSize: 'SERVERLESS_V2', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'dedicated-replicaSet', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'replicaSet', + instanceSize: 'M10', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'dedicated-sharded', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'cluster', + instanceSize: 'M10', + clusterType: 'SHARDED', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'dedicated-geo-sharded', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'cluster', + instanceSize: 'M30', + clusterType: 'GEOSHARDED', + clusterUniqueId: 'clusterUniqueId', + }, + }, +]; + +function connectionInfoById(connectionId: string): ConnectionInfo { + const connectionInfo = mockConnections.find(({ id }) => id === connectionId); + if (!connectionInfo) { + throw new Error(`No connection for id "${connectionId}"`); + } + return connectionInfo; +} + +describe('connectionSupports', function () { + context('rollingIndexCreation', function () { + it('should return false if the connection has no atlasMetadata', function () { + expect( + connectionSupports( + connectionInfoById('no-atlasMetadata'), + 'rollingIndexCreation' + ) + ).to.be.false; + }); + + it('should return false for host cluster type', function () { + expect( + connectionSupports( + connectionInfoById('host-cluster'), + 'rollingIndexCreation' + ) + ).to.be.false; + }); + + it('should return false for serverless cluster type', function () { + expect( + connectionSupports( + connectionInfoById('serverless-cluster'), + 'rollingIndexCreation' + ) + ).to.be.false; + }); + + it('should return false for free/shared tier clusters', function () { + expect( + connectionSupports( + connectionInfoById('free-cluster'), + 'rollingIndexCreation' + ) + ).to.be.false; + }); + + it('should return true for dedicated replicaSet clusters', function () { + expect( + connectionSupports( + connectionInfoById('dedicated-replicaSet'), + 'rollingIndexCreation' + ) + ).to.be.true; + }); + + it('should return true for dedicated sharded clusters', function () { + expect( + connectionSupports( + connectionInfoById('dedicated-sharded'), + 'rollingIndexCreation' + ) + ).to.be.true; + }); + }); + context('globalWrites', function () { + it('should return false if the connection has no atlasMetadata', function () { + expect( + connectionSupports( + connectionInfoById('no-atlasMetadata'), + 'globalWrites' + ) + ).to.be.false; + }); + + it('should return true if the cluster type is geosharded', function () { + expect( + connectionSupports( + connectionInfoById('dedicated-geo-sharded'), + 'globalWrites' + ) + ).to.be.true; + }); + }); +}); diff --git a/packages/compass-connections/src/utils/connection-supports.ts b/packages/compass-connections/src/utils/connection-supports.ts new file mode 100644 index 00000000000..cec5c564462 --- /dev/null +++ b/packages/compass-connections/src/utils/connection-supports.ts @@ -0,0 +1,49 @@ +import type { ConnectionInfo } from '@mongodb-js/connection-info'; +export type ConnectionFeature = 'rollingIndexCreation' | 'globalWrites'; + +function isFreeOrSharedTierCluster(instanceSize: string | undefined): boolean { + if (!instanceSize) { + return false; + } + + return ['M0', 'M2', 'M5'].includes(instanceSize); +} + +function supportsRollingIndexCreation(connectionInfo: ConnectionInfo) { + const atlasMetadata = connectionInfo.atlasMetadata; + + if (!atlasMetadata) { + return false; + } + + const { metricsType, instanceSize } = atlasMetadata; + return ( + !isFreeOrSharedTierCluster(instanceSize) && + (metricsType === 'cluster' || metricsType === 'replicaSet') + ); +} + +function supportsGlobalWrites(connectionInfo: ConnectionInfo) { + const atlasMetadata = connectionInfo.atlasMetadata; + + if (!atlasMetadata) { + return false; + } + + return atlasMetadata.clusterType === 'GEOSHARDED'; +} + +export function connectionSupports( + connectionInfo: ConnectionInfo, + connectionFeature: ConnectionFeature +): boolean { + if (connectionFeature === 'rollingIndexCreation') { + return supportsRollingIndexCreation(connectionInfo); + } + + if (connectionFeature === 'globalWrites') { + return supportsGlobalWrites(connectionInfo); + } + + return false; +} From a646b088356d4361269be4fe40953eeb8c10a268 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:54:47 +0000 Subject: [PATCH 14/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6312) Update report Co-authored-by: lerouxb <69737+lerouxb@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 49 ++++++++++++++++++++++++++++++++++++++++++ docs/tracking-plan.md | 2 +- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 7a573ab4c57..616e9ade9e5 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -211,6 +211,7 @@ This document was automatically generated on Tue Oct 01 2024. | **[cookie-signature](#28f6116b52488ac66a14424869fc346f611bea6c894e7d0f7f2ca701deb8e49c)** | 1.0.6 | MIT | | **[cookie](#c396652ff004385e7bdb8398e37493d5f4144e475282a413ec52f1d3fdaf25da)** | 0.6.0 | MIT | | **[core-js](#2d0305d15eab4ad23db10b97faf9d8e8e0d5ad30a616c5892d1edd535d8a08c8)** | 3.17.3 | MIT | +| **[cpu-features](#fa992e00865a6ed732ac63bbf64c89ee2da4ec39944684e6002a3a34b5adb65c)** | 0.0.9 | MIT | | **[crelt](#9eba7acaba2af9d27a0a18fcf40d1f133ffa888d85321e4633e7dac58cab2db9)** | 1.0.5 | MIT | | **[cross-fetch](#2cd4375069c47bf89a4b399cd21cd9573086803b2cb9fc56c29df5a598e051e5)** | 3.1.8 | MIT | | **[cross-spawn](#67de3a765808182ee1018c35bc07d7a023a8d645e98cc32814dcac2fc2c427ff)** | 7.0.3 | MIT | @@ -18000,6 +18001,54 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +### [cpu-features](https://www.npmjs.com/package/cpu-features) (version 0.0.9) + +License tags: MIT + +License files: + +- LICENSE: + + Copyright Brian White. All rights reserved. + + + + Permission is hereby granted, free of charge, to any person obtaining a copy + + of this software and associated documentation files (the "Software"), to + + deal in the Software without restriction, including without limitation the + + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + + sell copies of the Software, and to permit persons to whom the Software is + + furnished to do so, subject to the following conditions: + + + + The above copyright notice and this permission notice shall be included in + + all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + + IN THE SOFTWARE. + ### [crelt](https://www.npmjs.com/package/crelt) (version 1.0.5) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index a2519af0160..6f640c165fe 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 1, 2024 at 12:12 PM +Generated on Tue, Oct 1, 2024 at 01:54 PM ## Table of Contents From 12b727815261f60c51fddef800241a3d057e0593 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Wed, 2 Oct 2024 10:40:56 +0200 Subject: [PATCH 15/31] chore: add missing `prettier` configs (#6280) * Add .prettierrc.json config files * Ran prettier --write in hadron-build * Ran prettier --write in hadron-type-checker * Ran prettier --write in mongodb-explain-compat * Ran prettier --write in bson-transpilers * Make "check" happy: Generated files * Make "check" happy: Common eslint config * Make "check" happy: Eslint fix --- package-lock.json | 729 +---- packages/bson-transpilers/.prettierignore | 12 + packages/bson-transpilers/.prettierrc.json | 1 + packages/bson-transpilers/CONTRIBUTING.md | 166 +- packages/bson-transpilers/README.md | 120 +- .../codegeneration/CodeGenerationVisitor.js | 1699 ++++++------ .../codegeneration/DeclarationStore.js | 8 +- .../codegeneration/ErrorListener.js | 7 +- .../codegeneration/csharp/Generator.js | 11 +- .../codegeneration/go/Generator.js | 9 +- .../codegeneration/java/Generator.js | 1661 ++++++------ .../codegeneration/javascript/Generator.js | 23 +- .../codegeneration/javascript/Visitor.js | 1298 ++++----- .../codegeneration/object/Generator.js | 429 +-- .../codegeneration/php/Generator.js | 15 +- .../codegeneration/php/PHPUtils.js | 5 +- .../codegeneration/python/Generator.js | 11 +- .../codegeneration/python/Visitor.js | 1345 +++++----- .../codegeneration/ruby/Generator.js | 11 +- .../codegeneration/rust/Generator.js | 11 +- .../codegeneration/shell/Generator.js | 11 +- .../codegeneration/shell/Visitor.js | 248 +- .../bson-transpilers/compile-symbol-table.js | 15 +- packages/bson-transpilers/config/error.json | 2 +- packages/bson-transpilers/download-antlr.js | 4 +- packages/bson-transpilers/helper/format.js | 18 +- packages/bson-transpilers/index.js | 85 +- .../printers/ECMAScriptListener.js | 8 +- .../symbols/csharp/templates.yaml | 1912 ++++++------- .../symbols/go/templates.yaml | 1881 ++++++------- .../symbols/java/templates.yaml | 2239 ++++++++-------- .../symbols/javascript/templates.yaml | 1259 ++++----- packages/bson-transpilers/symbols/main.yaml | 31 +- .../symbols/object/templates.yaml | 1145 ++++---- .../symbols/php/templates.yaml | 2385 +++++++++-------- .../symbols/python/templates.yaml | 2032 +++++++------- .../symbols/ruby/templates.yaml | 2150 +++++++-------- .../symbols/rust/templates.yaml | 1632 +++++------ .../symbols/sample_template.yaml | 694 ++--- .../bson-transpilers/test/casting.test.js | 33 +- .../test/declaration-store.test.js | 78 +- .../bson-transpilers/test/functions.test.js | 42 +- packages/bson-transpilers/test/index.test.js | 14 +- .../bson-transpilers/test/run-yaml.test.js | 76 +- .../test/yaml/bson-methods.yaml | 52 +- packages/bson-transpilers/test/yaml/bson.yaml | 58 +- .../bson-transpilers/test/yaml/builders.yaml | 18 +- .../test/yaml/driver-syntax.yaml | 4 +- .../test/yaml/edge-cases/casting.yaml | 4 +- .../test/yaml/error-builders.yaml | 86 +- .../bson-transpilers/test/yaml/imports.yaml | 10 +- .../bson-transpilers/test/yaml/native.yaml | 116 +- .../test/yaml/non-idiomatic.yaml | 12 +- .../bson-transpilers/test/yaml/partial.yaml | 20 +- packages/compass-e2e-tests/.prettierignore | 4 + packages/compass/.prettierignore | 3 + packages/hadron-build/.eslintrc | 4 +- packages/hadron-build/.prettierignore | 1 + packages/hadron-build/.prettierrc.json | 1 + packages/hadron-build/README.md | 11 +- packages/hadron-build/cli.js | 2 +- packages/hadron-build/commands/download.js | 10 +- packages/hadron-build/commands/info.js | 40 +- packages/hadron-build/commands/release.d.ts | 2 +- packages/hadron-build/commands/release.js | 251 +- packages/hadron-build/commands/upload.js | 47 +- packages/hadron-build/index.js | 2 +- packages/hadron-build/lib/download-center.js | 16 +- .../hadron-build/lib/mac-notary-service.js | 55 +- packages/hadron-build/lib/run.js | 36 +- packages/hadron-build/lib/signtool.js | 5 +- packages/hadron-build/lib/target.js | 174 +- .../hadron-build/lib/validate-build-config.js | 12 +- .../lib/windows-installer-version.js | 4 +- packages/hadron-build/lib/zip.js | 22 +- packages/hadron-build/signtool/install.js | 4 +- packages/hadron-build/test/config.test.js | 64 +- .../hadron-build/test/download-center.test.js | 22 +- .../test/fixtures/hadron-app/main.js | 18 +- .../test/fixtures/hadron-app/package.json | 8 +- packages/hadron-build/test/helpers.js | 2 +- packages/hadron-build/test/index.test.js | 38 +- packages/hadron-build/test/release.test.js | 54 +- packages/hadron-build/test/signtool.test.js | 101 +- packages/hadron-build/test/tar-gz.test.js | 10 +- packages/hadron-build/test/target.test.js | 2 +- packages/hadron-build/test/upload.test.js | 86 +- packages/hadron-build/test/zip.test.js | 30 +- packages/hadron-type-checker/.eslintrc | 14 +- packages/hadron-type-checker/.prettierrc.json | 1 + packages/hadron-type-checker/index.d.ts | 2 +- packages/hadron-type-checker/package.json | 2 +- .../hadron-type-checker/src/type-checker.js | 11 +- .../test/type-checker.test.js | 620 +++-- packages/mongodb-explain-compat/.eslintrc | 8 +- .../mongodb-explain-compat/.prettierrc.json | 1 + packages/mongodb-explain-compat/lib/index.js | 58 +- packages/mongodb-explain-compat/package.json | 7 +- .../test/fixtures/in1.json | 15 +- .../test/fixtures/in2.json | 5 +- .../test/fixtures/out1.json | 17 +- .../test/fixtures/out2.json | 5 +- .../test/fixtures/unsharded-find.sbe.in.json | 15 +- .../test/fixtures/unsharded-find.sbe.out.json | 17 +- packages/mongodb-explain-compat/test/index.js | 27 +- 105 files changed, 14078 insertions(+), 13833 deletions(-) create mode 100644 packages/bson-transpilers/.prettierignore create mode 100644 packages/bson-transpilers/.prettierrc.json create mode 100644 packages/hadron-build/.prettierignore create mode 100644 packages/hadron-build/.prettierrc.json create mode 100644 packages/hadron-type-checker/.prettierrc.json create mode 100644 packages/mongodb-explain-compat/.prettierrc.json diff --git a/package-lock.json b/package-lock.json index 397cebf3545..57cdb448135 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13312,12 +13312,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, "node_modules/@types/keyv": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", @@ -22413,159 +22407,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-config-semistandard": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-15.0.1.tgz", - "integrity": "sha512-sfV+qNBWKOmF0kZJll1VH5XqOAdTmLlhbOl9WKI11d2eMEe+Kicxnpm24PQWHOqAfk5pAWU2An0LjNCXKa4Usg==", - "dev": true, - "peerDependencies": { - "eslint": ">=6.0.1", - "eslint-config-standard": ">=14.1.0", - "eslint-plugin-import": ">=2.18.0", - "eslint-plugin-node": ">=9.1.0", - "eslint-plugin-promise": ">=4.2.1", - "eslint-plugin-standard": ">=4.0.0" - } - }, - "node_modules/eslint-config-standard": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz", - "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==", - "dev": true, - "peerDependencies": { - "eslint": ">=6.2.2", - "eslint-plugin-import": ">=2.18.0", - "eslint-plugin-node": ">=9.1.0", - "eslint-plugin-promise": ">=4.2.1", - "eslint-plugin-standard": ">=4.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-module-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", - "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-chai-friendly": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.4.1.tgz", @@ -22578,25 +22419,6 @@ "eslint": ">=3.0.0" } }, - "node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, "node_modules/eslint-plugin-filename-rules": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-filename-rules/-/eslint-plugin-filename-rules-1.2.0.tgz", @@ -22605,141 +22427,6 @@ "node": ">=6.0.0" } }, - "node_modules/eslint-plugin-import": { - "version": "2.23.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", - "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.1", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.4.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.3", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.9.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-plugin-import/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", @@ -22796,44 +22483,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, - "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-promise": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", - "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/eslint-plugin-react": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", @@ -22893,29 +22542,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-standard": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", - "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -40917,39 +40543,6 @@ "node": ">=0.3.1" } }, - "node_modules/tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -49266,10 +48859,10 @@ "lodash": "^4.17.21" }, "devDependencies": { + "@mongodb-js/eslint-config-compass": "^1.1.7", "chai": "^4.2.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "eslint-config-mongodb-js": "^5.0.3", "mocha": "^10.2.0" } }, @@ -49296,13 +48889,8 @@ "version": "3.1.0", "license": "SSPL", "devDependencies": { + "@mongodb-js/eslint-config-compass": "^1.1.7", "eslint": "^7.25.0", - "eslint-config-semistandard": "^15.0.1", - "eslint-config-standard": "^14.1.1", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.1", "gen-esm-wrapper": "^1.1.0", "mocha": "^10.2.0", "nyc": "^15.1.0" @@ -64388,12 +63976,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, "@types/keyv": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", @@ -72023,252 +71605,17 @@ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==" }, - "eslint-config-semistandard": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-15.0.1.tgz", - "integrity": "sha512-sfV+qNBWKOmF0kZJll1VH5XqOAdTmLlhbOl9WKI11d2eMEe+Kicxnpm24PQWHOqAfk5pAWU2An0LjNCXKa4Usg==", - "dev": true - }, - "eslint-config-standard": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz", - "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-module-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", - "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } - } - }, "eslint-plugin-chai-friendly": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.4.1.tgz", "integrity": "sha512-hkpLN7VVoGGsofZjUhcQ+sufC3FgqMJwD0DvAcRfxY1tVRyQyVsqpaKnToPHJQOrRo0FQ0fSEDwW2gr4rsNdGA==", "dev": true }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - } - }, "eslint-plugin-filename-rules": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-filename-rules/-/eslint-plugin-filename-rules-1.2.0.tgz", "integrity": "sha512-iPVuHb+VZRt0k9r2ejBRSZM7n+LIJ1OWKiOj/E1ZQiII7AaKZ28JE0lVdxQ7LI2rBem7dqcmC/0QAnAyis0xTA==" }, - "eslint-plugin-import": { - "version": "2.23.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", - "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", - "dev": true, - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.1", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.4.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.3", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } - } - }, "eslint-plugin-jsx-a11y": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", @@ -72312,34 +71659,6 @@ "ramda": "^0.27.1" } }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-plugin-promise": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", - "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", - "dev": true - }, "eslint-plugin-react": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", @@ -72383,12 +71702,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==" }, - "eslint-plugin-standard": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", - "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", - "dev": true - }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -75133,11 +74446,11 @@ "hadron-type-checker": { "version": "file:packages/hadron-type-checker", "requires": { + "@mongodb-js/eslint-config-compass": "^1.1.7", "bson": "^6.7.0", "chai": "^4.2.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "eslint-config-mongodb-js": "^5.0.3", "lodash": "^4.17.21", "mocha": "^10.2.0" } @@ -80367,13 +79680,8 @@ "mongodb-explain-compat": { "version": "file:packages/mongodb-explain-compat", "requires": { + "@mongodb-js/eslint-config-compass": "^1.1.7", "eslint": "^7.25.0", - "eslint-config-semistandard": "^15.0.1", - "eslint-config-standard": "^14.1.1", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.1", "gen-esm-wrapper": "^1.1.0", "mocha": "^10.2.0", "nyc": "^15.1.0" @@ -87429,35 +86737,6 @@ } } }, - "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", diff --git a/packages/bson-transpilers/.prettierignore b/packages/bson-transpilers/.prettierignore new file mode 100644 index 00000000000..e0b0e02777a --- /dev/null +++ b/packages/bson-transpilers/.prettierignore @@ -0,0 +1,12 @@ +# SyntaxError: Aliased anchor not found: ... +symbols/basic_types.yaml +symbols/import_templates.yaml +symbols/python/symbols.yaml +symbols/python/types.yaml +symbols/shell/symbols.yaml +symbols/shell/types.yaml +symbols/syntax_templates.yaml + +# Generated files +lib/antlr/ +lib/symbol-table/ diff --git a/packages/bson-transpilers/.prettierrc.json b/packages/bson-transpilers/.prettierrc.json new file mode 100644 index 00000000000..18853d1532e --- /dev/null +++ b/packages/bson-transpilers/.prettierrc.json @@ -0,0 +1 @@ +"@mongodb-js/prettier-config-compass" diff --git a/packages/bson-transpilers/CONTRIBUTING.md b/packages/bson-transpilers/CONTRIBUTING.md index 84f7d623b86..7e2d9db7e8c 100644 --- a/packages/bson-transpilers/CONTRIBUTING.md +++ b/packages/bson-transpilers/CONTRIBUTING.md @@ -1,36 +1,41 @@ # Contributing to bson-transpilers ## Setting up your environment + The `bson-transpilers` package uses [ANTLR4](https://github.com/antlr/antlr4/blob/master/doc/javascript-target.md) to create a parse tree. As `ANTLR` is written in Java, you will need to set up a few tools before being able to compile this locally. Make sure you have Java installed: + ```shell $ brew cask install java ``` _I strongly suggest using an IDE that will help you visualize ANTLR trees (JetBrains has a good plugin). - Otherwise you can use the java version of the grammar and compile it with - `javac *.java && grun -gui`. - [This might be helpful](https://github.com/antlr/antlr4/blob/master/doc/getting-started.md)._ +Otherwise you can use the java version of the grammar and compile it with +`javac *.java && grun -gui`. +[This might be helpful](https://github.com/antlr/antlr4/blob/master/doc/getting-started.md)._ Make sure you have run the following from the root directory: + ```shell $ npm run bootstrap ``` Then compile and run tests locally with: + ```shell $ npm run compile && npm run test ``` You can provide a few environmental variables to help you test your specific output and input languages. If none are provided, everything will run. -- __INPUT=:__ comma-separated input languages you want to test -- __OUTPUT=:__ comma-separated output languages you want to test. Also called "target" language. -- __MODE=:__ comma-separated names of the test files (without .yaml) that you want to run + +- **INPUT=:** comma-separated input languages you want to test +- **OUTPUT=:** comma-separated output languages you want to test. Also called "target" language. +- **MODE=:** comma-separated names of the test files (without .yaml) that you want to run ```shell OUTPUT=csharp INPUT=shell MODE=native,bson npm run test @@ -39,12 +44,15 @@ OUTPUT=csharp INPUT=shell MODE=native,bson npm run test # How it works See also the original presentation: https://drive.google.com/file/d/1jvwtR3k9oBUzIjL4z_VtpHvdWahfcjTK/view + ## Compilation Stages + Similar to how many transpilers work, this package parses the input string into a tree and then generates code from the tree using the [Visitor pattern](https://en.wikipedia.org/wiki/Visitor_pattern). ### Step 1: Parsing + Parsing and tree generation is handled by ANTLR4. The grammar files are located in the `grammars` folder, and the javascript parser/lexer/etc. generated from the grammar are located in `lib/antlr`. To make @@ -60,8 +68,8 @@ ANTLR generates a "shell" visitor class for each tree in `lib/antlr/Visitor.js`. It contains an empty method for each node in the parse tree. - ### Step 2: Visitor + visiting-tree Because the project is designed to handle multiple input languages and multiple @@ -91,17 +99,18 @@ that provide a layer of indirection around the tree so that the generic visitor care about what tree it's visiting. The CodeGenerationVisitor also includes helper methods that every input language may use. - ### Step 3: Generator + The other half of the tree visitation stage. Each ouput language will have a Generator class defined in `codegeneration//Generator.js`. The Generator class generates code, so it is specific to the ouput language. The Generator class is a subclass of the input language's visitor class. So for example, translating between JS and Python, the order of inheritance will be: - 1. `lib/antlr/ECMAScriptVisitor.js` ["empty" superclass, specific to the tree built by ANTLR] - 2. `codegeneration/CodeGenerationVisitor.js` ["generic" visitor, shared between all languages] - 3. `codegeneration/javascript/Visitor.js` [specific to input language] - 4. `codegeneration/python/Generator.js` [specific to output language] + +1. `lib/antlr/ECMAScriptVisitor.js` ["empty" superclass, specific to the tree built by ANTLR] +2. `codegeneration/CodeGenerationVisitor.js` ["generic" visitor, shared between all languages] +3. `codegeneration/javascript/Visitor.js` [specific to input language] +4. `codegeneration/python/Generator.js` [specific to output language] For nodes that cannot be translated using templates, the Generator class will define a method called `emit` which @@ -115,6 +124,7 @@ When the visitor in [step #1](#step-1:-parsing) reaches a function call, variabl expression it needs a way of knowing what that symbol evaluates to in order to know if it is valid. ### Symbols + Each input language has it's own set of symbols that are part of the language. The majority of symbols supported in the input languages are BSON types (i.e. `Int32`, `ObjectId`, etc) but there are a few native types like `RegExp` and @@ -123,12 +133,12 @@ is undefined, we store symbol information in a [Symbol Table](https://en.wikipedia.org/wiki/Symbol_table). #### Symbol Metadata + The visitor uses the symbol table to determine if a symbol is undefined, but the symbol table also stores some metadata so the visitor can do type and other validity checks. The symbols are defined in [YAML](https://en.wikipedia.org/wiki/YAML) in the `symbols//symbols.yaml` file. A symbol definition looks like: - ```yml Decimal128: id: "Decimal128" @@ -149,27 +159,27 @@ are defined in [YAML](https://en.wikipedia.org/wiki/YAML) in the template: *Decimal128SymbolTemplate argsTemplate: *Decimal128SymbolArgsTemplate ``` -
-| Field | Data | -| ----------|:-------------| -| id | The name of the attribute. Mostly used for error reporting and the `emit` or `process` method names. | -| callable | Used for determining if the symbol can be part of a function call. There are three types of symbols:

`*func`: a function call. If the symbol is found as the "left-hand-side" of a function call, it is valid.

`*constructor`: also a function call, but may require a `new` keyword if the output language requires it.

`*var`: a variable. Indicates to the transpiler that the symbol cannot be invoked, i.e. `()` is invalid.| -| args | Used for type checking. If the symbol is callable, i.e. a `*func` or `*constructor`, then the expected arguments are defined here as an array. So for example, if the function takes in a string as the first arg, and an optional second arg that can be a object or array, args will look like
`[ [*StringType], [*ObjectType, *ArrayType, null] ]`. Null indicates optional.| -| type | The type that the symbol evaluates to. If it is a variable, it will be the type of the variable. If it is a function, it will be the return type. See the [Types](#types) section.| -| attr | Used for determining if attribute access is valid. This field is also a symbol table, but a namespace-prefixed one. So for the example above, `Decimal128.fromString` is a valid attribute, so we need to define the symbol `fromString` in the same way we defined the `Decimal128` symbol.| -| template | Used for code generation. See the [Templates](#templates) section.| -| argsTemplate | Used for code generation. See the [Templates](#templates) section.| +
+| Field | Data | +| ------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id | The name of the attribute. Mostly used for error reporting and the `emit` or `process` method names. | +| callable | Used for determining if the symbol can be part of a function call. There are three types of symbols:

`*func`: a function call. If the symbol is found as the "left-hand-side" of a function call, it is valid.

`*constructor`: also a function call, but may require a `new` keyword if the output language requires it.

`*var`: a variable. Indicates to the transpiler that the symbol cannot be invoked, i.e. `()` is invalid. | +| args | Used for type checking. If the symbol is callable, i.e. a `*func` or `*constructor`, then the expected arguments are defined here as an array. So for example, if the function takes in a string as the first arg, and an optional second arg that can be a object or array, args will look like
`[ [*StringType], [*ObjectType, *ArrayType, null] ]`. Null indicates optional. | +| type | The type that the symbol evaluates to. If it is a variable, it will be the type of the variable. If it is a function, it will be the return type. See the [Types](#types) section. | +| attr | Used for determining if attribute access is valid. This field is also a symbol table, but a namespace-prefixed one. So for the example above, `Decimal128.fromString` is a valid attribute, so we need to define the symbol `fromString` in the same way we defined the `Decimal128` symbol. | +| template | Used for code generation. See the [Templates](#templates) section. | +| argsTemplate | Used for code generation. See the [Templates](#templates) section. | ### Types + Each input language also has a set of types that are part of the language. The set of types that are universal for all languages (i.e. "primitives", "literals", like `string`, `integer`, etc) are defined in the file `symbols/basic_types.yaml`. -Types that are specific to the input language are defined in `symbols//types.yaml`. These include BSON types, i.e. classes like `ObjectId`, and +Types that are specific to the input language are defined in `symbols//types.yaml`. These include BSON types, i.e. classes like `ObjectId`, and language-specific types like `RegExp` and `Date`. The types are defined in the same pattern as the symbols and contain the same metadata as the symbols. @@ -178,13 +188,14 @@ the same identifier and are basically the same thing but we have to make a disti because otherwise we will end up with invalid code. The **symbol** `ObjectId` has attributes like `ObjectId.fromString(...)` and is a constructor, so `ObjectId()` is valid. The **type** `ObjectId` has -attributes like `ObjectId().toString()` and is *a variable*, so `ObjectId()()` +attributes like `ObjectId().toString()` and is _a variable_, so `ObjectId()()` is not valid and will error with `ObjectId() is not callable` or similar error. You can kind of think of types as instantiated symbols, if that's helpful. So: `ObjectId.toString() and ObjectId().fromString('x')` are both invalid, while `ObjectId().toString() and ObjectId.fromString('x')` are both valid. ## Templates + The symbol table includes an additional piece of metadata, called a `template`. These are functions that accept strings and return strings, and are responsible for doing the string transformations from one language syntax to another language's syntax. @@ -197,6 +208,7 @@ calls, the `argsTemplate` is a function that gets applied to the arguments in ca need rearranging between languages. ## Project Structure + indexjs Entry point to the project is `index.js`. It currently exports [two @@ -205,36 +217,39 @@ given `inputLang` and `outputLang`, and accessing language's import statements you might need. To construct a transpiler, `index.js` needs 4 components: + - `lib/antlr//Visitor.js` The visitor for the specific input language. - `codegeneration//Generator.js` - The generator for the specific output language. - `lib/symbol-table/to.js` - The symbol table for -the input+output combination. + the input+output combination. #### TL;DR -- __CodeGenerationVisitor:__ place to store repeated code between all visitors. -- __Visitor:__ visits nodes; processes input language via - `processs` methods and sends information to either output language's template found in the `Symbol -Template` or an `emit` method in the Generator`. -- __Generator:__ processes output language via `emit` methods, which take in tree nodes and return strings. -- __Symbol Table:__ a directory of the defined symbols, types and their metadata, including templates. -- __Symbol Template:__ does string manipulation to provide output. + +- **CodeGenerationVisitor:** place to store repeated code between all visitors. +- **Visitor:** visits nodes; processes input language via + `processs` methods and sends information to either output language's template found in the `Symbol Template` or an `emit` method in the Generator`. +- **Generator:** processes output language via `emit` methods, which take in tree nodes and return strings. +- **Symbol Table:** a directory of the defined symbols, types and their metadata, including templates. +- **Symbol Template:** does string manipulation to provide output. The class hierarchy of any transpiler is ANTLRVisitor <-- CodeGenerationVisitor <-- [input-language-specific] Visitor <-- [output-language-specific] Generator. ## A primer on the different types of methods -| Method name | Summary | -|--------------|-----------| -| `visit<*>` | Always auto-generated by ANTLR, overridden by language-specific visitors. Controls the flow of the tree visitation. | -| `get<*>` | Wrapper methods around nodes, defined by language-specific visitors. They exist because different grammars call equivalent nodes different names. | -| `generate<*>` | Shared logic between all input languages. Defined in `CodeGenerationVisitor` and called from language-specific visitor methods. | -| `return<*>` | Separates string generation from object generation. Defined in `CodeGenerationVisitor` or `object/Generator`. | -| `process<*>` | Special case for entire input language. Defined in visitors, called programmatically within the visitor. | -| `emit<*>` | Special case for entire output language. Defined in generators, called programmatically by the visitors. | + +| Method name | Summary | +| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `visit<*>` | Always auto-generated by ANTLR, overridden by language-specific visitors. Controls the flow of the tree visitation. | +| `get<*>` | Wrapper methods around nodes, defined by language-specific visitors. They exist because different grammars call equivalent nodes different names. | +| `generate<*>` | Shared logic between all input languages. Defined in `CodeGenerationVisitor` and called from language-specific visitor methods. | +| `return<*>` | Separates string generation from object generation. Defined in `CodeGenerationVisitor` or `object/Generator`. | +| `process<*>` | Special case for entire input language. Defined in visitors, called programmatically within the visitor. | +| `emit<*>` | Special case for entire output language. Defined in generators, called programmatically by the visitors. | ### Tests + Tests are written in YAML. Each yaml file requires two keys, first 'runner' which is a function that runs each individual test. The function signature is always `(it, expect, input, output, transpiler, test)` where `test` is a copy of a single YAML test. The second key is 'tests' which is an array @@ -250,23 +265,37 @@ Although I doubt that will end up being needed. ## Adding an Output Language 1. Create a directory in `symbols` directory for your output language: + ```shell mkdir symbols/ ``` + 2. Create a `templates.yaml` file to store your language's templates. Inside you'll probably want to copy the contents from the `symbols/sample_templates.yaml` file. That file also includes comments on which template functions require unusual arguments. + ```shell cp symbols/sample_template.yaml symbols//templates.yaml ``` + 3. Add your new language to the `compile-symbol-table.js` file: + ```js -const outputLangs = ['java', 'shell', 'python', 'csharp', 'javascript', 'mylanguage']; +const outputLangs = [ + 'java', + 'shell', + 'python', + 'csharp', + 'javascript', + 'mylanguage', +]; ``` + 4. You should now run `npm run compile` to generate a complete symbol table. This will be generated in `lib/symbol-table/javascriptto` and -`lib/symbol-table/shellto`. + `lib/symbol-table/shellto`. 5. You will have to require the generated symbol tables in `index.js`: + ```js const javascriptsymbols = require('lib/symbol-table/javascriptto') const getGenerator = require('./codegeneration//Generator.js'); @@ -285,22 +314,28 @@ module.exports = { * specific visitor and the ANTLR visitor to match the input lang. */ } ``` + 6. We still don't have a `Generator.js` file required above, so that won't quite work yet. So next, create a new directory in `codegeneration` for your -output language: + output language: + ```shell mkidr codegeneration/ ``` + 7. And create a generator file: + ```shell touch codegeneration//Generator.js ``` + 8. Most of the Generators are empty nowadays because the work has been moved into -the templates. I would expect that 90% of the time, what you're trying to do can -be done in the templates without changing the template signature. However, if you -really can't do it in the templates, you can copy any of the generators that exist -and fill in any emit methods you require. The class should be created with a super -class that is passed to the function, like so: + the templates. I would expect that 90% of the time, what you're trying to do can + be done in the templates without changing the template signature. However, if you + really can't do it in the templates, you can copy any of the generators that exist + and fill in any emit methods you require. The class should be created with a super + class that is passed to the function, like so: + ```js /* * Class for handling edge cases for node code generation. Defines "emit" methods. @@ -315,23 +350,28 @@ module.exports = (Visitor) => class Generator extends Visitor { }; `` ``` + 9. Next thing is tests! You must go through each test file and add the results of -compiling each input into your output language under the `output` field. + compiling each input into your output language under the `output` field. + ```yaml - Document: - - input: - javascript: "{x: '1'}" - shell: "{x: '1'}" - python: "{'x': '1'}" - output: - javascript: "{\n 'x': '1'\n}" - python: "{\n 'x': '1'\n}" - java: "eq(\"x\", \"1\")" - csharp: "new BsonDocument(\"x\", \"1\")" - shell: "{\n 'x': '1'\n}" - : ... +Document: + - input: + javascript: "{x: '1'}" + shell: "{x: '1'}" + python: "{'x': '1'}" + output: + javascript: "{\n 'x': '1'\n}" + python: "{\n 'x': '1'\n}" + java: 'eq("x", "1")' + csharp: 'new BsonDocument("x", "1")' + shell: "{\n 'x': '1'\n}" + : ... ``` + Make sure to add your output language in the outputLanguages array at the beginning of `run-yaml.test.js`, and to the list near the end of `functions.test.js`. + ## Adding an Input Language + TODO! diff --git a/packages/bson-transpilers/README.md b/packages/bson-transpilers/README.md index 6ee0c270ca9..74dd8e097e0 100644 --- a/packages/bson-transpilers/README.md +++ b/packages/bson-transpilers/README.md @@ -1,4 +1,5 @@ # BSON-Transpilers + [![npm version][1]][2] [![build status][3]][4] [![downloads][5]][6] @@ -8,6 +9,7 @@ provided for `shell` as inputs. `java`, `c#`, `node`, `shell`, `python`, `ruby` See also the original presentation: https://drive.google.com/file/d/1jvwtR3k9oBUzIjL4z_VtpHvdWahfcjTK/view **NOTES:** + 1. A version of the code with support for `python` with corresponding test cases has been removed to avoid bundling and supporting unused code, however it can be still be found in https://github.com/mongodb-js/compass/tree/80cf701e44cd966207f956fac69e8233861b1cd5/packages/bson-transpilers. 2. The `shell` output is disabled as is essentially the only input in use and it produces code that is compatible only with legacy `mongo` shell not the new `mongosh` shell. See [COMPASS-4930](https://jira.mongodb.org/browse/COMPASS-4930) for some additional context. @@ -19,7 +21,7 @@ const transpiler = require('bson-transpilers'); const input = 'shell'; const output = 'java'; -const string =` +const string = ` { item: "book", qty: Int32(10), tags: ["red", "blank"], dim_cm: [14, Int32("81")] }`; try { @@ -34,95 +36,106 @@ try { ``` ## API + ### compiledString = transpiler\[inputLang\]\[outputLang\].compile(codeString) + Output a compiled string given input and output languages. -- __inputLang:__ Input language of the code string. `shell` and `javascript` + +- **inputLang:** Input language of the code string. `shell` and `javascript` are currently supported. -- __outputLang:__ The language you would like the output to be. `java`, +- **outputLang:** The language you would like the output to be. `java`, `python`, `shell`, `javascript`, and `csharp` are currently supported. -- __codeString:__ The code string you would like to be compiled to your +- **codeString:** The code string you would like to be compiled to your selected output language. ### importsString = transpiler\[inputLang\]\[outputLang\].getImports(mode, driverSyntax) + Output a string containing the set of import statements for the generated code to compile. These are all the packages that the compiled code could use so that the transpiler output will be runnable. -- __inputLang:__ Input language of the code string. `shell` and `javascript` + +- **inputLang:** Input language of the code string. `shell` and `javascript` are currently supported. -- __outputLang:__ The language you would like the output to be. `java`, +- **outputLang:** The language you would like the output to be. `java`, `python`, `shell`, `javascript`, and `csharp` are currently supported. -- __mode:__ Either 'Query' for the `.find()` method or 'Pipeline' for `.aggregate()`. -- __driverSyntax:__ Whether or not you want to include Driver Syntax into your output string. +- **mode:** Either 'Query' for the `.find()` method or 'Pipeline' for `.aggregate()`. +- **driverSyntax:** Whether or not you want to include Driver Syntax into your output string. ### catch (error) + Any transpiler errors that occur will be thrown. To catch them, wrap the `transpiler` in a `try/catch` block. -- __error.message:__ Message `bson-transpilers` will send back letting you know + +- **error.message:** Message `bson-transpilers` will send back letting you know the transpiler error. -- __error.stack:__ The usual error stacktrace. -- __error.code:__ [Error code]() that `bson-transpilers` adds to the error object to +- **error.stack:** The usual error stacktrace. +- **error.code:** [Error code]() that `bson-transpilers` adds to the error object to help you distinguish error types. -- __error.line:__ If it is a syntax error, will have the line. -- __error.column:__ If it is a syntax error, will have the column. -- __error.symbol:__ If it is a syntax error, will have the symbol associated with the error. - +- **error.line:** If it is a syntax error, will have the line. +- **error.column:** If it is a syntax error, will have the column. +- **error.symbol:** If it is a syntax error, will have the symbol associated with the error. ### State -The `CodeGenerationVisitor` class manages a global state which is bound to the `argsTemplate` functions. This state is intended to be used as a solution for the `argsTemplate` functions to communicate with the `DriverTemplate` function. For example: +The `CodeGenerationVisitor` class manages a global state which is bound to the `argsTemplate` functions. This state is intended to be used as a solution for the `argsTemplate` functions to communicate with the `DriverTemplate` function. For example: ```yaml -ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (_) => { - this.oneLineStatement = "Hello World"; - return ''; - } - -DriverTemplate: &DriverTemplate !!js/function > - (_spec) => { - return this.oneLineStatement; - } +ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (_) => { + this.oneLineStatement = "Hello World"; + return ''; + } + +DriverTemplate: !!js/function &DriverTemplate > + (_spec) => { + return this.oneLineStatement; + } ``` The output of the driver syntax for this language will be the one-line statement `Hello World`. #### DeclarationStore -A more practical use-case of state is to accumulate variable declarations throughout the `argsTemplate` to be rendered by the `DriverTemplate`. That is, the motivation for using `DeclarationStore` is to prepend the driver syntax with variable declarations rather than using non-idiomatic solutions such as closures. -The `DeclarationStore` class maintains an internal state concerning variable declarations. For example, +A more practical use-case of state is to accumulate variable declarations throughout the `argsTemplate` to be rendered by the `DriverTemplate`. That is, the motivation for using `DeclarationStore` is to prepend the driver syntax with variable declarations rather than using non-idiomatic solutions such as closures. + +The `DeclarationStore` class maintains an internal state concerning variable declarations. For example, ```javascript // within the args template (arg) => { - return this.declarations.add("Temp", "objectID", (varName) => { + return this.declarations.add('Temp', 'objectID', (varName) => { return [ `${varName}, err := primitive.ObjectIDFromHex(${arg})`, 'if err != nil {', ' log.Fatal(err)', - '}' - ].join('\n') - }) -} + '}', + ].join('\n'); + }); +}; ``` -Note that each use of the same variable name will result in an increment being added to the declaration statement. For example, if the variable name `objectIDForTemp` is used two times the resulting declaration statements will use `objectIDForTemp` for the first declaration and `objectID2ForTemp` for the second declaration. The `add` method returns the incremented variable name, and is therefore what would be expected as the right-hand side of the statement defined by the `argsTemplate` function. +Note that each use of the same variable name will result in an increment being added to the declaration statement. For example, if the variable name `objectIDForTemp` is used two times the resulting declaration statements will use `objectIDForTemp` for the first declaration and `objectID2ForTemp` for the second declaration. The `add` method returns the incremented variable name, and is therefore what would be expected as the right-hand side of the statement defined by the `argsTemplate` function. The instance of the `DeclarationStore` constructed by the transpiler class is passed into the driver, syntax via state, for use: ```javascript (spec) => { - const comment = '// some comment' - const client = 'client, err := mongo.Connect(context.Background(), options.Client().ApplyURI(cs.String()))' - return "#{comment}\n\n#{client}\n\n${this.declarations.toString()}" -} + const comment = '// some comment'; + const client = + 'client, err := mongo.Connect(context.Background(), options.Client().ApplyURI(cs.String()))'; + return '#{comment}\n\n#{client}\n\n${this.declarations.toString()}'; +}; ``` ### Errors + There are a few different error classes thrown by `bson-transpilers`, each with their own error code: #### BsonTranspilersArgumentError + ###### code: E_BSONTRANSPILERS_ARGUMENT + This will occur when you're using a method with a wrong number of arguments, or the arguments are of the wrong type. For example, `ObjectId().equals()` requires one argument and it will throw if @@ -145,21 +158,25 @@ ObjectId(); ``` #### BsonTranspilersAttributeError + ###### code: E_BSONTRANSPILERS_ATTRIBUTE + Will be thrown if an invalid method or property is used on a BSON object. For example, since `new DBRef()` doesn't have a method `.foo()`, transpiler will throw: ```javascript // ✘: method foo doesn't exist, so this will throw a BsonTranspilersAttributeError . -new DBRef('newCollection', new ObjectId()).foo() +new DBRef('newCollection', new ObjectId()).foo(); // ✔: this won't throw, since .toString() method exists -new DBRef('newCollection', new ObjectId()).toString(10) +new DBRef('newCollection', new ObjectId()).toString(10); ``` #### BsonTranspilersSyntaxError + ###### code: E_BSONTRANSPILERS_SYNTAX + This will throw if you have a syntax error. For example missing a colon in Object assignment, or forgetting a comma in array definition: @@ -176,57 +193,70 @@ Object assignment, or forgetting a comma in array definition: ``` #### BsonTranspilersTypeError + ###### code: E_BSONTRANSPILERS_TYPE + This error will occur if a symbol is treated as the wrong type. For example, if a non-function is called: ```javascript // ✘: MAX_VALUE is a constant, not a function -Long.MAX_VALUE() +Long.MAX_VALUE(); // ✔: MAX_VALUE without a call will not throw -Long.MAX_VALUE +Long.MAX_VALUE; ``` + #### BsonTranspilersUnimplementedError + ###### code: E_BSONTRANSPILERS_UNIMPLEMENTED + If there is a feature in the input code that is not currently supported by the transpiler. #### BsonTranspilersRuntimeError + ###### code: E_BSONTRANSPILERS_RUNTIME + A generic runtime error will be thrown for all errors that are not covered by the above list of errors. These are usually constructor requirements, for example when using a `RegExp()` an unsupported flag is given: ```javascript // ✘: these are not proper 'RegExp()' flags, a BsonTranspilersRuntimeError will be thrown. -new RegExp('ab+c', 'beep') +new RegExp('ab+c', 'beep'); // ✔: 'im' are proper 'RegExp()' flags -new RegExp('ab+c', 'im') +new RegExp('ab+c', 'im'); ``` #### BsonTranspilersInternalError + ###### code: E_BSONTRANSPILERS_INTERNAL + In the case where something has gone wrong within compilation, and an error has occured. If you see this error, please create [an issue](https://github.com/mongodb-js/bson-transpilers/issues) on Github! # Install + ```shell npm install -S bson-transpilers ``` ## Contributing + Head over to the readme [on contributing](./CONTRIBUTING.md) to find out more information on project structure and setting up your environment. # Authors + - [aherlihy](https://github.com/aherlihy) - Anna Herlihy - [alenakhineika](https://github.com/alenakhineika) - Alena Khineika - [lrlna](github.com/lrlna) - Irina Shestak # License -[Apache-2.0](https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)) + +[Apache-2.0]() [1]: https://img.shields.io/npm/v/bson-transpilers.svg?style=flat-square [2]: https://npmjs.org/package/bson-transpilers diff --git a/packages/bson-transpilers/codegeneration/CodeGenerationVisitor.js b/packages/bson-transpilers/codegeneration/CodeGenerationVisitor.js index 9b0618afe48..9ab796234f6 100644 --- a/packages/bson-transpilers/codegeneration/CodeGenerationVisitor.js +++ b/packages/bson-transpilers/codegeneration/CodeGenerationVisitor.js @@ -7,7 +7,7 @@ const { BsonTranspilersReferenceError, BsonTranspilersRuntimeError, BsonTranspilersTypeError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../helper/error'); const { removeQuotes } = require('../helper/format'); @@ -21,859 +21,934 @@ const DeclarationStore = require('./DeclarationStore'); * @param {ANTLRVisitor} ANTLRVisitor - An ANTLR-generated visitor class * @returns {CodeGenerationVisitor} */ -module.exports = (ANTLRVisitor) => class CodeGenerationVisitor extends ANTLRVisitor { - constructor() { - super(); - this.idiomatic = true; // PUBLIC - this.clearImports(); - this.state = { declarations: new DeclarationStore() }; - } - - clearImports() { - this.requiredImports = {}; - [300, 301, 302, 303, 304, 305, 306].forEach( - (i) => (this.requiredImports[i] = []) - ); - } - - /** - * Start the compiler at this.startRule. - * - * "Return" methods are overridden only by the object generator. All - * generators or visitors that translate code to code should not need to - * override these methods. - * - * @param {ParserRuleContext} ctx - * @return {*} - */ - returnResult(ctx) { - const rule = `visit${this.startRule.replace(/^\w/, c => c.toUpperCase())}`; - if (!this.startRule || !(rule in this)) { - throw new BsonTranspilersInternalError( - 'Unimplemented Visitor: the entry rule for the compiler must be set' +module.exports = (ANTLRVisitor) => + class CodeGenerationVisitor extends ANTLRVisitor { + constructor() { + super(); + this.idiomatic = true; // PUBLIC + this.clearImports(); + this.state = { declarations: new DeclarationStore() }; + } + + clearImports() { + this.requiredImports = {}; + [300, 301, 302, 303, 304, 305, 306].forEach( + (i) => (this.requiredImports[i] = []) ); } - return this[rule](ctx); - } - - returnResultWithDeclarations(ctx) { - let result = this.returnResult(ctx); - if (this.getState().declarations.length() > 0) { - result = `${this.getState().declarations.toString() + '\n\n'}${result}`; - } - return result; - } - - /** - * PUBLIC: This is the entry point for the compiler. Each visitor must define - * an attribute called "startNode". - * - * @param {ParserRuleContext} ctx - * @param {Boolean} useDeclarations - prepend the result string with declarations - * @return {String} - */ - start(ctx, useDeclarations = false) { - return (useDeclarations ? this.returnResultWithDeclarations(ctx) : this.returnResult(ctx)).trim(); - } - - getState() { - return this.state; - } - - clearDeclarations() { - this.getState().declarations.clear(); - } - - /** - * PUBLIC: As code is generated, any classes that require imports are tracked - * in this.Imports. Each class has a "code" defined in the symbol table. - * The imports are then generated based on the output language templates. - * @param {String} mode - * @param {Boolean} driverSyntax (optional) - * @return {String} - The list of imports in the target language. - */ - getImports(mode, driverSyntax) { - const importTemplate = this.Imports.import.template ? - this.Imports.import.template : - (s) => ( - Object.values(s) - .filter((a, i) => (Object.values(s).indexOf(a) === i)) - .join('\n') - ); - // Remove empty arrays because js [] is not falsey :( - [300, 301, 302, 303, 304, 305, 306].forEach( - (i) => { + + /** + * Start the compiler at this.startRule. + * + * "Return" methods are overridden only by the object generator. All + * generators or visitors that translate code to code should not need to + * override these methods. + * + * @param {ParserRuleContext} ctx + * @return {*} + */ + returnResult(ctx) { + const rule = `visit${this.startRule.replace(/^\w/, (c) => + c.toUpperCase() + )}`; + if (!this.startRule || !(rule in this)) { + throw new BsonTranspilersInternalError( + 'Unimplemented Visitor: the entry rule for the compiler must be set' + ); + } + return this[rule](ctx); + } + + returnResultWithDeclarations(ctx) { + let result = this.returnResult(ctx); + if (this.getState().declarations.length() > 0) { + result = `${this.getState().declarations.toString() + '\n\n'}${result}`; + } + return result; + } + + /** + * PUBLIC: This is the entry point for the compiler. Each visitor must define + * an attribute called "startNode". + * + * @param {ParserRuleContext} ctx + * @param {Boolean} useDeclarations - prepend the result string with declarations + * @return {String} + */ + start(ctx, useDeclarations = false) { + return ( + useDeclarations + ? this.returnResultWithDeclarations(ctx) + : this.returnResult(ctx) + ).trim(); + } + + getState() { + return this.state; + } + + clearDeclarations() { + this.getState().declarations.clear(); + } + + /** + * PUBLIC: As code is generated, any classes that require imports are tracked + * in this.Imports. Each class has a "code" defined in the symbol table. + * The imports are then generated based on the output language templates. + * @param {String} mode + * @param {Boolean} driverSyntax (optional) + * @return {String} - The list of imports in the target language. + */ + getImports(mode, driverSyntax) { + const importTemplate = this.Imports.import.template + ? this.Imports.import.template + : (s) => + Object.values(s) + .filter((a, i) => Object.values(s).indexOf(a) === i) + .join('\n'); + // Remove empty arrays because js [] is not falsey :( + [300, 301, 302, 303, 304, 305, 306].forEach((i) => { if (i in this.requiredImports && this.requiredImports[i].length === 0) { this.requiredImports[i] = false; } }); - this.requiredImports.driver = !!driverSyntax; - const imports = {}; - for (const code of Object.keys(this.requiredImports)) { - if ( - this.requiredImports[code] && - this.Imports[code] && - this.Imports[code].template - ) { - imports[code] = this.Imports[code].template(this.requiredImports[code], mode); - } - } - return importTemplate(imports); - } - - /** - * Used by the generators. Makes a copy of the required imports so - * can be rolled back after a recursion if needed. - * - * @return {Object} - */ - deepCopyRequiredImports() { - const copy = Object.assign({}, this.requiredImports); - [300, 301, 302, 303, 304, 305, 306].forEach((i) => { - copy[i] = Array.from(this.requiredImports[i]); - }); - return copy; - } - - /** - * If the compiler reaches a expression in the input language - * that is not implemented yet. - * - * @param {ParserRuleContext} ctx - */ - unimplemented(ctx) { - const name = this.renameNode(ctx.constructor.name); - throw new BsonTranspilersUnimplementedError( - `'${name}' not yet implemented` - ); - } - - /** - * Some grammar definitions are written so that comparisons will chain and add - * nodes with a single child when the expression does *not* match. This is a - * helper method (right now used just by Python) that skips nodes downwards - * until a node with multiple children is found, or a node matches "goal". - * - * @param {ParserRuleContext} ctx - * @param {String} goal - Optional: the name of the child to find. - * @return {ParserRuleContext} - */ - skipFakeNodesDown(ctx, goal) { /* eslint no-unused-vars: 0 */ - return ctx; - } - - _getType(ctx) { - if (ctx.type !== undefined) { + this.requiredImports.driver = !!driverSyntax; + const imports = {}; + for (const code of Object.keys(this.requiredImports)) { + if ( + this.requiredImports[code] && + this.Imports[code] && + this.Imports[code].template + ) { + imports[code] = this.Imports[code].template( + this.requiredImports[code], + mode + ); + } + } + return importTemplate(imports); + } + + /** + * Used by the generators. Makes a copy of the required imports so + * can be rolled back after a recursion if needed. + * + * @return {Object} + */ + deepCopyRequiredImports() { + const copy = Object.assign({}, this.requiredImports); + [300, 301, 302, 303, 304, 305, 306].forEach((i) => { + copy[i] = Array.from(this.requiredImports[i]); + }); + return copy; + } + + /** + * If the compiler reaches a expression in the input language + * that is not implemented yet. + * + * @param {ParserRuleContext} ctx + */ + unimplemented(ctx) { + const name = this.renameNode(ctx.constructor.name); + throw new BsonTranspilersUnimplementedError( + `'${name}' not yet implemented` + ); + } + + /** + * Some grammar definitions are written so that comparisons will chain and add + * nodes with a single child when the expression does *not* match. This is a + * helper method (right now used just by Python) that skips nodes downwards + * until a node with multiple children is found, or a node matches "goal". + * + * @param {ParserRuleContext} ctx + * @param {String} goal - Optional: the name of the child to find. + * @return {ParserRuleContext} + */ + skipFakeNodesDown(ctx, goal) { + /* eslint no-unused-vars: 0 */ return ctx; } - if (!ctx.children) { + + _getType(ctx) { + if (ctx.type !== undefined) { + return ctx; + } + if (!ctx.children) { + return null; + } + for (const c of ctx.children) { + const typed = this._getType(c); + if (typed) { + return typed; + } + } return null; } - for (const c of ctx.children) { - const typed = this._getType(c); - if (typed) { - return typed; - } - } - return null; - } - - /** - * Recursively descend down the tree looking for a node with the type set. - * Returns the first child node with a type set. - * - * @param {ParserRuleContext} ctx - * @return {ParserRuleContext} - */ - findTypedNode(ctx) { - const typed = this._getType(ctx); - if (!typed) { - throw new BsonTranspilersInternalError('Type not set on any child nodes'); - } - return typed; - } - - /** - * Get the 'originalType' of ctx, of if it's undefined, keep checking parent - * nodes until an original type is found. Otherwise null. - * - * @param {ParserRuleContext} ctx - * @return {ParserRuleContext} - */ - getParentOriginalType(ctx) { - if (ctx.originalType !== undefined) { - return ctx.originalType; - } - if (ctx.parentCtx) { - return this.getParentOriginalType(ctx.parentCtx); - } - return null; - } - - compareTypes(expectedType, type, ctx, result) { - // If the types are exactly the same, just return. - if (expectedType.indexOf(type) !== -1 || - expectedType.indexOf(type.id) !== -1) { - return result; + + /** + * Recursively descend down the tree looking for a node with the type set. + * Returns the first child node with a type set. + * + * @param {ParserRuleContext} ctx + * @return {ParserRuleContext} + */ + findTypedNode(ctx) { + const typed = this._getType(ctx); + if (!typed) { + throw new BsonTranspilersInternalError( + 'Type not set on any child nodes' + ); + } + return typed; + } + + /** + * Get the 'originalType' of ctx, of if it's undefined, keep checking parent + * nodes until an original type is found. Otherwise null. + * + * @param {ParserRuleContext} ctx + * @return {ParserRuleContext} + */ + getParentOriginalType(ctx) { + if (ctx.originalType !== undefined) { + return ctx.originalType; + } + if (ctx.parentCtx) { + return this.getParentOriginalType(ctx.parentCtx); + } + return null; } - const numericTypes = [ - this.Types._integer, this.Types._decimal, this.Types._hex, - this.Types._octal, this.Types._long - ]; - // If both expected and node are numeric literals, cast + return - for (let i = 0; i < expectedType.length; i++) { - if (numericTypes.indexOf(type) !== -1 && - numericTypes.indexOf(expectedType[i]) !== -1) { - // Need to visit the octal node always - if (type.id === '_octal') { - return this.leafHelper( - expectedType[i], - { + compareTypes(expectedType, type, ctx, result) { + // If the types are exactly the same, just return. + if ( + expectedType.indexOf(type) !== -1 || + expectedType.indexOf(type.id) !== -1 + ) { + return result; + } + + const numericTypes = [ + this.Types._integer, + this.Types._decimal, + this.Types._hex, + this.Types._octal, + this.Types._long, + ]; + // If both expected and node are numeric literals, cast + return + for (let i = 0; i < expectedType.length; i++) { + if ( + numericTypes.indexOf(type) !== -1 && + numericTypes.indexOf(expectedType[i]) !== -1 + ) { + // Need to visit the octal node always + if (type.id === '_octal') { + return this.leafHelper(expectedType[i], { type: expectedType[i], originalType: type.id, - getText: () => ( this.visit(ctx) ) - } - ); + getText: () => this.visit(ctx), + }); + } + const child = this.skipFakeNodesDown(ctx); + child.originalType = type; + child.type = expectedType[i]; + return this.leafHelper(expectedType[i], child); } - const child = this.skipFakeNodesDown(ctx); - child.originalType = type; - child.type = expectedType[i]; - return this.leafHelper(expectedType[i], child); } - } - // If the expected type is "numeric", accept the number basic & bson types - if (expectedType.indexOf(this.Types._numeric) !== -1 && - (numericTypes.indexOf(type) !== -1 || (type.code === 106 || - type.code === 105 || type.code === 104))) { - return result; - } - // If the expected type is any number, accept float/int/_numeric - if ((numericTypes.some((t) => ( expectedType.indexOf(t) !== -1))) && - (type.code === 106 || type.code === 105 || type.code === 104 || - type === this.Types._numeric)) { - return result; - } - return null; - } - - /** - * Convert between numeric types. Required so that we don't end up with - * strange conversions like 'Int32(Double(2))', and can just generate '2'. - * - * @param {Array} expectedType - types to cast to. - * @param {ParserRuleContext} ctx - ctx to cast from, if valid. - * - * @returns {String} - visited result, or null on error. - */ - castType(expectedType, ctx) { - const result = this.visit(ctx); - const typedCtx = this.findTypedNode(ctx); - let type = typedCtx.type; - - let equal = this.compareTypes(expectedType, type, ctx, result); - while (equal === null) { - if (type.type === null) { - return null; + // If the expected type is "numeric", accept the number basic & bson types + if ( + expectedType.indexOf(this.Types._numeric) !== -1 && + (numericTypes.indexOf(type) !== -1 || + type.code === 106 || + type.code === 105 || + type.code === 104) + ) { + return result; } - type = type.type; - equal = this.compareTypes(expectedType, type, ctx, result); - } - return equal; - } - - /** - * Validate each argument against the expected argument types defined in the - * Symbol table. - * - * @param {Array} expected - An array of arrays where each subarray represents - * possible argument types for that index. - * @param {Array} args - empty if no args. - * @param {String} name - The name of the function for error reporting. - * @param {Object} namedArgs - Optional: if named arguments exist, this is the - * mapping of name to default value. - * - * @returns {Array} - Array containing the generated output for each argument. - */ - checkArguments(expected, args, name, namedArgs) { - const argStr = []; - if (args.length === 0) { - if (expected.length === 0 || expected[0].indexOf(null) !== -1) { - return argStr; - } - throw new BsonTranspilersArgumentError( - `Argument count mismatch: '${name}' requires least one argument` - ); - } - if (args.length > expected.length) { - throw new BsonTranspilersArgumentError( - `Argument count mismatch: '${name}' expects ${ - expected.length} args and got ${args.length}` - ); + // If the expected type is any number, accept float/int/_numeric + if ( + numericTypes.some((t) => expectedType.indexOf(t) !== -1) && + (type.code === 106 || + type.code === 105 || + type.code === 104 || + type === this.Types._numeric) + ) { + return result; + } + return null; } - for (let i = 0; i < expected.length; i++) { - if (args[i] === undefined) { - if (expected[i].indexOf(null) !== -1) { + + /** + * Convert between numeric types. Required so that we don't end up with + * strange conversions like 'Int32(Double(2))', and can just generate '2'. + * + * @param {Array} expectedType - types to cast to. + * @param {ParserRuleContext} ctx - ctx to cast from, if valid. + * + * @returns {String} - visited result, or null on error. + */ + castType(expectedType, ctx) { + const result = this.visit(ctx); + const typedCtx = this.findTypedNode(ctx); + let type = typedCtx.type; + + let equal = this.compareTypes(expectedType, type, ctx, result); + while (equal === null) { + if (type.type === null) { + return null; + } + type = type.type; + equal = this.compareTypes(expectedType, type, ctx, result); + } + return equal; + } + + /** + * Validate each argument against the expected argument types defined in the + * Symbol table. + * + * @param {Array} expected - An array of arrays where each subarray represents + * possible argument types for that index. + * @param {Array} args - empty if no args. + * @param {String} name - The name of the function for error reporting. + * @param {Object} namedArgs - Optional: if named arguments exist, this is the + * mapping of name to default value. + * + * @returns {Array} - Array containing the generated output for each argument. + */ + checkArguments(expected, args, name, namedArgs) { + const argStr = []; + if (args.length === 0) { + if (expected.length === 0 || expected[0].indexOf(null) !== -1) { return argStr; } throw new BsonTranspilersArgumentError( - `Argument count mismatch: too few arguments passed to '${name}'` + `Argument count mismatch: '${name}' requires least one argument` ); } - - const toCompare = this.checkNamedArgs(expected[i], args[i], namedArgs); - const result = this.castType(...toCompare); - if (result === null) { - const typeStr = expected[i].map((e) => { - const id = e && e.id ? e.id : e; - return e ? id : '[optional]'; - }).join(', '); - const message = `Argument type mismatch: '${name}' expects types ${ - typeStr} but got type ${this.findTypedNode(args[i]).type.id - } for argument at index ${i}`; - - throw new BsonTranspilersArgumentError(message); - } - argStr.push(result); - } - return argStr; - } - - /* - * Overriden only by the object generator. - */ - returnFunctionCallLhs(code, name) { - return name; - } - returnFunctionCallLhsRhs(lhs, rhs, lhsType, l) { - if (lhsType.argsTemplate) { - rhs = lhsType.argsTemplate.bind(this.getState())(l, ...rhs); - } else { - rhs = `(${rhs.join(', ')})`; - } - return `${lhs}${rhs}`; - } - - returnAttributeAccess(lhs, rhs, type) { - if (type && type.attr[rhs].template) { - return type.attr[rhs].template(lhs, rhs); - } - return `${lhs}.${rhs}`; - } - returnParenthesis(expr) { - return `(${expr})`; - } - returnSet(args, ctx) { - return this.visitChildren(ctx); - } - - /** - * Generate a function call, diverting to process or emit methods if they - * exist. - * @param {ParserRuleContext} ctx - * @return {*} - */ - generateFunctionCall(ctx) { - const funcNameNode = this.getFunctionCallName(ctx); - const lhs = this.visit(funcNameNode); - let l = lhs; - let lhsType = this.findTypedNode(funcNameNode).type; - if (typeof lhsType === 'string') { - lhsType = this.Types[lhsType]; - } - - // Special case - if (`process${lhsType.id}` in this) { - return this[`process${lhsType.id}`](ctx); - } - if (`emit${lhsType.id}` in this) { - return this[`emit${lhsType.id}`](ctx); - } - - // Check if left-hand-side is callable - ctx.type = lhsType.type; - if (!lhsType.callable) { - throw new BsonTranspilersTypeError(`${lhsType.id} is not callable`); - } - - // Check arguments - const expectedArgs = lhsType.args; - const rhs = this.checkArguments( - expectedArgs, this.getArguments(ctx), lhsType.id, lhsType.namedArgs - ); - - // Apply the arguments template - if (lhsType.argsTemplate) { - l = this.visit(this.getIfIdentifier(funcNameNode)); - } - const expr = this.returnFunctionCallLhsRhs(lhs, rhs, lhsType, l); - const constructor = lhsType.callable === this.SYMBOL_TYPE.CONSTRUCTOR; - - return this.Syntax.new.template - ? this.Syntax.new.template(expr, !constructor, lhsType.code) - : expr; - } - - /** - * Visit a symbol and error if undefined. Otherwise check symbol table and - * replace if template exists. - * - * @param {ParserRuleContext} ctx - * @return {*} - */ - generateIdentifier(ctx) { - const name = this.visitChildren(ctx); - ctx.type = this.Symbols[name]; - if (ctx.type === undefined) { - throw new BsonTranspilersReferenceError(`Symbol '${name}' is undefined`); - } - this.requiredImports[ctx.type.code] = true; - - if (ctx.type.template) { - return ctx.type.template(); - } - return this.returnFunctionCallLhs(ctx.type.code, name); - } - - /** - * Generate attribute access. Visitors are in charge of making sure that - * if lhs type attribute access is not supported, an error is thrown. - * - * NOTE: If the attribute isn't defined on the lhsType, then it will check the - * lhsType.type to see if defined. It will loop, checking the lhs type's type, - * until the attribute exists or the .type is null. If the type is null, - * and the class is a BSON class, then error. If it is a native type however, - * do not error and just return the original attribute. This is to not annoy - * people with attribute errors in languages where it wouldn't throw anyway. - * It feels better to be strict about BSON than the whole language, but it's - * up for debate. TODO: could set type checking to 'strict' or 'non-strict' in - * the visitor, and then only error if we are compiling from a strictly typed - * language. - * - * @param {ParserRuleContext} ctx - * @return {*} - */ - generateAttributeAccess(ctx) { - if ('emitAttributeAccess' in this) { - return this.emitAttributeAccess(ctx); - } - const lhsNode = this.getAttributeLHS(ctx); - const lhs = this.visit(lhsNode); - const rhs = this.getAttributeRHS(ctx).getText(); - - let type = this.findTypedNode(lhsNode).type; - if (typeof type === 'string') { - type = this.Types[type]; - } - while (type !== null) { - if (!(Object.prototype.hasOwnProperty.call(type.attr, rhs))) { - if (type.id in this.BsonTypes && this.BsonTypes[type.id].id !== null) { // TODO: tell symbols vs types - throw new BsonTranspilersAttributeError( - `'${rhs}' not an attribute of ${type.id}` + if (args.length > expected.length) { + throw new BsonTranspilersArgumentError( + `Argument count mismatch: '${name}' expects ${expected.length} args and got ${args.length}` + ); + } + for (let i = 0; i < expected.length; i++) { + if (args[i] === undefined) { + if (expected[i].indexOf(null) !== -1) { + return argStr; + } + throw new BsonTranspilersArgumentError( + `Argument count mismatch: too few arguments passed to '${name}'` ); } - type = type.type; - if (typeof type === 'string') { - type = this.Types[type]; + + const toCompare = this.checkNamedArgs(expected[i], args[i], namedArgs); + const result = this.castType(...toCompare); + if (result === null) { + const typeStr = expected[i] + .map((e) => { + const id = e && e.id ? e.id : e; + return e ? id : '[optional]'; + }) + .join(', '); + const message = `Argument type mismatch: '${name}' expects types ${typeStr} but got type ${ + this.findTypedNode(args[i]).type.id + } for argument at index ${i}`; + + throw new BsonTranspilersArgumentError(message); } + argStr.push(result); + } + return argStr; + } + + /* + * Overriden only by the object generator. + */ + returnFunctionCallLhs(code, name) { + return name; + } + returnFunctionCallLhsRhs(lhs, rhs, lhsType, l) { + if (lhsType.argsTemplate) { + rhs = lhsType.argsTemplate.bind(this.getState())(l, ...rhs); } else { - break; + rhs = `(${rhs.join(', ')})`; } + return `${lhs}${rhs}`; } - if (type === null) { - ctx.type = this.Types._undefined; - // TODO: how strict do we want to be? + + returnAttributeAccess(lhs, rhs, type) { + if (type && type.attr[rhs].template) { + return type.attr[rhs].template(lhs, rhs); + } + return `${lhs}.${rhs}`; + } + returnParenthesis(expr) { + return `(${expr})`; + } + returnSet(args, ctx) { + return this.visitChildren(ctx); + } + + /** + * Generate a function call, diverting to process or emit methods if they + * exist. + * @param {ParserRuleContext} ctx + * @return {*} + */ + generateFunctionCall(ctx) { + const funcNameNode = this.getFunctionCallName(ctx); + const lhs = this.visit(funcNameNode); + let l = lhs; + let lhsType = this.findTypedNode(funcNameNode).type; + if (typeof lhsType === 'string') { + lhsType = this.Types[lhsType]; + } + + // Special case + if (`process${lhsType.id}` in this) { + return this[`process${lhsType.id}`](ctx); + } + if (`emit${lhsType.id}` in this) { + return this[`emit${lhsType.id}`](ctx); + } + + // Check if left-hand-side is callable + ctx.type = lhsType.type; + if (!lhsType.callable) { + throw new BsonTranspilersTypeError(`${lhsType.id} is not callable`); + } + + // Check arguments + const expectedArgs = lhsType.args; + const rhs = this.checkArguments( + expectedArgs, + this.getArguments(ctx), + lhsType.id, + lhsType.namedArgs + ); + + // Apply the arguments template + if (lhsType.argsTemplate) { + l = this.visit(this.getIfIdentifier(funcNameNode)); + } + const expr = this.returnFunctionCallLhsRhs(lhs, rhs, lhsType, l); + const constructor = lhsType.callable === this.SYMBOL_TYPE.CONSTRUCTOR; + + return this.Syntax.new.template + ? this.Syntax.new.template(expr, !constructor, lhsType.code) + : expr; + } + + /** + * Visit a symbol and error if undefined. Otherwise check symbol table and + * replace if template exists. + * + * @param {ParserRuleContext} ctx + * @return {*} + */ + generateIdentifier(ctx) { + const name = this.visitChildren(ctx); + ctx.type = this.Symbols[name]; + if (ctx.type === undefined) { + throw new BsonTranspilersReferenceError( + `Symbol '${name}' is undefined` + ); + } + this.requiredImports[ctx.type.code] = true; + + if (ctx.type.template) { + return ctx.type.template(); + } + return this.returnFunctionCallLhs(ctx.type.code, name); + } + + /** + * Generate attribute access. Visitors are in charge of making sure that + * if lhs type attribute access is not supported, an error is thrown. + * + * NOTE: If the attribute isn't defined on the lhsType, then it will check the + * lhsType.type to see if defined. It will loop, checking the lhs type's type, + * until the attribute exists or the .type is null. If the type is null, + * and the class is a BSON class, then error. If it is a native type however, + * do not error and just return the original attribute. This is to not annoy + * people with attribute errors in languages where it wouldn't throw anyway. + * It feels better to be strict about BSON than the whole language, but it's + * up for debate. TODO: could set type checking to 'strict' or 'non-strict' in + * the visitor, and then only error if we are compiling from a strictly typed + * language. + * + * @param {ParserRuleContext} ctx + * @return {*} + */ + generateAttributeAccess(ctx) { + if ('emitAttributeAccess' in this) { + return this.emitAttributeAccess(ctx); + } + const lhsNode = this.getAttributeLHS(ctx); + const lhs = this.visit(lhsNode); + const rhs = this.getAttributeRHS(ctx).getText(); + + let type = this.findTypedNode(lhsNode).type; + if (typeof type === 'string') { + type = this.Types[type]; + } + while (type !== null) { + if (!Object.prototype.hasOwnProperty.call(type.attr, rhs)) { + if ( + type.id in this.BsonTypes && + this.BsonTypes[type.id].id !== null + ) { + // TODO: tell symbols vs types + throw new BsonTranspilersAttributeError( + `'${rhs}' not an attribute of ${type.id}` + ); + } + type = type.type; + if (typeof type === 'string') { + type = this.Types[type]; + } + } else { + break; + } + } + if (type === null) { + ctx.type = this.Types._undefined; + // TODO: how strict do we want to be? + return this.returnAttributeAccess(lhs, rhs, type); + } + ctx.type = type.attr[rhs]; return this.returnAttributeAccess(lhs, rhs, type); } - ctx.type = type.attr[rhs]; - return this.returnAttributeAccess(lhs, rhs, type); - } - - /** - * This helper function checks for an emit method then applies the templates - * if they exist for a function call node. Used primarily by process methods. - * - * @param {ParserRuleContext} ctx - The function call node - * @param {Object} lhsType - The type - * @param {Array} args - Arguments to the template - * @param {String} defaultT - The default name if no template exists. - * @param {String} defaultA - The default arguments if no argsTemplate exists. - * @param {Boolean} skipNew - Optional: If true, never add new. - * @param {Boolean} skipLhs - Optional: If true, don't add lhs to result. - * - * @return {*} - */ - generateCall(ctx, lhsType, args, defaultT, defaultA, skipNew, skipLhs) { - if (`emit${lhsType.id}` in this) { - return this[`emit${lhsType.id}`](ctx); - } - const lhsArg = lhsType.template - ? lhsType.template() - : defaultT; - const rhs = lhsType.argsTemplate - ? lhsType.argsTemplate.bind(this.getState())(lhsArg, ...args) - : defaultA; - const lhs = skipLhs ? '' : lhsArg; - return this.Syntax.new.template - ? this.Syntax.new.template(`${lhs}${rhs}`, skipNew, lhsType.code) - : `${lhs}${rhs}`; - } - - generateObjectLiteral(ctx) { - if (this.idiomatic && 'emitIdiomaticObjectLiteral' in this) { - return this.emitIdiomaticObjectLiteral(ctx); - } - const type = this.Types._object; - if (`emit${type.id}` in this) { - return this[`emit${type.id}`](ctx); - } - ctx.type = type; - this.requiredImports[10] = true; - ctx.indentDepth = this.findIndentDepth(ctx) + 1; - let args = ''; - const keysAndValues = this.getKeyValueList(ctx); - if (ctx.type.argsTemplate) { - args = ctx.type.argsTemplate.bind(this.getState())( - this.getKeyValueList(ctx).map((k) => { - return [this.getKeyStr(k), this.visit(this.getValue(k))]; - }), - ctx.indentDepth); - } else { - args = this.visit(keysAndValues); - } - ctx.indentDepth--; - if (ctx.type.template) { - return ctx.type.template.bind(this.getState())(args, ctx.indentDepth); - } - return this.visitChildren(ctx); - } - - generateArrayLiteral(ctx) { - const type = this.Types._array; - if (`emit${type.id}` in this) { - return this[`emit${type.id}`](ctx); - } - ctx.type = type; - ctx.indentDepth = this.findIndentDepth(ctx) + 1; - this.requiredImports[9] = true; - let args = ''; - const list = this.getList(ctx); - const visitedElements = list.map((child) => ( this.visit(child) )); - if (ctx.type.argsTemplate) { // NOTE: not currently being used anywhere. - args = visitedElements.map((arg, index) => { - const last = !visitedElements[index + 1]; - return ctx.type.argsTemplate.bind(this.getState())(arg, ctx.indentDepth, last); - }).join(''); - } else { - args = visitedElements.join(', '); - } - if (ctx.type.template) { - return ctx.type.template(args, ctx.indentDepth); - } - return this.visitChildren(ctx); - } - - /** - * Called from the process methods of numeric class constructors. - * We know there will be a single (sometimes optional) argument that is - * a number or string. - * - * Required because we want to pass the argument type to the template - * so that we can determine if the generated number needs to be parsed or - * casted. - * - * @param {ParserRuleContext} ctx - * @returns {String} - */ - generateNumericClass(ctx) { - const funcNameNode = this.getFunctionCallName(ctx); - const lhsStr = this.visit(funcNameNode); - let lhsType = this.findTypedNode(funcNameNode).type; - if (typeof lhsType === 'string') { - lhsType = this.Types[lhsType]; - } - ctx.type = lhsType.type; - if (`emit${lhsType.id}` in this) { - this[`emit${lhsType.id}`](ctx); - } - - // Get the original type of the argument - const expectedArgs = lhsType.args; - let args = this.checkArguments( - expectedArgs, this.getArguments(ctx), lhsType.id, lhsType.namedArgs - ); - let argType; - - if (args.length === 0) { - args = ['0']; - argType = this.Types._integer; - } else { - const argNode = this.getArgumentAt(ctx, 0); - const typed = this.findTypedNode(argNode); - argType = typed.originalType !== undefined ? - typed.originalType : - typed.type; - } - - return this.generateCall( - ctx, lhsType, [args[0], argType.id], lhsStr, `(${args.join(', ')})` - ); - } - - /** - * Same as generateCall but for type literals instead of function calls. - * - * @param {ParserRuleContext} ctx - The literal node - * @param {Object} lhsType - The type - * @param {Array} args - Arguments to the template - * @param {String} defaultT - The default if no template exists. - * @param {Boolean} skipNew - Optional: If true, never add new. - * - * @return {*} - */ - generateLiteral(ctx, lhsType, args, defaultT, skipNew) { - if (`emit${lhsType.id}` in this) { - return this[`emit${lhsType.id}`](ctx); - } - if (lhsType.template) { - const str = lhsType.template(...args); + + /** + * This helper function checks for an emit method then applies the templates + * if they exist for a function call node. Used primarily by process methods. + * + * @param {ParserRuleContext} ctx - The function call node + * @param {Object} lhsType - The type + * @param {Array} args - Arguments to the template + * @param {String} defaultT - The default name if no template exists. + * @param {String} defaultA - The default arguments if no argsTemplate exists. + * @param {Boolean} skipNew - Optional: If true, never add new. + * @param {Boolean} skipLhs - Optional: If true, don't add lhs to result. + * + * @return {*} + */ + generateCall(ctx, lhsType, args, defaultT, defaultA, skipNew, skipLhs) { + if (`emit${lhsType.id}` in this) { + return this[`emit${lhsType.id}`](ctx); + } + const lhsArg = lhsType.template ? lhsType.template() : defaultT; + const rhs = lhsType.argsTemplate + ? lhsType.argsTemplate.bind(this.getState())(lhsArg, ...args) + : defaultA; + const lhs = skipLhs ? '' : lhsArg; return this.Syntax.new.template - ? this.Syntax.new.template(str, skipNew, lhsType.code) - : str; - } - return defaultT; - } - - /** - * Helper method for generating literals. Called from the visit methods for - * literal nodes. - * - * @param {Object} setType - the type to set the literal to. - * @param {ParserRuleContext} ctx - the tree node. - * @return {*} - */ - leafHelper(setType, ctx) { - ctx.type = setType; - this.requiredImports[ctx.type.code] = true; - - // Pass the original argument type to the template, not the casted type. - const parentOriginalType = this.getParentOriginalType(ctx); - const type = parentOriginalType === null ? ctx.type : parentOriginalType; - - if (`process${ctx.type.id}` in this) { - return this[`process${ctx.type.id}`](ctx); - } - if (`emit${ctx.type.id}` in this) { - return this[`emit${ctx.type.id}`](ctx); - } - const children = ctx.getText(); - return this.generateLiteral(ctx, ctx.type, [children, type.id], children, true); - } - - findIndentDepth(ctx) { - while (ctx.indentDepth === undefined) { - ctx = ctx.parentCtx; - if (ctx === undefined || ctx === null) { - return -1; - } - } - return ctx.indentDepth; - } - - /** - * Process required for BSON regex types so we can validate the flags. - * - * @param {ParserRuleContext} ctx - * @param {Object} type - The type of the LHS - * @param {Object} symbolType - The type of the Symbol - * @return {*} - */ - generateBSONRegex(ctx, type, symbolType) { - if (`emit${type.id}` in this) { - return this[`emit${type.id}`](ctx); - } - ctx.type = type; - - const args = this.checkArguments( - symbolType.args, this.getArguments(ctx), type.id, symbolType.namedArgs - ); - - const expectedFlags = this.Syntax.bsonRegexFlags - ? this.Syntax.bsonRegexFlags - : { i: 'i', m: 'm', x: 'x', s: 's', l: 'l', u: 'u' }; - - let flags = null; - const pattern = args[0]; - if (args.length === 2) { - flags = args[1]; - for (let i = 1; i < flags.length - 1; i++) { - if (!(flags[i] in expectedFlags)) { - throw new BsonTranspilersRuntimeError( - `Invalid flag '${flags[i]}' passed to Regexp` - ); + ? this.Syntax.new.template(`${lhs}${rhs}`, skipNew, lhsType.code) + : `${lhs}${rhs}`; + } + + generateObjectLiteral(ctx) { + if (this.idiomatic && 'emitIdiomaticObjectLiteral' in this) { + return this.emitIdiomaticObjectLiteral(ctx); + } + const type = this.Types._object; + if (`emit${type.id}` in this) { + return this[`emit${type.id}`](ctx); + } + ctx.type = type; + this.requiredImports[10] = true; + ctx.indentDepth = this.findIndentDepth(ctx) + 1; + let args = ''; + const keysAndValues = this.getKeyValueList(ctx); + if (ctx.type.argsTemplate) { + args = ctx.type.argsTemplate.bind(this.getState())( + this.getKeyValueList(ctx).map((k) => { + return [this.getKeyStr(k), this.visit(this.getValue(k))]; + }), + ctx.indentDepth + ); + } else { + args = this.visit(keysAndValues); + } + ctx.indentDepth--; + if (ctx.type.template) { + return ctx.type.template.bind(this.getState())(args, ctx.indentDepth); + } + return this.visitChildren(ctx); + } + + generateArrayLiteral(ctx) { + const type = this.Types._array; + if (`emit${type.id}` in this) { + return this[`emit${type.id}`](ctx); + } + ctx.type = type; + ctx.indentDepth = this.findIndentDepth(ctx) + 1; + this.requiredImports[9] = true; + let args = ''; + const list = this.getList(ctx); + const visitedElements = list.map((child) => this.visit(child)); + if (ctx.type.argsTemplate) { + // NOTE: not currently being used anywhere. + args = visitedElements + .map((arg, index) => { + const last = !visitedElements[index + 1]; + return ctx.type.argsTemplate.bind(this.getState())( + arg, + ctx.indentDepth, + last + ); + }) + .join(''); + } else { + args = visitedElements.join(', '); + } + if (ctx.type.template) { + return ctx.type.template(args, ctx.indentDepth); + } + return this.visitChildren(ctx); + } + + /** + * Called from the process methods of numeric class constructors. + * We know there will be a single (sometimes optional) argument that is + * a number or string. + * + * Required because we want to pass the argument type to the template + * so that we can determine if the generated number needs to be parsed or + * casted. + * + * @param {ParserRuleContext} ctx + * @returns {String} + */ + generateNumericClass(ctx) { + const funcNameNode = this.getFunctionCallName(ctx); + const lhsStr = this.visit(funcNameNode); + let lhsType = this.findTypedNode(funcNameNode).type; + if (typeof lhsType === 'string') { + lhsType = this.Types[lhsType]; + } + ctx.type = lhsType.type; + if (`emit${lhsType.id}` in this) { + this[`emit${lhsType.id}`](ctx); + } + + // Get the original type of the argument + const expectedArgs = lhsType.args; + let args = this.checkArguments( + expectedArgs, + this.getArguments(ctx), + lhsType.id, + lhsType.namedArgs + ); + let argType; + + if (args.length === 0) { + args = ['0']; + argType = this.Types._integer; + } else { + const argNode = this.getArgumentAt(ctx, 0); + const typed = this.findTypedNode(argNode); + argType = + typed.originalType !== undefined ? typed.originalType : typed.type; + } + + return this.generateCall( + ctx, + lhsType, + [args[0], argType.id], + lhsStr, + `(${args.join(', ')})` + ); + } + + /** + * Same as generateCall but for type literals instead of function calls. + * + * @param {ParserRuleContext} ctx - The literal node + * @param {Object} lhsType - The type + * @param {Array} args - Arguments to the template + * @param {String} defaultT - The default if no template exists. + * @param {Boolean} skipNew - Optional: If true, never add new. + * + * @return {*} + */ + generateLiteral(ctx, lhsType, args, defaultT, skipNew) { + if (`emit${lhsType.id}` in this) { + return this[`emit${lhsType.id}`](ctx); + } + if (lhsType.template) { + const str = lhsType.template(...args); + return this.Syntax.new.template + ? this.Syntax.new.template(str, skipNew, lhsType.code) + : str; + } + return defaultT; + } + + /** + * Helper method for generating literals. Called from the visit methods for + * literal nodes. + * + * @param {Object} setType - the type to set the literal to. + * @param {ParserRuleContext} ctx - the tree node. + * @return {*} + */ + leafHelper(setType, ctx) { + ctx.type = setType; + this.requiredImports[ctx.type.code] = true; + + // Pass the original argument type to the template, not the casted type. + const parentOriginalType = this.getParentOriginalType(ctx); + const type = parentOriginalType === null ? ctx.type : parentOriginalType; + + if (`process${ctx.type.id}` in this) { + return this[`process${ctx.type.id}`](ctx); + } + if (`emit${ctx.type.id}` in this) { + return this[`emit${ctx.type.id}`](ctx); + } + const children = ctx.getText(); + return this.generateLiteral( + ctx, + ctx.type, + [children, type.id], + children, + true + ); + } + + findIndentDepth(ctx) { + while (ctx.indentDepth === undefined) { + ctx = ctx.parentCtx; + if (ctx === undefined || ctx === null) { + return -1; } } - flags = flags.replace(/[imxlsu]/g, m => expectedFlags[m]); - } - - return this.generateCall( - ctx, symbolType, [pattern, flags], 'Regex', - `(${pattern}${flags ? ', ' + flags : ''})` - ); - } - - /** - * Code is processed in every language because want to generate the scope as - * a non-idiomatic document. - * - * @param {ParserRuleContext} ctx - * @param {Object} type - The type of the LHS - * @param {Object} symbolType - The type of the Symbol - * @param {boolean} requireString - if the code argument must be a string. - * @return {*} - */ - generateBSONCode(ctx, type, symbolType, requireString) { - if (`emit${type.id}` in this) { - return this[`emit${type.id}`](ctx); - } - ctx.type = type; - const argList = this.getArguments(ctx); - if (!(argList.length === 1 || argList.length === 2)) { - throw new BsonTranspilersArgumentError( - 'Argument count mismatch: Code requires one or two arguments' + return ctx.indentDepth; + } + + /** + * Process required for BSON regex types so we can validate the flags. + * + * @param {ParserRuleContext} ctx + * @param {Object} type - The type of the LHS + * @param {Object} symbolType - The type of the Symbol + * @return {*} + */ + generateBSONRegex(ctx, type, symbolType) { + if (`emit${type.id}` in this) { + return this[`emit${type.id}`](ctx); + } + ctx.type = type; + + const args = this.checkArguments( + symbolType.args, + this.getArguments(ctx), + type.id, + symbolType.namedArgs + ); + + const expectedFlags = this.Syntax.bsonRegexFlags + ? this.Syntax.bsonRegexFlags + : { i: 'i', m: 'm', x: 'x', s: 's', l: 'l', u: 'u' }; + + let flags = null; + const pattern = args[0]; + if (args.length === 2) { + flags = args[1]; + for (let i = 1; i < flags.length - 1; i++) { + if (!(flags[i] in expectedFlags)) { + throw new BsonTranspilersRuntimeError( + `Invalid flag '${flags[i]}' passed to Regexp` + ); + } + } + flags = flags.replace(/[imxlsu]/g, (m) => expectedFlags[m]); + } + + return this.generateCall( + ctx, + symbolType, + [pattern, flags], + 'Regex', + `(${pattern}${flags ? ', ' + flags : ''})` ); } - let code = ''; - if (requireString) { - const arg = this.getArgumentAt(ctx, 0); - code = this.visit(arg); - if (this.findTypedNode(arg).type !== this.Types._string) { + + /** + * Code is processed in every language because want to generate the scope as + * a non-idiomatic document. + * + * @param {ParserRuleContext} ctx + * @param {Object} type - The type of the LHS + * @param {Object} symbolType - The type of the Symbol + * @param {boolean} requireString - if the code argument must be a string. + * @return {*} + */ + generateBSONCode(ctx, type, symbolType, requireString) { + if (`emit${type.id}` in this) { + return this[`emit${type.id}`](ctx); + } + ctx.type = type; + const argList = this.getArguments(ctx); + if (!(argList.length === 1 || argList.length === 2)) { throw new BsonTranspilersArgumentError( - 'Argument type mismatch: Code requires first argument to be a string' + 'Argument count mismatch: Code requires one or two arguments' + ); + } + let code = ''; + if (requireString) { + const arg = this.getArgumentAt(ctx, 0); + code = this.visit(arg); + if (this.findTypedNode(arg).type !== this.Types._string) { + throw new BsonTranspilersArgumentError( + 'Argument type mismatch: Code requires first argument to be a string' + ); + } + } else { + code = removeQuotes(this.getArgumentAt(ctx, 0).getText()); + } + let scope = undefined; + let scopestr = ''; + + if (argList.length === 2) { + const idiomatic = this.idiomatic; + this.idiomatic = false; + const compareTo = this.checkNamedArgs( + [this.Types._object], + this.getArgumentAt(ctx, 1), + symbolType.namedArgs ); + scope = this.castType(...compareTo); + if (scope === null) { + throw new BsonTranspilersArgumentError( + "Code expects argument 'scope' to be object" + ); + } + this.idiomatic = idiomatic; + scopestr = `, ${scope}`; + this.requiredImports[113] = true; + this.requiredImports[10] = true; } - } else { - code = removeQuotes(this.getArgumentAt(ctx, 0).getText()); + return this.generateCall( + ctx, + symbolType, + [code, scope], + 'Code', + `(${code}${scopestr})` + ); } - let scope = undefined; - let scopestr = ''; - if (argList.length === 2) { - const idiomatic = this.idiomatic; - this.idiomatic = false; - const compareTo = this.checkNamedArgs( - [this.Types._object], this.getArgumentAt(ctx, 1), symbolType.namedArgs + /** + * Gets a process method because need to tell the template if + * the argument is a number or a date. + * + * @param {ParserRuleContext} ctx + * @returns {String} - generated code + */ + generateObjectIdFromTime(ctx) { + const funcNameNode = this.getFunctionCallName(ctx); + const lhsStr = this.visit(funcNameNode); + let lhsType = this.findTypedNode(funcNameNode).type; + if (typeof lhsType === 'string') { + lhsType = this.Types[lhsType]; + } + + const args = this.checkArguments( + lhsType.args, + this.getArguments(ctx), + lhsType.id, + lhsType.namedArgs ); - scope = this.castType(...compareTo); - if (scope === null) { - throw new BsonTranspilersArgumentError( - 'Code expects argument \'scope\' to be object' - ); + const isNumber = + this.findTypedNode(this.getArgumentAt(ctx, 0)).type.code !== 200; + return this.generateCall( + ctx, + lhsType, + [args[0], isNumber], + lhsStr, + `(${args.join(', ')})`, + true + ); + } + + generateFuncDefExpression() { + throw new BsonTranspilersUnimplementedError( + 'Support for exporting functions to languages other than javascript is not yet available.' + ); + } + + /** + * Overrides the ANTLR visitChildren method so that options can be set. + * + * @param {ParserRuleContext} ctx + * @param {Object} options: + * start - child index to start iterating at. + * end - child index to end iterating after. + * step - how many children to increment each step, 1 visits all children. + * separator - a string separator to go between generated children. + * ignore - an array of child indexes to skip. + * children - the set of children to visit. + * @returns {String} + */ + visitChildren(ctx, options) { + const opts = { + start: 0, + step: 1, + separator: '', + ignore: [], + children: ctx.children, + }; + Object.assign(opts, options ? options : {}); + opts.end = 'end' in opts ? opts.end : opts.children.length - 1; + + let code = ''; + for (let i = opts.start; i <= opts.end; i += opts.step) { + if (opts.ignore.indexOf(i) === -1) { + code = `${code}${this.visit(opts.children[i])}${ + i === opts.end ? '' : opts.separator + }`; + } } - this.idiomatic = idiomatic; - scopestr = `, ${scope}`; - this.requiredImports[113] = true; - this.requiredImports[10] = true; + return code; + } + + /** + * Visit a end-of-file symbol. Universal for all grammars. + * * + * @returns {String} + */ + visitEof() { + if (this.Syntax.eof.template) { + return this.Syntax.eof.template(); + } + return ''; + } + + /** + * Visit a end-of-line symbol. Universal for all grammars. + * * + * @returns {String} + */ + visitEos() { + if (this.Syntax.eos.template) { + return this.Syntax.eos.template(); + } + return '\n'; + } + + /** + * Visit a leaf node and return a string. Universal for all grammars. + * * + * @param {ParserRuleContext} ctx + * @returns {String} + */ + visitTerminal(ctx) { + return ctx.getText(); } - return this.generateCall( - ctx, symbolType, [code, scope], 'Code', `(${code}${scopestr})` - ); - } - - /** - * Gets a process method because need to tell the template if - * the argument is a number or a date. - * - * @param {ParserRuleContext} ctx - * @returns {String} - generated code - */ - generateObjectIdFromTime(ctx) { - const funcNameNode = this.getFunctionCallName(ctx); - const lhsStr = this.visit(funcNameNode); - let lhsType = this.findTypedNode(funcNameNode).type; - if (typeof lhsType === 'string') { - lhsType = this.Types[lhsType]; - } - - const args = this.checkArguments( - lhsType.args, this.getArguments(ctx), lhsType.id, lhsType.namedArgs - ); - const isNumber = this.findTypedNode( - this.getArgumentAt(ctx, 0)).type.code !== 200; - return this.generateCall( - ctx, lhsType, [args[0], isNumber], lhsStr, `(${args.join(', ')})`, true - ); - } - - generateFuncDefExpression() { - throw new BsonTranspilersUnimplementedError( - 'Support for exporting functions to languages other than javascript is not yet available.' - ); - } - - /** - * Overrides the ANTLR visitChildren method so that options can be set. - * - * @param {ParserRuleContext} ctx - * @param {Object} options: - * start - child index to start iterating at. - * end - child index to end iterating after. - * step - how many children to increment each step, 1 visits all children. - * separator - a string separator to go between generated children. - * ignore - an array of child indexes to skip. - * children - the set of children to visit. - * @returns {String} - */ - visitChildren(ctx, options) { - const opts = { - start: 0, step: 1, separator: '', ignore: [], children: ctx.children - }; - Object.assign(opts, options ? options : {}); - opts.end = ('end' in opts) ? opts.end : opts.children.length - 1; - - let code = ''; - for (let i = opts.start; i <= opts.end; i += opts.step) { - if (opts.ignore.indexOf(i) === -1) { - code = `${code}${this.visit( - opts.children[i] - )}${(i === opts.end) ? '' : opts.separator}`; - } - } - return code; - } - - /** - * Visit a end-of-file symbol. Universal for all grammars. - * * - * @returns {String} - */ - visitEof() { - if (this.Syntax.eof.template) { - return this.Syntax.eof.template(); - } - return ''; - } - - /** - * Visit a end-of-line symbol. Universal for all grammars. - * * - * @returns {String} - */ - visitEos() { - if (this.Syntax.eos.template) { - return this.Syntax.eos.template(); - } - return '\n'; - } - - /** - * Visit a leaf node and return a string. Universal for all grammars. - * * - * @param {ParserRuleContext} ctx - * @returns {String} - */ - visitTerminal(ctx) { - return ctx.getText(); - } -}; + }; diff --git a/packages/bson-transpilers/codegeneration/DeclarationStore.js b/packages/bson-transpilers/codegeneration/DeclarationStore.js index 5d9b373ab83..e0782ea6c20 100644 --- a/packages/bson-transpilers/codegeneration/DeclarationStore.js +++ b/packages/bson-transpilers/codegeneration/DeclarationStore.js @@ -43,7 +43,9 @@ class DeclarationStore { alreadyDeclared(templateID, varRoot, declaration) { const existing = this.candidates(templateID, varRoot); for (var i = 0; i < existing.length; i++) { - const candidate = `${this.varTemplateRoot(templateID, varRoot)}${i > 0 ? i : ''}`; + const candidate = `${this.varTemplateRoot(templateID, varRoot)}${ + i > 0 ? i : '' + }`; const current = this.vars[declaration(candidate)]; if (current !== undefined) { return current; @@ -53,7 +55,9 @@ class DeclarationStore { candidates(templateID, varRoot) { const varTemplateRoot = this.varTemplateRoot(templateID, varRoot); - return Object.values(this.vars).filter(varName => varName.startsWith(varTemplateRoot)); + return Object.values(this.vars).filter((varName) => + varName.startsWith(varTemplateRoot) + ); } clear() { diff --git a/packages/bson-transpilers/codegeneration/ErrorListener.js b/packages/bson-transpilers/codegeneration/ErrorListener.js index cd1be0a1fc1..511ab8bf02a 100644 --- a/packages/bson-transpilers/codegeneration/ErrorListener.js +++ b/packages/bson-transpilers/codegeneration/ErrorListener.js @@ -20,7 +20,12 @@ class ErrorListener extends antlr4.error.ErrorListener { * @param {string} payload - Stack trace */ syntaxError(recognizer, symbol, line, column, message, payload) { - throw new BsonTranspilersSyntaxError(message, { symbol, line, column, payload }); + throw new BsonTranspilersSyntaxError(message, { + symbol, + line, + column, + payload, + }); } } diff --git a/packages/bson-transpilers/codegeneration/csharp/Generator.js b/packages/bson-transpilers/codegeneration/csharp/Generator.js index 3912173e440..fb7b8c510b1 100644 --- a/packages/bson-transpilers/codegeneration/csharp/Generator.js +++ b/packages/bson-transpilers/codegeneration/csharp/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for csharp code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/go/Generator.js b/packages/bson-transpilers/codegeneration/go/Generator.js index 50258b54754..01d6ebad10e 100644 --- a/packages/bson-transpilers/codegeneration/go/Generator.js +++ b/packages/bson-transpilers/codegeneration/go/Generator.js @@ -2,6 +2,9 @@ /* * Class for handling edge cases for Go code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { super(); } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/java/Generator.js b/packages/bson-transpilers/codegeneration/java/Generator.js index be2ad4b56fa..b6d66165bed 100644 --- a/packages/bson-transpilers/codegeneration/java/Generator.js +++ b/packages/bson-transpilers/codegeneration/java/Generator.js @@ -1,844 +1,983 @@ 'use strict'; /* eslint complexity: 0 */ -const {doubleQuoteStringify, removeQuotes} = require('../../helper/format'); +const { doubleQuoteStringify, removeQuotes } = require('../../helper/format'); const { BsonTranspilersRuntimeError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../../helper/error'); /* * Class for handling edge cases for java code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - // Operations that take the field name as an argument - this.field_opts = [ - 'gt', 'lt', 'lte', 'gte', 'eq', 'ne', 'nin', 'in', 'not', 'exists', - 'type', 'all', 'size', 'elemMatch', 'mod', 'regex', - 'sum', 'avg', 'first', 'last', 'max', 'min', 'push', 'addToSet', - 'stdDevSamp', 'stdDevPop', - 'bitsAllSet', 'bitsAllClear', 'bitsAnySet', 'bitsAnyClear', - 'geoWithin', 'geoIntersects', 'near', 'nearSphere' - ]; - // Operations that convert by {$op: value} => op(value) - this.opts = [ - 'match', 'skip', 'limit', 'out', 'sortByCount', 'count', 'or', 'nor', - 'and' - ]; - // Operations split by their import class - this.builderImports = [ - // Filter ops - [ - 'all', 'and', 'bitsAllClear', 'bitsAllSet', 'bitsAnyClear', 'bitsAnySet', - 'elemMatch', 'eq', 'exists', 'expr', 'geoIntersects', 'geoWithin', - 'geoWithinBox', 'geoWithinCenter', 'geoWithinCenterSphere', 'geoWithinPolygon', - 'gt', 'gte', 'in', 'lt', 'lte', 'mod', 'ne', 'near', 'nearSphere', 'nin', - 'nor', 'not', 'or', 'regex', 'size', 'text', 'type', 'where', 'options' - ], - // Agg ops - [ - 'addFields', 'bucket', 'bucketAuto', 'count', 'facet', 'graphLookup', - 'group', 'limit', 'lookup', 'match', 'out', 'project', 'replaceRoot', - 'sample', 'skip', 'sort', 'sortByCount', 'unwind' - ], - // Accumulator ops - [ - 'addToSet', 'avg', 'first', 'last', 'max', 'min', 'push', - 'stdDevPop', 'stdDevSamp', 'sum' - ] - ].reduce((obj, list, index) => { - list.forEach((op) => { - obj[op] = index + 300; - }); - return obj; - }, {}); - } - - /** The rest of the functions in this file are for generating builders **/ - - /** - * Emit an "idiomatic" filter or aggregation, meaning use the builders - * instead of a regular object if possible. - * - * @param {ObjectLiteralContext} ctx - * @return {String} - */ - emitIdiomaticObjectLiteral(ctx) { - ctx.type = this.Types._object; - ctx.indentDepth = this.findIndentDepth(ctx) + 1; - let multiOps = false; - let args = ''; - const properties = this.getKeyValueList(ctx); - if (properties.length) { - args = properties.map((pair) => { - const field = this.getKeyStr(pair); - const value = this.getValue(pair); - if (field.startsWith('$')) { - const op = field.substr(1); - if (this.builderImports[op]) { - this.requiredImports[this.builderImports[op]].push(op); - } - if (op === 'regex') { - multiOps = true; - } - if (`handle${op}` in this) { - return this[`handle${op}`](this.getObjectChild(value), op, ctx); - } - if (this.field_opts.indexOf(op) !== -1) { - // Assert that this isn't the top-level object - if (!this.isSubObject(ctx)) { - throw new BsonTranspilersRuntimeError(`$${op} cannot be top-level`); +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + // Operations that take the field name as an argument + this.field_opts = [ + 'gt', + 'lt', + 'lte', + 'gte', + 'eq', + 'ne', + 'nin', + 'in', + 'not', + 'exists', + 'type', + 'all', + 'size', + 'elemMatch', + 'mod', + 'regex', + 'sum', + 'avg', + 'first', + 'last', + 'max', + 'min', + 'push', + 'addToSet', + 'stdDevSamp', + 'stdDevPop', + 'bitsAllSet', + 'bitsAllClear', + 'bitsAnySet', + 'bitsAnyClear', + 'geoWithin', + 'geoIntersects', + 'near', + 'nearSphere', + ]; + // Operations that convert by {$op: value} => op(value) + this.opts = [ + 'match', + 'skip', + 'limit', + 'out', + 'sortByCount', + 'count', + 'or', + 'nor', + 'and', + ]; + // Operations split by their import class + this.builderImports = [ + // Filter ops + [ + 'all', + 'and', + 'bitsAllClear', + 'bitsAllSet', + 'bitsAnyClear', + 'bitsAnySet', + 'elemMatch', + 'eq', + 'exists', + 'expr', + 'geoIntersects', + 'geoWithin', + 'geoWithinBox', + 'geoWithinCenter', + 'geoWithinCenterSphere', + 'geoWithinPolygon', + 'gt', + 'gte', + 'in', + 'lt', + 'lte', + 'mod', + 'ne', + 'near', + 'nearSphere', + 'nin', + 'nor', + 'not', + 'or', + 'regex', + 'size', + 'text', + 'type', + 'where', + 'options', + ], + // Agg ops + [ + 'addFields', + 'bucket', + 'bucketAuto', + 'count', + 'facet', + 'graphLookup', + 'group', + 'limit', + 'lookup', + 'match', + 'out', + 'project', + 'replaceRoot', + 'sample', + 'skip', + 'sort', + 'sortByCount', + 'unwind', + ], + // Accumulator ops + [ + 'addToSet', + 'avg', + 'first', + 'last', + 'max', + 'min', + 'push', + 'stdDevPop', + 'stdDevSamp', + 'sum', + ], + ].reduce((obj, list, index) => { + list.forEach((op) => { + obj[op] = index + 300; + }); + return obj; + }, {}); + } + + /** The rest of the functions in this file are for generating builders **/ + + /** + * Emit an "idiomatic" filter or aggregation, meaning use the builders + * instead of a regular object if possible. + * + * @param {ObjectLiteralContext} ctx + * @return {String} + */ + emitIdiomaticObjectLiteral(ctx) { + ctx.type = this.Types._object; + ctx.indentDepth = this.findIndentDepth(ctx) + 1; + let multiOps = false; + let args = ''; + const properties = this.getKeyValueList(ctx); + if (properties.length) { + args = properties.map((pair) => { + const field = this.getKeyStr(pair); + const value = this.getValue(pair); + if (field.startsWith('$')) { + const op = field.substr(1); + if (this.builderImports[op]) { + this.requiredImports[this.builderImports[op]].push(op); + } + if (op === 'regex') { + multiOps = true; + } + if (`handle${op}` in this) { + return this[`handle${op}`](this.getObjectChild(value), op, ctx); + } + if (this.field_opts.indexOf(op) !== -1) { + // Assert that this isn't the top-level object + if (!this.isSubObject(ctx)) { + throw new BsonTranspilersRuntimeError( + `$${op} cannot be top-level` + ); + } + return this.handleFieldOp(value, op, ctx); + } + if (this.opts.indexOf(op) !== -1) { + return `${field.substr(1)}(${this.visit(value)})`; } - return this.handleFieldOp(value, op, ctx); } - if (this.opts.indexOf(op) !== -1) { - return `${field.substr(1)}(${this.visit(value)})`; + const valueStr = this.visit(value); + // $-op filters need to rewind a level + const child = this.getObjectChild(value); + if (this.isFilter(child)) { + return valueStr; } + this.requiredImports[300].push('eq'); + return `eq(${doubleQuoteStringify(field)}, ${valueStr})`; + }); + if (args.length > 1 && !multiOps) { + this.requiredImports[300].push('and'); + return `and(${args.join(', ')})`; + } + return args[0]; + } + this.requiredImports[10] = true; + return 'new Document()'; + } + + /** + * Generates idiomatic java for a $-operator that takes the field name + * as the first argument. i.e. { field: { $op: value } } => op(field, value) + * + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @param {String} op - The $-op + * @param {ObjectLiteralContext} parent - The parent object's ctx + * @returns {String} + */ + handleFieldOp(ctx, op, parent) { + const parentField = this.getParentKeyStr(parent); + return `${op}(${doubleQuoteStringify(parentField)}, ${this.visit(ctx)})`; + } + + /** + * Determines if an object has a subfield that is a $-op. + * + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @return {Boolean} + */ + isFilter(ctx) { + const properties = this.getKeyValueList(ctx); + for (let i = 0; i < properties.length; i++) { + const pair = properties[i]; + const field = this.getKeyStr(pair); + if (this.field_opts.indexOf(field.substr(1)) !== -1) { + return true; } - const valueStr = this.visit(value); - // $-op filters need to rewind a level - const child = this.getObjectChild(value); - if (this.isFilter(child)) { - return valueStr; + } + return false; + } + + /** + * Generates idiomatic java for a $-operator that requires a document that has + * a single subfield whose value gets set to the builder argument. + * { $op: { $subfield: value } } => op(value) + * + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @param {String} op - The name of the $-op. + * @param {String} subfield - The name of the subfield to require. + * @param {Boolean} idiomatic - If the value should be generated as idiomatic. + * @return {String} + */ + handleSingleSubfield(ctx, op, subfield, idiomatic) { + const properties = this.assertIsNonemptyObject(ctx, op); + let value = ''; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if (field === subfield) { + this.idiomatic = idiomatic; + value = this.visit(this.getValue(pair)); + this.idiomatic = true; + } else { + throw new BsonTranspilersRuntimeError( + `Unrecognized option to $${op}: ${field}` + ); } - this.requiredImports[300].push('eq'); - return `eq(${doubleQuoteStringify(field)}, ${valueStr})`; }); - if (args.length > 1 && !multiOps) { - this.requiredImports[300].push('and'); - return `and(${args.join(', ')})`; + if (value === '') { + throw new BsonTranspilersRuntimeError( + `Missing option '${subfield}' in $${op}` + ); } - return args[0]; - } - this.requiredImports[10] = true; - return 'new Document()'; - } - - /** - * Generates idiomatic java for a $-operator that takes the field name - * as the first argument. i.e. { field: { $op: value } } => op(field, value) - * - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @param {String} op - The $-op - * @param {ObjectLiteralContext} parent - The parent object's ctx - * @returns {String} - */ - handleFieldOp(ctx, op, parent) { - const parentField = this.getParentKeyStr(parent); - return `${op}(${doubleQuoteStringify(parentField)}, ${this.visit(ctx)})`; - } - - /** - * Determines if an object has a subfield that is a $-op. - * - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @return {Boolean} - */ - isFilter(ctx) { - const properties = this.getKeyValueList(ctx); - for (let i = 0; i < properties.length; i++) { - const pair = properties[i]; - const field = this.getKeyStr(pair); - if (this.field_opts.indexOf(field.substr(1)) !== -1) { - return true; + return `${op}(${value})`; + } + + /** + * Generates idiomatic java for a $-operator that has some required options + * and some options that get rolled into an Options object. + * + * { $op: { required: reqVal, optional: optionalVal } => + * op(reqVal, new Options.optional()) + * + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @param {String} op - The name of the $-op. + * @param {Array} reqOpts - The list of required options. + * @param {Array} optionalOpts - The list of optional options. + * @param {Object} transforms - An mapping of original name to transformed + * name. Includes both optional options and the Options object. + * @return {string} + */ + handleOptionsObject(ctx, op, reqOpts, optionalOpts, transforms) { + const properties = this.assertIsNonemptyObject(ctx, op); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if ( + reqOpts.indexOf(field) !== -1 || + optionalOpts.indexOf(field) !== -1 + ) { + fields[field] = this.visit(this.getValue(pair)); + } else { + throw new BsonTranspilersRuntimeError( + `Unrecognized option to $${op}: ${field}` + ); + } + }); + reqOpts.map((f) => { + if (!(f in fields)) { + throw new BsonTranspilersRuntimeError( + `Missing option '${f}' in $${op}` + ); + } + }); + + let options = ''; + if (Object.keys(fields).length > reqOpts.length) { + this.requiredImports[306].push(transforms[op]); + + options = `, new ${transforms[op]}()${Object.keys(fields) + .filter((f) => { + return optionalOpts.indexOf(f) !== -1; + }) + .map((k) => { + if (transforms !== undefined && k in transforms) { + return transforms[k](fields[k]); + } + return `.${k}(${fields[k]})`; + }) + .join('')}`; } + + return `${op}(${reqOpts + .map((f) => { + return fields[f]; + }) + .join(', ')}${options})`; } - return false; - } - - /** - * Generates idiomatic java for a $-operator that requires a document that has - * a single subfield whose value gets set to the builder argument. - * { $op: { $subfield: value } } => op(value) - * - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @param {String} op - The name of the $-op. - * @param {String} subfield - The name of the subfield to require. - * @param {Boolean} idiomatic - If the value should be generated as idiomatic. - * @return {String} - */ - handleSingleSubfield(ctx, op, subfield, idiomatic) { - const properties = this.assertIsNonemptyObject(ctx, op); - let value = ''; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (field === subfield) { - this.idiomatic = idiomatic; - value = this.visit(this.getValue(pair)); - this.idiomatic = true; - } else { + + /** + * Generates idiomatic java for a $-operator that has some required options + * and then multiple arbitrary fields. + * + * { $op: { required: reqVal, opt1: v1, opt2: v2...} } => op(reqVal, v1, v2...) + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @param {String} op - The name of the $-op. + * @param {Array} reqOpts - The list of required options. + * @param {Function} transform - A function that takes in the option name and + * the value, then returns a string with the correct formatting. + * @param {Boolean} idiomatic - If the value should be generated as idiomatic. + * @return {string} + */ + handleMultipleSubfields(ctx, op, reqOpts, transform, idiomatic) { + const properties = this.assertIsNonemptyObject(ctx, op); + const req = []; + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if (reqOpts.indexOf(field) !== -1) { + req.push(this.visit(this.getValue(pair))); + } else { + this.idiomatic = idiomatic; + fields[field] = this.visit(this.getValue(pair)); + this.idiomatic = true; + } + }); + if (req.length !== reqOpts.length) { throw new BsonTranspilersRuntimeError( - `Unrecognized option to $${op}: ${field}` + `Required option missing from ${op}` ); } - }); - if (value === '') { - throw new BsonTranspilersRuntimeError( - `Missing option '${subfield}' in $${op}` + + const args = req.concat( + Object.keys(fields).map((f) => { + return transform(f, fields[f]); + }) ); + return `${op}(${args.join(', ')})`; } - return `${op}(${value})`; - } - - /** - * Generates idiomatic java for a $-operator that has some required options - * and some options that get rolled into an Options object. - * - * { $op: { required: reqVal, optional: optionalVal } => - * op(reqVal, new Options.optional()) - * - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @param {String} op - The name of the $-op. - * @param {Array} reqOpts - The list of required options. - * @param {Array} optionalOpts - The list of optional options. - * @param {Object} transforms - An mapping of original name to transformed - * name. Includes both optional options and the Options object. - * @return {string} - */ - handleOptionsObject(ctx, op, reqOpts, optionalOpts, transforms) { - const properties = this.assertIsNonemptyObject(ctx, op); - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (reqOpts.indexOf(field) !== -1 || optionalOpts.indexOf(field) !== -1) { - fields[field] = this.visit(this.getValue(pair)); + + /** + * Method for handling an idiomatic $project. + * ctx must be a non-empty document. + * + * @param {ObjectLiteralContext} ctx + * @return {String} + */ + handleproject(ctx) { + // Eventual todo: slice and elemMatch + const properties = this.assertIsNonemptyObject(ctx, 'project'); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + const original = this.getValue(pair).getText(); + if (original.toLowerCase() === 'true' || original === '1') { + if (field !== '_id') { + // Skip because ID is included by default + fields.includes = !fields.includes + ? `include(${doubleQuoteStringify(field)}` + : `${fields.includes}, ${doubleQuoteStringify(field)}`; + this.requiredImports[303].push('include'); + } + } else if (original.toLowerCase() === 'false' || original === '0') { + if (field !== '_id') { + fields.excludes = !fields.excludes + ? `exclude(${doubleQuoteStringify(field)}` + : `${fields.excludes}, ${doubleQuoteStringify(field)}`; + this.requiredImports[303].push('exclude'); + } else { + fields.excludeId = 'excludeId()'; + this.requiredImports[303].push('excludeId'); + } + } else { + const value = this.visit(this.getValue(pair)); + fields.computed = !fields.computed + ? `computed(${doubleQuoteStringify(field)}, ${value})` + : `${fields.computed}, computed(${doubleQuoteStringify( + field + )}, ${value})`; + this.requiredImports[303].push('computed'); + } + }); + + if (fields.includes) { + fields.includes = `${fields.includes})`; + } + if (fields.excludes) { + fields.excludes = `${fields.excludes})`; + } + const elements = Object.values(fields); + let projectStr; + if (elements.length === 1) { + projectStr = elements[0]; } else { + projectStr = `fields(${elements.join(', ')})`; + this.requiredImports[303].push('fields'); + } + return `project(${projectStr})`; + } + + /** + * Method for handling an idiomatic $not. + * + * { field: { $not: {$op: value} } } => not(op(field, value)) + * + * ctx must be a non-empty document. + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * $not field + * @param {String} op - the operation, which in this case is "not" + * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. + * @return {String} + */ + handlenot(ctx, op, parent) { + const properties = this.assertIsNonemptyObject(ctx, op); + const val = this.getValue(properties[0]); + const innerop = this.getKeyStr(properties[0]).substr(1); + this.requiredImports[300].push(innerop); + const inner = this.handleFieldOp(val, innerop, parent); + return `${op}(${inner})`; + } + + /** + * Method for handling an idiomatic $mod. + * + * { field: { $mod: [arr1, arr2] } } => mod(field, arr1, arr2) + * + * ctx must be an array of length 2. + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * $mod field + * @param {String} op - the operation, which in this case is "mod" + * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. + * @return {String} + */ + handlemod(ctx, op, parent) { + const list = this.getList(ctx); + if (list.length !== 2) { throw new BsonTranspilersRuntimeError( - `Unrecognized option to $${op}: ${field}` + '$mod requires an array of 2-elements' ); } - }); - reqOpts.map((f) => { - if (!(f in fields)) { - throw new BsonTranspilersRuntimeError(`Missing option '${f}' in $${op}`); - } - }); - - let options = ''; - if (Object.keys(fields).length > reqOpts.length) { - this.requiredImports[306].push(transforms[op]); + const parentField = this.getParentKeyStr(parent); + const inner = list.map((f) => { + return this.visit(f); + }); + return `${op}(${doubleQuoteStringify(parentField)}, ${inner.join(', ')})`; + } - options = `, new ${transforms[op]}()${Object.keys(fields).filter((f) => { - return optionalOpts.indexOf(f) !== -1; - }).map((k) => { - if (transforms !== undefined && k in transforms) { - return transforms[k](fields[k]); + /** + * Method for handling an idiomatic $regex. + * + * { field: { $regex: regexstr, $options?: optsstr } } => + * regex(regexstr, optsstr?) + * + * ctx must be a string + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * $regex field + * @param {String} op - the operation, which in this case is "regex" + * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. + * @return {String} + */ + handleregex(ctx, op, parent) { + const parentField = this.getParentKeyStr(parent); + const regex = { r: '', o: '' }; + + const properties = this.getKeyValueList(parent); + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if (field === '$regex') { + regex.r = this.visit(this.getValue(pair)); + } + if (field === '$options') { + regex.o = `, ${this.visit(this.getValue(pair))}`; } - return `.${k}(${fields[k]})`; - }).join('')}`; - } - - return `${op}(${reqOpts.map((f) => { - return fields[f]; - }).join(', ')}${options})`; - } - - /** - * Generates idiomatic java for a $-operator that has some required options - * and then multiple arbitrary fields. - * - * { $op: { required: reqVal, opt1: v1, opt2: v2...} } => op(reqVal, v1, v2...) - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @param {String} op - The name of the $-op. - * @param {Array} reqOpts - The list of required options. - * @param {Function} transform - A function that takes in the option name and - * the value, then returns a string with the correct formatting. - * @param {Boolean} idiomatic - If the value should be generated as idiomatic. - * @return {string} - */ - handleMultipleSubfields(ctx, op, reqOpts, transform, idiomatic) { - const properties = this.assertIsNonemptyObject(ctx, op); - const req = []; - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (reqOpts.indexOf(field) !== -1) { - req.push(this.visit(this.getValue(pair))); + }); + return `${op}(${doubleQuoteStringify(parentField)}, ${regex.r}${ + regex.o + })`; + } + handleoptions() { + return ''; + } + + /** + * Method for handling an idiomatic $where. + * + * { $where: } => where() + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * $where field + * @return {String} + */ + handlewhere(ctx) { + let text; + if (!('getParent' in ctx)) { + text = ctx.getText(); } else { - this.idiomatic = idiomatic; - fields[field] = this.visit(this.getValue(pair)); - this.idiomatic = true; + text = ctx.getParent().getText(); } - }); - if (req.length !== reqOpts.length) { - throw new BsonTranspilersRuntimeError( - `Required option missing from ${op}` - ); + return `where(${doubleQuoteStringify(text)})`; } - const args = req.concat(Object.keys(fields).map((f) => { - return transform(f, fields[f]); - })); - return `${op}(${args.join(', ')})`; - } - - /** - * Method for handling an idiomatic $project. - * ctx must be a non-empty document. - * - * @param {ObjectLiteralContext} ctx - * @return {String} - */ - handleproject(ctx) { - // Eventual todo: slice and elemMatch - const properties = this.assertIsNonemptyObject(ctx, 'project'); - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - const original = this.getValue(pair).getText(); - if (original.toLowerCase() === 'true' || original === '1') { - if (field !== '_id') { - // Skip because ID is included by default - fields.includes = !fields.includes ? - `include(${doubleQuoteStringify(field)}` : - `${fields.includes}, ${doubleQuoteStringify(field)}`; - this.requiredImports[303].push('include'); - } - } else if (original.toLowerCase() === 'false' || original === '0') { - if (field !== '_id') { - fields.excludes = !fields.excludes ? - `exclude(${doubleQuoteStringify(field)}` : - `${fields.excludes}, ${doubleQuoteStringify(field)}`; - this.requiredImports[303].push('exclude'); + /** + * Method for handling an idiomatic $sort. + * + * { $sort: { f1: 1, f2: -1, f3: { $meta: 'textScore' } } } => + * sort(ascending(f1), descending(f2), metaTextScore(f3)) + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * @return {string} + */ + handlesort(ctx) { + const properties = this.assertIsNonemptyObject(ctx, 'sort'); + const fields = []; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + const original = this.getValue(pair).getText(); + if (original === '1') { + fields.push(`ascending(${doubleQuoteStringify(field)})`); + this.requiredImports[304].push('ascending'); + } else if (original === '-1') { + fields.push(`descending(${doubleQuoteStringify(field)})`); + this.requiredImports[304].push('descending'); + } else if ( + original.match( + new RegExp(/{(?:'|")?\$meta(?:'|")?:(?:'|")textScore*(?:'|")}/) + ) + ) { + fields.push(`metaTextScore(${doubleQuoteStringify(field)})`); + this.requiredImports[304].push('metaTextScore'); } else { - fields.excludeId = 'excludeId()'; - this.requiredImports[303].push('excludeId'); + throw new BsonTranspilersRuntimeError( + '$sort key ordering must be specified using a number or ' + + "{$meta: 'textScore'}" + ); } + }); + let sortStr; + if (fields.length > 1) { + sortStr = `orderBy(${fields.join(', ')})`; + this.requiredImports[304].push('orderBy'); } else { - const value = this.visit(this.getValue(pair)); - fields.computed = !fields.computed ? - `computed(${doubleQuoteStringify(field)}, ${value})` : - `${fields.computed}, computed(${doubleQuoteStringify(field)}, ${value})`; - this.requiredImports[303].push('computed'); + sortStr = fields[0]; } - }); - - if (fields.includes) { - fields.includes = `${fields.includes})`; - } - if (fields.excludes) { - fields.excludes = `${fields.excludes})`; - } - const elements = Object.values(fields); - let projectStr; - if (elements.length === 1) { - projectStr = elements[0]; - } else { - projectStr = `fields(${elements.join(', ')})`; - this.requiredImports[303].push('fields'); - } - return `project(${projectStr})`; - } - - /** - * Method for handling an idiomatic $not. - * - * { field: { $not: {$op: value} } } => not(op(field, value)) - * - * ctx must be a non-empty document. - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * $not field - * @param {String} op - the operation, which in this case is "not" - * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. - * @return {String} - */ - handlenot(ctx, op, parent) { - const properties = this.assertIsNonemptyObject(ctx, op); - const val = this.getValue(properties[0]); - const innerop = this.getKeyStr(properties[0]).substr(1); - this.requiredImports[300].push(innerop); - const inner = this.handleFieldOp(val, innerop, parent); - return `${op}(${inner})`; - } - - /** - * Method for handling an idiomatic $mod. - * - * { field: { $mod: [arr1, arr2] } } => mod(field, arr1, arr2) - * - * ctx must be an array of length 2. - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * $mod field - * @param {String} op - the operation, which in this case is "mod" - * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. - * @return {String} - */ - handlemod(ctx, op, parent) { - const list = this.getList(ctx); - if (list.length !== 2) { - throw new BsonTranspilersRuntimeError( - '$mod requires an array of 2-elements' - ); + return `sort(${sortStr})`; } - const parentField = this.getParentKeyStr(parent); - const inner = list.map((f) => { - return this.visit(f); - }); - return `${op}(${doubleQuoteStringify(parentField)}, ${inner.join(', ')})`; - } - - /** - * Method for handling an idiomatic $regex. - * - * { field: { $regex: regexstr, $options?: optsstr } } => - * regex(regexstr, optsstr?) - * - * ctx must be a string - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * $regex field - * @param {String} op - the operation, which in this case is "regex" - * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. - * @return {String} - */ - handleregex(ctx, op, parent) { - const parentField = this.getParentKeyStr(parent); - const regex = {r: '', o: ''}; - - const properties = this.getKeyValueList(parent); - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (field === '$regex') { - regex.r = this.visit(this.getValue(pair)); - } - if (field === '$options') { - regex.o = `, ${this.visit(this.getValue(pair))}`; - } - }); - return `${op}(${doubleQuoteStringify(parentField)}, ${regex.r}${regex.o})`; - } - handleoptions() { - return ''; - } - - /** - * Method for handling an idiomatic $where. - * - * { $where: } => where() - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * $where field - * @return {String} - */ - handlewhere(ctx) { - let text; - if (!('getParent' in ctx)) { - text = ctx.getText(); - } else { - text = ctx.getParent().getText(); - } - return `where(${doubleQuoteStringify(text)})`; - } - - /** - * Method for handling an idiomatic $sort. - * - * { $sort: { f1: 1, f2: -1, f3: { $meta: 'textScore' } } } => - * sort(ascending(f1), descending(f2), metaTextScore(f3)) - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * @return {string} - */ - handlesort(ctx) { - const properties = this.assertIsNonemptyObject(ctx, 'sort'); - const fields = []; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - const original = this.getValue(pair).getText(); - if (original === '1') { - fields.push(`ascending(${doubleQuoteStringify(field)})`); - this.requiredImports[304].push('ascending'); - } else if (original === '-1') { - fields.push(`descending(${doubleQuoteStringify(field)})`); - this.requiredImports[304].push('descending'); - } else if (original.match( - new RegExp(/{(?:'|")?\$meta(?:'|")?:(?:'|")textScore*(?:'|")}/) - )) { - fields.push(`metaTextScore(${doubleQuoteStringify(field)})`); - this.requiredImports[304].push('metaTextScore'); - } else { + + handlegeoWithin(ctx, op, parent) { + this.requiredImports[300].splice( + this.requiredImports[300].indexOf('geoWithin'), + 1 + ); + const properties = this.assertIsNonemptyObject(ctx, op); + const parentField = doubleQuoteStringify(this.getParentKeyStr(parent)); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + fields[field] = this.getValue(pair); + }); + + if (Object.keys(fields).length !== 1) { throw new BsonTranspilersRuntimeError( - '$sort key ordering must be specified using a number or ' + - '{$meta: \'textScore\'}' + '$geoWithin takes an object with only 1 field' ); } - }); - let sortStr; - if (fields.length > 1) { - sortStr = `orderBy(${fields.join(', ')})`; - this.requiredImports[304].push('orderBy'); - } else { - sortStr = fields[0]; - } - return `sort(${sortStr})`; - } - - handlegeoWithin(ctx, op, parent) { - this.requiredImports[300].splice( - this.requiredImports[300].indexOf('geoWithin'), 1 - ); - const properties = this.assertIsNonemptyObject(ctx, op); - const parentField = doubleQuoteStringify( - this.getParentKeyStr(parent) - ); - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - fields[field] = this.getValue(pair); - }); - - if (Object.keys(fields).length !== 1) { - throw new BsonTranspilersRuntimeError( - '$geoWithin takes an object with only 1 field' - ); - } - const key = Object.keys(fields)[0]; - switch (key) { - case ('$geometry'): { - this.requiredImports[300].push('geoWithin'); - return `geoWithin(${parentField}, ${this.handlegeometry(fields[key])})`; + const key = Object.keys(fields)[0]; + switch (key) { + case '$geometry': { + this.requiredImports[300].push('geoWithin'); + return `geoWithin(${parentField}, ${this.handlegeometry( + fields[key] + )})`; + } + case '$box': { + this.requiredImports[300].push('geoWithinBox'); + return `geoWithinBox(${parentField}, ${this.combineCoordinates( + fields[key], + 2, + '', + true, + (p) => { + return this.combineCoordinates(p, 2, '', true, (p2) => { + return this.visit(p2); + }); + } + )})`; + } + case '$polygon': { + this.requiredImports[300].push('geoWithinPolygon'); + return `geoWithinPolygon(${parentField}, ${this.visit(fields[key])})`; + } + case '$centerSphere': + case '$center': { + const array = this.assertIsNonemptyArray(fields[key]); + if (array.length !== 2) { + throw new BsonTranspilersRuntimeError( + `${key} takes array of length 2` + ); + } + const coordinates = this.combineCoordinates( + array[0], + 2, + '', + true, + (p) => { + return this.visit(p); + } + ); + const geoop = `geoWithin${key[1].toUpperCase()}${key.substr(2)}`; + this.requiredImports[300].push(geoop); + return `${geoop}(${parentField}, ${coordinates}, ${this.visit( + array[1] + )})`; + } + default: { + throw new BsonTranspilersRuntimeError( + `unrecognized option ${key} to $geoWithin` + ); + } } - case ('$box'): { - this.requiredImports[300].push('geoWithinBox'); - return `geoWithinBox(${parentField}, ${ - this.combineCoordinates(fields[key], 2, '', true, (p) => { - return this.combineCoordinates(p, 2, '', true, (p2) => { - return this.visit(p2); - }); - })})`; + } + + handlenear(ctx, op, parent) { + const properties = this.assertIsNonemptyObject(ctx, op); + const parentField = doubleQuoteStringify(this.getParentKeyStr(parent)); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + fields[field] = this.getValue(pair); + }); + + ['$geometry', '$minDistance', '$maxDistance'].map((k) => { + if (!(k in fields)) { + throw new BsonTranspilersRuntimeError( + `Missing required field ${k} in $${op}` + ); + } + }); + if (Object.keys(fields).length !== 3) { + throw new BsonTranspilersRuntimeError(`Too many fields to $${op}`); } - case ('$polygon'): { - this.requiredImports[300].push('geoWithinPolygon'); - return `geoWithinPolygon(${parentField}, ${this.visit(fields[key])})`; + return `${op}(${parentField}, ${this.handlegeometry( + fields.$geometry + )}, ${this.visit(fields.$maxDistance)}, ${this.visit( + fields.$minDistance + )})`; + } + + handlenearSphere(ctx, op, parent) { + return this.handlenear(ctx, op, parent); + } + + generateposition(ctx) { + const coordinates = this.assertIsNonemptyArray(ctx, 'geometry'); + if (coordinates.length !== 2) { + throw new BsonTranspilersRuntimeError('Position must be 2 coordinates'); } - case ('$centerSphere'): - case ('$center'): { - const array = this.assertIsNonemptyArray(fields[key]); - if (array.length !== 2) { - throw new BsonTranspilersRuntimeError(`${key} takes array of length 2`); - } - const coordinates = this.combineCoordinates( - array[0], 2, '', true, (p) => { return this.visit(p); } + this.requiredImports[305].push('Position'); + return `new Position(${this.visit(coordinates[0])}, ${this.visit( + coordinates[1] + )})`; + } + + assertIsNonemptyArray(ctx, op) { + const array = this.getArray(ctx); + if (!array || this.getList(array).length === 0) { + throw new BsonTranspilersRuntimeError( + `$${op} requires a non-empty array` ); - const geoop = `geoWithin${key[1].toUpperCase()}${ - key.substr(2) - }`; - this.requiredImports[300].push(geoop); - return `${geoop}(${parentField}, ${coordinates}, ${this.visit(array[1])})`; } - default: { + return this.getList(array); + } + assertIsNonemptyObject(ctx, op) { + if (this.getObject(ctx)) { + ctx = this.getObject(ctx); + } + const kv = this.getKeyValueList(ctx); + if (kv.length === 0) { throw new BsonTranspilersRuntimeError( - `unrecognized option ${key} to $geoWithin` + `$${op} requires a non-empty document` ); } + return kv; } - } - - handlenear(ctx, op, parent) { - const properties = this.assertIsNonemptyObject(ctx, op); - const parentField = doubleQuoteStringify( - this.getParentKeyStr(parent) - ); - const fields = {}; - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - fields[field] = this.getValue(pair); - }); - - ['$geometry', '$minDistance', '$maxDistance'].map((k) => { - if (!(k in fields)) { + combineCoordinates(ctx, length, className, noArray, innerFunc) { + if (!noArray) { + this.requiredImports[9] = true; + } + const points = this.assertIsNonemptyArray(ctx, 'geometry'); + if (points.length < length) { throw new BsonTranspilersRuntimeError( - `Missing required field ${k} in $${op}` + `${ + className ? className : '$geometry inner array' + } must have at least ${length} elements (has ${points.length})` ); } - }); - if (Object.keys(fields).length !== 3) { - throw new BsonTranspilersRuntimeError( - `Too many fields to $${op}` - ); + let pointstr = points + .map((p) => { + if (!innerFunc) { + return this.generateposition(p); + } + return innerFunc(p); + }) + .join(', '); + pointstr = noArray ? pointstr : `Arrays.asList(${pointstr})`; + if (!className) { + return pointstr; + } + this.requiredImports[305].push(className); + return `new ${className}(${pointstr})`; } - return `${op}(${parentField}, ${ - this.handlegeometry(fields.$geometry) - }, ${this.visit(fields.$maxDistance)}, ${ - this.visit(fields.$minDistance) - })`; - } - handlenearSphere(ctx, op, parent) { - return this.handlenear(ctx, op, parent); - } - - generateposition(ctx) { - const coordinates = this.assertIsNonemptyArray(ctx, 'geometry'); - if (coordinates.length !== 2) { - throw new BsonTranspilersRuntimeError( - 'Position must be 2 coordinates' - ); + generatepoint(ctx) { + return `new Point(${this.generateposition(ctx)})`; } - this.requiredImports[305].push('Position'); - return `new Position(${ - this.visit(coordinates[0])}, ${this.visit(coordinates[1]) - })`; - } - assertIsNonemptyArray(ctx, op) { - const array = this.getArray(ctx); - if (!array || this.getList(array).length === 0) { - throw new BsonTranspilersRuntimeError( - `$${op} requires a non-empty array` - ); - } - return this.getList(array); - } - assertIsNonemptyObject(ctx, op) { - if (this.getObject(ctx)) { - ctx = this.getObject(ctx); + generatemultipoint(ctx) { + return this.combineCoordinates(ctx, 1, 'MultiPoint'); } - const kv = this.getKeyValueList(ctx); - if (kv.length === 0) { - throw new BsonTranspilersRuntimeError( - `$${op} requires a non-empty document` - ); + + generatelinestring(ctx) { + return this.combineCoordinates(ctx, 2, 'LineString'); } - return kv; - } - combineCoordinates(ctx, length, className, noArray, innerFunc) { - if (!noArray) { - this.requiredImports[9] = true; + generatemultilinestring(ctx) { + return this.combineCoordinates(ctx, 1, 'MultiLineString', false, (p) => { + return this.combineCoordinates(p, 2); + }); } - const points = this.assertIsNonemptyArray(ctx, 'geometry'); - if (points.length < length) { - throw new BsonTranspilersRuntimeError( - `${ - className ? className : '$geometry inner array' - } must have at least ${length} elements (has ${points.length})` + + generatepolygon(ctx) { + const polyCoords = this.combineCoordinates( + ctx, + 1, + 'PolygonCoordinates', + true, + (p) => { + return this.combineCoordinates(p, 4); + } ); + return `new Polygon(${polyCoords})`; } - let pointstr = points.map((p) => { - if (!innerFunc) { - return this.generateposition(p); - } - return innerFunc(p); - }).join(', '); - pointstr = noArray ? pointstr : `Arrays.asList(${pointstr})`; - if (!className) { - return pointstr; - } - this.requiredImports[305].push(className); - return `new ${className}(${pointstr})`; - } - - generatepoint(ctx) { - return `new Point(${this.generateposition(ctx)})`; - } - - generatemultipoint(ctx) { - return this.combineCoordinates(ctx, 1, 'MultiPoint'); - } - - generatelinestring(ctx) { - return this.combineCoordinates(ctx, 2, 'LineString'); - } - - generatemultilinestring(ctx) { - return this.combineCoordinates( - ctx, - 1, - 'MultiLineString', - false, - (p) => { return this.combineCoordinates(p, 2); } - ); - } - - generatepolygon(ctx) { - const polyCoords = this.combineCoordinates( - ctx, - 1, - 'PolygonCoordinates', - true, - (p) => { return this.combineCoordinates(p, 4); } - ); - return `new Polygon(${polyCoords})`; - } - - generatemultipolygon(ctx) { - return this.combineCoordinates( - ctx, - 1, - 'MultiPolygon', - false, - (p) => { + + generatemultipolygon(ctx) { + return this.combineCoordinates(ctx, 1, 'MultiPolygon', false, (p) => { return this.combineCoordinates( p, 1, 'PolygonCoordinates', true, - (p2) => { return this.combineCoordinates(p2, 4); } + (p2) => { + return this.combineCoordinates(p2, 4); + } ); - } - ); - } - - generategeometrycollection(ctx) { - const geometries = this.assertIsNonemptyArray(ctx, 'geometry'); - return `new GeometryCollection(Arrays.asList(${ - geometries.map((g) => { - const obj = this.getObject(g); - if (!obj) { + }); + } + + generategeometrycollection(ctx) { + const geometries = this.assertIsNonemptyArray(ctx, 'geometry'); + return `new GeometryCollection(Arrays.asList(${geometries + .map((g) => { + const obj = this.getObject(g); + if (!obj) { + throw new BsonTranspilersRuntimeError( + '$GeometryCollection requires objects' + ); + } + return this.handlegeometry(obj); + }) + .join(', ')}))`; + } + + handlegeometry(ctx) { + const properties = this.assertIsNonemptyObject(ctx, 'geometry'); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if (field === 'type') { + fields.type = removeQuotes(this.visit(this.getValue(pair))); + } else if (field === 'coordinates') { + fields.coordinates = this.getValue(pair); + } else if (field === 'crs') { + throw new BsonTranspilersUnimplementedError( + 'Coordinate reference systems not currently supported' + ); + } else { throw new BsonTranspilersRuntimeError( - '$GeometryCollection requires objects' + `Unrecognized option to $geometry: ${field}` ); } - return this.handlegeometry(obj); - }).join(', ') - }))`; - } - - handlegeometry(ctx) { - const properties = this.assertIsNonemptyObject(ctx, 'geometry'); - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (field === 'type') { - fields.type = removeQuotes(this.visit(this.getValue(pair))); - } else if (field === 'coordinates') { - fields.coordinates = this.getValue(pair); - } else if (field === 'crs') { - throw new BsonTranspilersUnimplementedError( - 'Coordinate reference systems not currently supported' - ); - } else { + }); + if (!fields.type || !fields.coordinates) { + throw new BsonTranspilersRuntimeError('Missing option to $geometry'); + } + if ( + !this.getArray(fields.coordinates) || + this.getList(this.getArray(fields.coordinates)).length === 0 + ) { throw new BsonTranspilersRuntimeError( - `Unrecognized option to $geometry: ${field}` + 'Invalid coordinates option for $geometry' ); } - }); - if (!fields.type || !fields.coordinates) { + if (`generate${fields.type.toLowerCase()}` in this) { + this.requiredImports[305].push(fields.type); + return this[`generate${fields.type.toLowerCase()}`](fields.coordinates); + } throw new BsonTranspilersRuntimeError( - 'Missing option to $geometry' + `Unrecognized GeoJSON type "${fields.type}"` ); } - if (!this.getArray(fields.coordinates) || - this.getList(this.getArray(fields.coordinates)).length === 0) { - throw new BsonTranspilersRuntimeError( - 'Invalid coordinates option for $geometry' + + handlesample(ctx) { + return this.handleSingleSubfield(ctx, 'sample', 'size', true); + } + handlereplaceRoot(ctx) { + return this.handleSingleSubfield(ctx, 'replaceRoot', 'newRoot', false); + } + handlegraphLookup(ctx) { + return this.handleOptionsObject( + ctx, + 'graphLookup', + ['from', 'startWith', 'connectFromField', 'connectToField', 'as'], + ['maxDepth', 'depthField', 'restrictSearchWithMatch'], + { graphLookup: 'GraphLookupOptions' } ); } - if (`generate${fields.type.toLowerCase()}` in this) { - this.requiredImports[305].push(fields.type); - return this[`generate${fields.type.toLowerCase()}`](fields.coordinates); - } - throw new BsonTranspilersRuntimeError( - `Unrecognized GeoJSON type "${fields.type}"` - ); - } - - handlesample(ctx) { - return this.handleSingleSubfield(ctx, 'sample', 'size', true); - } - handlereplaceRoot(ctx) { - return this.handleSingleSubfield(ctx, 'replaceRoot', 'newRoot', false); - } - handlegraphLookup(ctx) { - return this.handleOptionsObject( - ctx, - 'graphLookup', - ['from', 'startWith', 'connectFromField', 'connectToField', 'as'], - ['maxDepth', 'depthField', 'restrictSearchWithMatch'], - { graphLookup: 'GraphLookupOptions' } - ); - } - handlelookup(ctx) { - return this.handleOptionsObject( - ctx, - 'lookup', - ['from', 'localField', 'foreignField', 'as'], - [], - { lookup: 'LookupOptions' } - ); - } - handlebucket(ctx) { - return this.handleOptionsObject( - ctx, - 'bucket', - ['groupBy', 'boundaries'], - ['default', 'output'], - { - bucket: 'BucketOptions', - default: (k) => { return `.defaultBucket(${k})`; } - } - ); - } - handlebucketAuto(ctx) { - return this.handleOptionsObject( - ctx, - 'bucketAuto', - ['groupBy', 'buckets'], - ['granularity', 'output'], - { - bucketAuto: 'BucketAutoOptions', - granularity: (k) => { - return `.granularity(BucketGranularity.fromString(${k}))`; + handlelookup(ctx) { + return this.handleOptionsObject( + ctx, + 'lookup', + ['from', 'localField', 'foreignField', 'as'], + [], + { lookup: 'LookupOptions' } + ); + } + handlebucket(ctx) { + return this.handleOptionsObject( + ctx, + 'bucket', + ['groupBy', 'boundaries'], + ['default', 'output'], + { + bucket: 'BucketOptions', + default: (k) => { + return `.defaultBucket(${k})`; + }, } + ); + } + handlebucketAuto(ctx) { + return this.handleOptionsObject( + ctx, + 'bucketAuto', + ['groupBy', 'buckets'], + ['granularity', 'output'], + { + bucketAuto: 'BucketAutoOptions', + granularity: (k) => { + return `.granularity(BucketGranularity.fromString(${k}))`; + }, + } + ); + } + handletext(ctx) { + return this.handleOptionsObject( + ctx, + 'text', + ['$search'], + ['$language', '$caseSensitive', '$diacriticSensitive'], + { + text: 'TextSearchOptions', + $language: (k) => { + return `.language(${k})`; + }, + $caseSensitive: (k) => { + return `.caseSensitive(${k})`; + }, + $diacriticSensitive: (k) => { + return `.diacriticSensitive(${k})`; + }, + } + ); + } + handleunwind(ctx) { + const copy = this.deepCopyRequiredImports(); + const value = this.visit(ctx.parentCtx); + this.requiredImports = copy; + if (this.findTypedNode(ctx.parentCtx).type.id === '_string') { + return `unwind(${value})`; } - ); - } - handletext(ctx) { - return this.handleOptionsObject( - ctx, - 'text', - ['$search'], - ['$language', '$caseSensitive', '$diacriticSensitive'], - { - text: 'TextSearchOptions', - $language: (k) => { return `.language(${k})`; }, - $caseSensitive: (k) => { return `.caseSensitive(${k})`; }, - $diacriticSensitive: (k) => { return `.diacriticSensitive(${k})`; } - } - ); - } - handleunwind(ctx) { - const copy = this.deepCopyRequiredImports(); - const value = this.visit(ctx.parentCtx); - this.requiredImports = copy; - if (this.findTypedNode(ctx.parentCtx).type.id === '_string') { - return `unwind(${value})`; - } - return this.handleOptionsObject( - ctx, - 'unwind', - ['path'], - ['includeArrayIndex', 'preserveNullAndEmptyArrays'], - { unwind: 'UnwindOptions' } - ); - } - handlegroup(ctx) { - return this.handleMultipleSubfields(ctx, 'group', ['_id'], (f, v) => { - return v; - }, true); - } - handlefacet(ctx) { - this.requiredImports[306].push('Facet'); - return this.handleMultipleSubfields(ctx, 'facet', [], (f, v) => { - return `new Facet(${doubleQuoteStringify(f)}, ${v})`; - }, true); - } - handleaddFields(ctx) { - this.requiredImports[306].push('Field'); - return this.handleMultipleSubfields(ctx, 'addFields', [], (f, v) => { - return `new Field(${doubleQuoteStringify(f)}, ${v})`; - }, false); - } -}; + return this.handleOptionsObject( + ctx, + 'unwind', + ['path'], + ['includeArrayIndex', 'preserveNullAndEmptyArrays'], + { unwind: 'UnwindOptions' } + ); + } + handlegroup(ctx) { + return this.handleMultipleSubfields( + ctx, + 'group', + ['_id'], + (f, v) => { + return v; + }, + true + ); + } + handlefacet(ctx) { + this.requiredImports[306].push('Facet'); + return this.handleMultipleSubfields( + ctx, + 'facet', + [], + (f, v) => { + return `new Facet(${doubleQuoteStringify(f)}, ${v})`; + }, + true + ); + } + handleaddFields(ctx) { + this.requiredImports[306].push('Field'); + return this.handleMultipleSubfields( + ctx, + 'addFields', + [], + (f, v) => { + return `new Field(${doubleQuoteStringify(f)}, ${v})`; + }, + false + ); + } + }; diff --git a/packages/bson-transpilers/codegeneration/javascript/Generator.js b/packages/bson-transpilers/codegeneration/javascript/Generator.js index 90b6bb690f7..8fca35f1e64 100644 --- a/packages/bson-transpilers/codegeneration/javascript/Generator.js +++ b/packages/bson-transpilers/codegeneration/javascript/Generator.js @@ -2,15 +2,16 @@ /* * Class for handling edge cases for node code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } - generateFuncDefExpression(ctx) { - const source = ctx.start.source[1].strdata; - const startIndex = ctx.start.start; - const stopIndex = ctx.stop.stop; - return source.slice(startIndex, stopIndex + 1); - } -}; + generateFuncDefExpression(ctx) { + const source = ctx.start.source[1].strdata; + const startIndex = ctx.start.start; + const stopIndex = ctx.stop.stop; + return source.slice(startIndex, stopIndex + 1); + } + }; diff --git a/packages/bson-transpilers/codegeneration/javascript/Visitor.js b/packages/bson-transpilers/codegeneration/javascript/Visitor.js index e0403474d93..77ba8727e21 100644 --- a/packages/bson-transpilers/codegeneration/javascript/Visitor.js +++ b/packages/bson-transpilers/codegeneration/javascript/Visitor.js @@ -5,11 +5,10 @@ const bson = require('bson'); const { BsonTranspilersArgumentError, BsonTranspilersRuntimeError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../../helper/error'); const { removeQuotes } = require('../../helper/format'); - /** * This is a Visitor that visits the tree generated by the ECMAScript.g4 grammar. * @@ -17,690 +16,735 @@ const { removeQuotes } = require('../../helper/format'); * all visitors. * @return {Visitor} - Input-language specific visitor. */ -module.exports = (CodeGenerationVisitor) => class Visitor extends CodeGenerationVisitor { - constructor() { - super(); - this.startRule = 'program'; // Name of the ANTLR rule to start - - // Throw UnimplementedError for nodes with expressions that we don't support - this.visitThisExpression = - this.visitDeleteExpression = - this.visitVoidExpression = - this.visitTypeofExpression = - this.visitInExpression = - this.visitInstanceofExpression = - this.visitAssignmentExpression = - this.visitAssignmentOperatorExpression = - this.visitMemberIndexExpression = - this.visitTernaryExpression = - this.visitFunctionDeclaration = - this.visitVariableStatement = - this.visitIfStatement = - this.visitDoWhileStatement = - this.visitWhileStatement = - this.visitForStatement = - this.visitForVarStatement = - this.visitForInStatement = - this.visitForVarInStatement = - this.visitContinueStatement = - this.visitBreakStatement = - this.visitReturnStatement = - this.visitWithStatement = - this.visitLabelledStatement = - this.visitSwitchStatement = - this.visitThrowStatement = - this.visitTryStatement = - this.visitDebuggerStatement = - this.unimplemented; - } - - /* - * - * Visit Methods - * - */ - - visitProgram(ctx) { - if (ctx.getChildCount() < 2) { +module.exports = (CodeGenerationVisitor) => + class Visitor extends CodeGenerationVisitor { + constructor() { + super(); + this.startRule = 'program'; // Name of the ANTLR rule to start + + // Throw UnimplementedError for nodes with expressions that we don't support + this.visitThisExpression = + this.visitDeleteExpression = + this.visitVoidExpression = + this.visitTypeofExpression = + this.visitInExpression = + this.visitInstanceofExpression = + this.visitAssignmentExpression = + this.visitAssignmentOperatorExpression = + this.visitMemberIndexExpression = + this.visitTernaryExpression = + this.visitFunctionDeclaration = + this.visitVariableStatement = + this.visitIfStatement = + this.visitDoWhileStatement = + this.visitWhileStatement = + this.visitForStatement = + this.visitForVarStatement = + this.visitForInStatement = + this.visitForVarInStatement = + this.visitContinueStatement = + this.visitBreakStatement = + this.visitReturnStatement = + this.visitWithStatement = + this.visitLabelledStatement = + this.visitSwitchStatement = + this.visitThrowStatement = + this.visitTryStatement = + this.visitDebuggerStatement = + this.unimplemented; + } + + /* + * + * Visit Methods + * + */ + + visitProgram(ctx) { + if (ctx.getChildCount() < 2) { + throw new BsonTranspilersRuntimeError( + 'Expression contains 0 statements. Input should be a single statement' + ); + } + return this.visitChildren(ctx); + } + + visitSourceElements(ctx) { + if (ctx.sourceElement().length !== 1) { + throw new BsonTranspilersRuntimeError( + `Expression contains ${ + ctx.sourceElement().length + } statements. Input should be a single statement` + ); + } + return this.visitChildren(ctx); + } + visitEmptyStatement() { throw new BsonTranspilersRuntimeError( 'Expression contains 0 statements. Input should be a single statement' ); } - return this.visitChildren(ctx); - } - - visitSourceElements(ctx) { - if (ctx.sourceElement().length !== 1) { - throw new BsonTranspilersRuntimeError(`Expression contains ${ - ctx.sourceElement().length} statements. Input should be a single statement`); - } - return this.visitChildren(ctx); - } - visitEmptyStatement() { - throw new BsonTranspilersRuntimeError( - 'Expression contains 0 statements. Input should be a single statement' - ); - } - - - visitFuncCallExpression(ctx) { - return this.generateFunctionCall(ctx); - } - - visitIdentifierExpression(ctx) { - return this.generateIdentifier(ctx); - } - - visitGetAttributeExpression(ctx) { - return this.generateAttributeAccess(ctx); - } - - visitObjectLiteral(ctx) { - return this.generateObjectLiteral(ctx); - } - - visitArrayLiteral(ctx) { - return this.generateArrayLiteral(ctx); - } - - visitNullLiteral(ctx) { - return this.leafHelper(this.Types._null, ctx); - } - - visitUndefinedLiteral(ctx) { - return this.leafHelper(this.Types._undefined, ctx); - } - - visitBooleanLiteral(ctx) { - return this.leafHelper(this.Types._bool, ctx); - } - - visitStringLiteral(ctx) { - return this.leafHelper(this.Types._string, ctx); - } - - visitRegularExpressionLiteral(ctx) { - return this.leafHelper(this.Types._regex, ctx); - } - - visitIntegerLiteral(ctx) { - return this.leafHelper(this.Types._long, ctx); - } - - visitDecimalLiteral(ctx) { - return this.leafHelper(this.Types._decimal, ctx); - } - - visitHexIntegerLiteral(ctx) { - return this.leafHelper(this.Types._hex, ctx); - } - - visitOctalIntegerLiteral(ctx) { - return this.leafHelper(this.Types._octal, ctx); - } - - visitElision(ctx) { - ctx.type = this.Types._undefined; - if (ctx.type.template) { - return ctx.type.template(); - } - return 'null'; - } - - visitNewExpression(ctx) { - // Skip new because already included in function calls for constructors. - ctx.singleExpression().wasNew = true; // for dates only - const res = this.visit(ctx.singleExpression()); - ctx.type = this.findTypedNode(ctx.singleExpression()).type; - return res; - } - - visitRelationalExpression(ctx) { - ctx.type = this.Types._boolean; - const lhs = this.visit(ctx.singleExpression()[0]); - const rhs = this.visit(ctx.singleExpression()[1]); - const op = this.visit(ctx.children[1]); - if (this.Syntax.equality) { - return this.Syntax.equality.template(lhs, op, rhs); - } - return this.visitChildren(ctx); - } - - visitEqualityExpression(ctx) { - ctx.type = this.Types._boolean; - const lhs = this.visit(ctx.singleExpression()[0]); - const rhs = this.visit(ctx.singleExpression()[1]); - const op = this.visit(ctx.children[1]); - if (this.Syntax.equality) { - return this.Syntax.equality.template(lhs, op, rhs); - } - return this.visitChildren(ctx); - } - - visitLogicalAndExpression(ctx) { - if (this.Syntax.and) { - return this.Syntax.and.template( - ctx.singleExpression().map((t) => (this.visit(t))) - ); + + visitFuncCallExpression(ctx) { + return this.generateFunctionCall(ctx); } - return this.visitChildren(ctx); - } - visitLogicalOrExpression(ctx) { - if (this.Syntax.or) { - return this.Syntax.or.template( - ctx.singleExpression().map((t) => ( this.visit(t) )) - ); + visitIdentifierExpression(ctx) { + return this.generateIdentifier(ctx); } - return this.visitChildren(ctx); - } - visitNotExpression(ctx) { - if (this.Syntax.not) { - return this.Syntax.not.template( - this.visit(ctx.singleExpression()) - ); + visitGetAttributeExpression(ctx) { + return this.generateAttributeAccess(ctx); } - return this.visitChildren(ctx); - } - visitBitAndExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); + visitObjectLiteral(ctx) { + return this.generateObjectLiteral(ctx); } - return this.visitChildren(ctx); - } - visitBitXOrExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); + visitArrayLiteral(ctx) { + return this.generateArrayLiteral(ctx); } - return this.visitChildren(ctx); - } - visitBitOrExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); + visitNullLiteral(ctx) { + return this.leafHelper(this.Types._null, ctx); } - return this.visitChildren(ctx); - } - visitBitNotExpression(ctx) { - if (this.Syntax.unary.template) { - return this.Syntax.unary.template( - '~', - this.visit(ctx.singleExpression()) - ); + visitUndefinedLiteral(ctx) { + return this.leafHelper(this.Types._undefined, ctx); } - return this.visitChildren(ctx); - } - visitUnaryPlusExpression(ctx) { - if (this.Syntax.unary.template) { - return this.Syntax.unary.template( - '+', - this.visit(ctx.singleExpression()) - ); + visitBooleanLiteral(ctx) { + return this.leafHelper(this.Types._bool, ctx); + } + + visitStringLiteral(ctx) { + return this.leafHelper(this.Types._string, ctx); + } + + visitRegularExpressionLiteral(ctx) { + return this.leafHelper(this.Types._regex, ctx); + } + + visitIntegerLiteral(ctx) { + return this.leafHelper(this.Types._long, ctx); + } + + visitDecimalLiteral(ctx) { + return this.leafHelper(this.Types._decimal, ctx); + } + + visitHexIntegerLiteral(ctx) { + return this.leafHelper(this.Types._hex, ctx); + } + + visitOctalIntegerLiteral(ctx) { + return this.leafHelper(this.Types._octal, ctx); + } + + visitElision(ctx) { + ctx.type = this.Types._undefined; + if (ctx.type.template) { + return ctx.type.template(); + } + return 'null'; + } + + visitNewExpression(ctx) { + // Skip new because already included in function calls for constructors. + ctx.singleExpression().wasNew = true; // for dates only + const res = this.visit(ctx.singleExpression()); + ctx.type = this.findTypedNode(ctx.singleExpression()).type; + return res; + } + + visitRelationalExpression(ctx) { + ctx.type = this.Types._boolean; + const lhs = this.visit(ctx.singleExpression()[0]); + const rhs = this.visit(ctx.singleExpression()[1]); + const op = this.visit(ctx.children[1]); + if (this.Syntax.equality) { + return this.Syntax.equality.template(lhs, op, rhs); + } + return this.visitChildren(ctx); + } + + visitEqualityExpression(ctx) { + ctx.type = this.Types._boolean; + const lhs = this.visit(ctx.singleExpression()[0]); + const rhs = this.visit(ctx.singleExpression()[1]); + const op = this.visit(ctx.children[1]); + if (this.Syntax.equality) { + return this.Syntax.equality.template(lhs, op, rhs); + } + return this.visitChildren(ctx); + } + + visitLogicalAndExpression(ctx) { + if (this.Syntax.and) { + return this.Syntax.and.template( + ctx.singleExpression().map((t) => this.visit(t)) + ); + } + return this.visitChildren(ctx); + } + + visitLogicalOrExpression(ctx) { + if (this.Syntax.or) { + return this.Syntax.or.template( + ctx.singleExpression().map((t) => this.visit(t)) + ); + } + return this.visitChildren(ctx); + } + + visitNotExpression(ctx) { + if (this.Syntax.not) { + return this.Syntax.not.template(this.visit(ctx.singleExpression())); + } + return this.visitChildren(ctx); + } + + visitBitAndExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + + visitBitXOrExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + + visitBitOrExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + + visitBitNotExpression(ctx) { + if (this.Syntax.unary.template) { + return this.Syntax.unary.template( + '~', + this.visit(ctx.singleExpression()) + ); + } + return this.visitChildren(ctx); + } + + visitUnaryPlusExpression(ctx) { + if (this.Syntax.unary.template) { + return this.Syntax.unary.template( + '+', + this.visit(ctx.singleExpression()) + ); + } + return this.visitChildren(ctx); + } + + visitUnaryMinusExpression(ctx) { + if (this.Syntax.unary.template) { + return this.Syntax.unary.template( + '-', + this.visit(ctx.singleExpression()) + ); + } + return this.visitChildren(ctx); + } + + visitAdditiveExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + visitMultiplicativeExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + visitBitShiftExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + + visitParenthesizedExpression(ctx) { + if (this.Syntax.parens.template) { + const kids = this.visit(ctx.expressionSequence()); + return this.Syntax.parens.template(kids); + } + return this.visitChildren(ctx); } - return this.visitChildren(ctx); - } - visitUnaryMinusExpression(ctx) { - if (this.Syntax.unary.template) { - return this.Syntax.unary.template( - '-', - this.visit(ctx.singleExpression()) + visitFuncDefExpression(ctx) { + return this.generateFuncDefExpression(ctx); + } + + /* + * + * Process Methods + * + */ + + /* Numerical process methods */ + processNumber(ctx) { + return this.generateNumericClass(ctx); + } + + processInt32(ctx) { + return this.generateNumericClass(ctx); + } + + processDouble(ctx) { + return this.generateNumericClass(ctx); + } + + /** + * Check arguments then execute in the same way as regex literals. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processRegExp(ctx) { + this.checkArguments( + this.Symbols.RegExp.args, + this.getArguments(ctx), + 'RegExp' + ); + return this.process_regex(ctx); + } + + /** + * This looks like non-camelcase because the name of the basic type is "_regex" + * and the process methods are constructed with "Process" + . + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + process_regex(ctx) { + // eslint-disable-line camelcase + ctx.type = this.Types._regex; + let pattern; + let flags; + + try { + const regexobj = this.executeJavascript(ctx.getText()); + pattern = regexobj.source; + flags = regexobj.flags; + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + + let targetflags = flags.replace( + /[imuyg]/g, + (m) => this.Syntax.regexFlags[m] + ); + targetflags = + targetflags === '' ? '' : `${targetflags.split('').sort().join('')}`; + + return this.generateLiteral( + ctx, + ctx.type, + [pattern, targetflags], + 'RegExp' ); } - return this.visitChildren(ctx); - } - - visitAdditiveExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - visitMultiplicativeExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - visitBitShiftExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - - visitParenthesizedExpression(ctx) { - if (this.Syntax.parens.template) { - const kids = this.visit(ctx.expressionSequence()); - return this.Syntax.parens.template(kids); - } - return this.visitChildren(ctx); - } - - visitFuncDefExpression(ctx) { - return this.generateFuncDefExpression(ctx); - } - - /* - * - * Process Methods - * - */ - - /* Numerical process methods */ - processNumber(ctx) { - return this.generateNumericClass(ctx); - } - - processInt32(ctx) { - return this.generateNumericClass(ctx); - } - - processDouble(ctx) { - return this.generateNumericClass(ctx); - } - - /** - * Check arguments then execute in the same way as regex literals. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processRegExp(ctx) { - this.checkArguments( - this.Symbols.RegExp.args, this.getArguments(ctx), 'RegExp' - ); - return this.process_regex(ctx); - } - - /** - * This looks like non-camelcase because the name of the basic type is "_regex" - * and the process methods are constructed with "Process" + . - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - process_regex(ctx) { // eslint-disable-line camelcase - ctx.type = this.Types._regex; - let pattern; - let flags; - - try { - const regexobj = this.executeJavascript(ctx.getText()); - pattern = regexobj.source; - flags = regexobj.flags; - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - - let targetflags = flags.replace(/[imuyg]/g, m => this.Syntax.regexFlags[m]); - targetflags = targetflags === '' ? - '' : - `${targetflags.split('').sort().join('')}`; - - return this.generateLiteral(ctx, ctx.type, [pattern, targetflags], 'RegExp'); - } - - /** - * Process BSON regexps because we need to verify the flags are valid. - * - * @param {FuncCallExpressionContext} ctx - * @return {string} - */ - processBSONRegExp(ctx) { - return this.generateBSONRegex( - ctx, this.Types.BSONRegExpType, this.Symbols.BSONRegExp - ); - } - - /** - * The arguments to Code can be either a string or actual javascript code. - * Manually check arguments here because first argument can be any JS, and we - * don't want to ever visit that node. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processCodeFromJS(ctx) { - return this.generateBSONCode(ctx, this.Types.Code, this.Symbols.Code, false); - } - - /** - * ObjectId needs preprocessing because it needs to be executed. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processObjectId(ctx) { - ctx.type = this.Types.ObjectId; - const symbolType = this.Symbols.ObjectId; - const argsList = this.getArguments(ctx); - - this.checkArguments(symbolType.args, argsList, 'ObjectId'); - let hexstr; - try { - hexstr = this.executeJavascript(`new ${ctx.getText()}`).toHexString(); - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - const args = argsList.length === 0 ? [] : [hexstr]; - - return this.generateCall( - ctx, symbolType, args, 'ObjectId', `(${hexstr})` - ); - } - - /** - * Long needs preprocessing because it needs to be executed. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processLong(ctx) { - ctx.type = this.Types.Long; - const symbolType = this.Symbols.Long; - let longstr; - this.checkArguments(symbolType.args, this.getArguments(ctx), 'Long'); - try { - longstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - return this.generateCall( - ctx, symbolType, [longstr, '_long'], 'Long', `(${longstr})` - ); - } - - processLongfromBits(ctx) { - if ('emitLongfromBits' in this) { - return this.emitLongfromBits(ctx); - } - return this.processLong(ctx); - } - - /** - * Decimal128 needs preprocessing because it needs to be executed. Check - * argument length manually because 'Buffer' not supported. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processDecimal128(ctx) { - ctx.type = this.Types.Decimal128; - const symbolType = this.Symbols.Decimal128; - let decstr; - const argList = this.getArguments(ctx); - - if (argList.length !== 1) { - throw new BsonTranspilersArgumentError( - 'Argument count mismatch: Decimal128 requires one argument' + + /** + * Process BSON regexps because we need to verify the flags are valid. + * + * @param {FuncCallExpressionContext} ctx + * @return {string} + */ + processBSONRegExp(ctx) { + return this.generateBSONRegex( + ctx, + this.Types.BSONRegExpType, + this.Symbols.BSONRegExp ); } - try { - decstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); - } catch (error) { - // TODO: this isn't quite right because it catches all type errors. - if (error.name === 'TypeError' || error.code === 'ERR_INVALID_ARG_TYPE') { - throw new BsonTranspilersArgumentError(error.message); - } - - throw new BsonTranspilersRuntimeError(error.message); - } - return this.generateCall( - ctx, symbolType, [decstr], 'Decimal128', `(${decstr})` - ); - } - - /** - * This is a bit weird because we can just convert to string directly. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processLongtoString(ctx) { - ctx.type = this.Types._string; - const long = ctx.singleExpression().singleExpression(); - let longstr; - this.checkArguments( - [[this.Types._numeric, null]], this.getArguments(ctx), 'Long toString' - ); - - try { - longstr = this.executeJavascript(`new ${long.getText()}`).toString(); - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - return ctx.type.template ? ctx.type.template(longstr) : `'${longstr}'`; - } - - /** - * Preprocessed because different target languages need different info out - * of the constructed date, so we want to execute it. Passes a constructed - * date object to the template or generator. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processDate(ctx) { - const isStr = !(ctx.getText().includes('ISODate') || ctx.wasNew); - const symbolType = this.Symbols.Date; - - ctx.type = this.Types.Date; - if (isStr) { - ctx.type = this.Types._string; - this.requiredImports[201] = true; + /** + * The arguments to Code can be either a string or actual javascript code. + * Manually check arguments here because first argument can be any JS, and we + * don't want to ever visit that node. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processCodeFromJS(ctx) { + return this.generateBSONCode( + ctx, + this.Types.Code, + this.Symbols.Code, + false + ); } - const argsList = this.getArguments(ctx); - let date = null; + /** + * ObjectId needs preprocessing because it needs to be executed. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processObjectId(ctx) { + ctx.type = this.Types.ObjectId; + const symbolType = this.Symbols.ObjectId; + const argsList = this.getArguments(ctx); - if (argsList.length !== 0) { + this.checkArguments(symbolType.args, argsList, 'ObjectId'); + let hexstr; try { - this.checkArguments(this.Symbols.Date.args, argsList, 'Date'); - } catch (e) { + hexstr = this.executeJavascript(`new ${ctx.getText()}`).toHexString(); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + const args = argsList.length === 0 ? [] : [hexstr]; + + return this.generateCall( + ctx, + symbolType, + args, + 'ObjectId', + `(${hexstr})` + ); + } + + /** + * Long needs preprocessing because it needs to be executed. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processLong(ctx) { + ctx.type = this.Types.Long; + const symbolType = this.Symbols.Long; + let longstr; + this.checkArguments(symbolType.args, this.getArguments(ctx), 'Long'); + try { + longstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + return this.generateCall( + ctx, + symbolType, + [longstr, '_long'], + 'Long', + `(${longstr})` + ); + } + + processLongfromBits(ctx) { + if ('emitLongfromBits' in this) { + return this.emitLongfromBits(ctx); + } + return this.processLong(ctx); + } + + /** + * Decimal128 needs preprocessing because it needs to be executed. Check + * argument length manually because 'Buffer' not supported. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processDecimal128(ctx) { + ctx.type = this.Types.Decimal128; + const symbolType = this.Symbols.Decimal128; + let decstr; + const argList = this.getArguments(ctx); + + if (argList.length !== 1) { throw new BsonTranspilersArgumentError( - 'Invalid argument to Date: requires no args, one string/number, or up to 7 numbers' + 'Argument count mismatch: Decimal128 requires one argument' ); } - let text = ctx.getText(); - text = text.startsWith('new ') ? text : `new ${text}`; try { - date = this.executeJavascript(text); + decstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); } catch (error) { + // TODO: this isn't quite right because it catches all type errors. + if ( + error.name === 'TypeError' || + error.code === 'ERR_INVALID_ARG_TYPE' + ) { + throw new BsonTranspilersArgumentError(error.message); + } + throw new BsonTranspilersRuntimeError(error.message); } + return this.generateCall( + ctx, + symbolType, + [decstr], + 'Decimal128', + `(${decstr})` + ); } - const dargs = `Date(${date - ? this.Types._string.template(date.toUTCString()) - : ''})`; - return this.generateCall( - ctx, symbolType, [date, isStr], '', dargs, isStr, true - ); - } - - processObjectIdCreateFromTime(ctx) { - return this.generateObjectIdFromTime(ctx); - } - - processBinary() { - throw new BsonTranspilersUnimplementedError('Binary type not supported'); - } - - /* - * - * Helper Methods - * - */ - - /** - * Takes in the constructor name of a node and returns a human-readable - * node name. Used for error reporting, must be defined by all visitors. - * - * @param {String} name - * @return {String} - */ - renameNode(name) { - return name ? name.replace('_stmt', '') : 'Expression'; - } - - /** - * There are no named arguments in javascript, so we can just return directly. - * @param {Array} expected - * @param {ParserRuleContext} node - * @return {Array} - */ - checkNamedArgs(expected, node) { - return [expected, node]; - } - - /** - * Execute javascript in a sandbox. - * - * @param {String} input - * @return {*} result of execution - */ - executeJavascript(input) { - const sandbox = { - RegExp: RegExp, - BSONRegExp: bson.BSONRegExp, - // Binary: bson.Binary, - DBRef: bson.DBRef, - Decimal128: bson.Decimal128, - Double: bson.Double, - Int32: bson.Int32, - Long: bson.Long, - Int64: bson.Long, - Map: bson.Map, - MaxKey: bson.MaxKey, - MinKey: bson.MinKey, - ObjectID: bson.ObjectId, - ObjectId: bson.ObjectId, - BSONSymbol: bson.BSONSymbol, - Timestamp: bson.Timestamp, - Code: function(c, s) { - return new bson.Code(c, s); - }, - Date: function(s) { - const args = Array.from(arguments); - - if (args.length === 1) { - return new Date(s); + + /** + * This is a bit weird because we can just convert to string directly. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processLongtoString(ctx) { + ctx.type = this.Types._string; + const long = ctx.singleExpression().singleExpression(); + let longstr; + this.checkArguments( + [[this.Types._numeric, null]], + this.getArguments(ctx), + 'Long toString' + ); + + try { + longstr = this.executeJavascript(`new ${long.getText()}`).toString(); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + return ctx.type.template ? ctx.type.template(longstr) : `'${longstr}'`; + } + + /** + * Preprocessed because different target languages need different info out + * of the constructed date, so we want to execute it. Passes a constructed + * date object to the template or generator. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processDate(ctx) { + const isStr = !(ctx.getText().includes('ISODate') || ctx.wasNew); + const symbolType = this.Symbols.Date; + + ctx.type = this.Types.Date; + if (isStr) { + ctx.type = this.Types._string; + this.requiredImports[201] = true; + } + + const argsList = this.getArguments(ctx); + let date = null; + + if (argsList.length !== 0) { + try { + this.checkArguments(this.Symbols.Date.args, argsList, 'Date'); + } catch (e) { + throw new BsonTranspilersArgumentError( + 'Invalid argument to Date: requires no args, one string/number, or up to 7 numbers' + ); } - return new Date(Date.UTC(...args)); - }, - Buffer: Buffer, - __result: {} - }; - const res = vm.runInContext('__result = ' + input, vm.createContext(sandbox)); - return res; - } - - /* - * Accessor Functions. - * - * These MUST be defined by every visitor. Each function is a wrapper around - * a tree node. They are required so that the CodeGenerationVisitor and the - * Generators can access tree elements without needing to know which tree they - * are visiting or the ANTLR name of the node. - */ - - getArguments(ctx) { - if (!('arguments' in ctx) || - !('argumentList' in ctx.arguments()) || - !ctx.arguments().argumentList()) { - return []; + let text = ctx.getText(); + text = text.startsWith('new ') ? text : `new ${text}`; + try { + date = this.executeJavascript(text); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + } + const dargs = `Date(${ + date ? this.Types._string.template(date.toUTCString()) : '' + })`; + return this.generateCall( + ctx, + symbolType, + [date, isStr], + '', + dargs, + isStr, + true + ); + } + + processObjectIdCreateFromTime(ctx) { + return this.generateObjectIdFromTime(ctx); + } + + processBinary() { + throw new BsonTranspilersUnimplementedError('Binary type not supported'); + } + + /* + * + * Helper Methods + * + */ + + /** + * Takes in the constructor name of a node and returns a human-readable + * node name. Used for error reporting, must be defined by all visitors. + * + * @param {String} name + * @return {String} + */ + renameNode(name) { + return name ? name.replace('_stmt', '') : 'Expression'; + } + + /** + * There are no named arguments in javascript, so we can just return directly. + * @param {Array} expected + * @param {ParserRuleContext} node + * @return {Array} + */ + checkNamedArgs(expected, node) { + return [expected, node]; + } + + /** + * Execute javascript in a sandbox. + * + * @param {String} input + * @return {*} result of execution + */ + executeJavascript(input) { + const sandbox = { + RegExp: RegExp, + BSONRegExp: bson.BSONRegExp, + // Binary: bson.Binary, + DBRef: bson.DBRef, + Decimal128: bson.Decimal128, + Double: bson.Double, + Int32: bson.Int32, + Long: bson.Long, + Int64: bson.Long, + Map: bson.Map, + MaxKey: bson.MaxKey, + MinKey: bson.MinKey, + ObjectID: bson.ObjectId, + ObjectId: bson.ObjectId, + BSONSymbol: bson.BSONSymbol, + Timestamp: bson.Timestamp, + Code: function (c, s) { + return new bson.Code(c, s); + }, + Date: function (s) { + const args = Array.from(arguments); + + if (args.length === 1) { + return new Date(s); + } + + return new Date(Date.UTC(...args)); + }, + Buffer: Buffer, + __result: {}, + }; + const res = vm.runInContext( + '__result = ' + input, + vm.createContext(sandbox) + ); + return res; } - return ctx.arguments().argumentList().singleExpression(); - } - getArgumentAt(ctx, i) { - return this.getArguments(ctx)[i]; - } + /* + * Accessor Functions. + * + * These MUST be defined by every visitor. Each function is a wrapper around + * a tree node. They are required so that the CodeGenerationVisitor and the + * Generators can access tree elements without needing to know which tree they + * are visiting or the ANTLR name of the node. + */ - getFunctionCallName(ctx) { - return ctx.singleExpression(); - } + getArguments(ctx) { + if ( + !('arguments' in ctx) || + !('argumentList' in ctx.arguments()) || + !ctx.arguments().argumentList() + ) { + return []; + } + return ctx.arguments().argumentList().singleExpression(); + } - getIfIdentifier(ctx) { - if ('identifierName' in ctx) { + getArgumentAt(ctx, i) { + return this.getArguments(ctx)[i]; + } + + getFunctionCallName(ctx) { return ctx.singleExpression(); } - return ctx; - } - getAttributeLHS(ctx) { - return ctx.singleExpression(); - } + getIfIdentifier(ctx) { + if ('identifierName' in ctx) { + return ctx.singleExpression(); + } + return ctx; + } - getAttributeRHS(ctx) { - return ctx.identifierName(); - } + getAttributeLHS(ctx) { + return ctx.singleExpression(); + } - getList(ctx) { - if (!('elementList' in ctx) || !ctx.elementList()) { - return []; + getAttributeRHS(ctx) { + return ctx.identifierName(); } - const elisions = ctx.elementList().elision(); - const elements = ctx.elementList().singleExpression(); - return ctx.elementList().children.filter((c) => { - return elisions.indexOf(c) !== -1 || elements.indexOf(c) !== -1; - }); - } - getArray(ctx) { - if (!('arrayLiteral' in ctx)) { - return false; + getList(ctx) { + if (!('elementList' in ctx) || !ctx.elementList()) { + return []; + } + const elisions = ctx.elementList().elision(); + const elements = ctx.elementList().singleExpression(); + return ctx.elementList().children.filter((c) => { + return elisions.indexOf(c) !== -1 || elements.indexOf(c) !== -1; + }); } - return ctx.arrayLiteral(); - } - getObject(ctx) { - if (!('objectLiteral' in ctx)) { - return false; + getArray(ctx) { + if (!('arrayLiteral' in ctx)) { + return false; + } + return ctx.arrayLiteral(); } - return ctx.objectLiteral(); - } - getKeyValueList(ctx) { - if ('propertyNameAndValueList' in ctx && ctx.propertyNameAndValueList()) { - return ctx.propertyNameAndValueList().propertyAssignment(); + getObject(ctx) { + if (!('objectLiteral' in ctx)) { + return false; + } + return ctx.objectLiteral(); } - return []; - } - getKeyStr(ctx) { - return removeQuotes(this.visit(ctx.propertyName())); - } + getKeyValueList(ctx) { + if ('propertyNameAndValueList' in ctx && ctx.propertyNameAndValueList()) { + return ctx.propertyNameAndValueList().propertyAssignment(); + } + return []; + } - getValue(ctx) { - return ctx.singleExpression(); - } + getKeyStr(ctx) { + return removeQuotes(this.visit(ctx.propertyName())); + } - isSubObject(ctx) { - return 'propertyName' in ctx.parentCtx.parentCtx; - } + getValue(ctx) { + return ctx.singleExpression(); + } - getParentKeyStr(ctx) { - // For a given sub document, get its key. - return this.getKeyStr(ctx.parentCtx.parentCtx); - } + isSubObject(ctx) { + return 'propertyName' in ctx.parentCtx.parentCtx; + } - getObjectChild(ctx) { - return ctx.getChild(0); - } -}; + getParentKeyStr(ctx) { + // For a given sub document, get its key. + return this.getKeyStr(ctx.parentCtx.parentCtx); + } + getObjectChild(ctx) { + return ctx.getChild(0); + } + }; diff --git a/packages/bson-transpilers/codegeneration/object/Generator.js b/packages/bson-transpilers/codegeneration/object/Generator.js index 82d72ab4f55..ea398528f19 100644 --- a/packages/bson-transpilers/codegeneration/object/Generator.js +++ b/packages/bson-transpilers/codegeneration/object/Generator.js @@ -4,234 +4,265 @@ const bson = require('bson'); const { BsonTranspilersReferenceError, BsonTranspilersTypeError, - BsonTranspilersRuntimeError + BsonTranspilersRuntimeError, } = require('../../helper/error'); const { removeQuotes } = require('../../helper/format'); /* * Class for handling edge cases for shell code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - this.IGNORE = 'a unique thing'; - } - - start(ctx) { - return this.returnResult(ctx); - } - - /** - * Overrides the helper function to instantiate the object instead of - * concatenating the strings. - * - * @param {ParserRuleContext} ctx - The function call node - * @param {Object} lhsType - The type - * @param {Array} args - Arguments to the template - * - * @return {String} - */ - generateCall(ctx, lhsType, args) { - if (`emit${lhsType.id}` in this) { - return this[`emit${lhsType.id}`](ctx, ...args); - } - const lhs = this.visit(this.getFunctionCallName(ctx)); - return this.returnFunctionCallLhsRhs(lhs, args, lhsType); - } - - /** - * Don't concatenate child nodes, return them as array. - * - * @param {ParserRuleContext} ctx - * @param {Object} options - * @return {Array} - */ - visitChildren(ctx, options) { - const opts = { - start: 0, step: 1, separator: '', ignore: [], children: ctx.children - }; - Object.assign(opts, options ? options : {}); - opts.end = ('end' in opts) ? opts.end : opts.children.length - 1; - - const code = []; - for (let i = opts.start; i <= opts.end; i += opts.step) { - if (opts.ignore.indexOf(i) === -1) { - code.push(this.visit( - opts.children[i] - )); - } +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + this.IGNORE = 'a unique thing'; } - const result = code.filter((c) => c !== this.IGNORE); - if (result.length === 1) { - return result[0]; + + start(ctx) { + return this.returnResult(ctx); } - return result; - } - returnFunctionCallRhs(rhs) { - return rhs; - } + /** + * Overrides the helper function to instantiate the object instead of + * concatenating the strings. + * + * @param {ParserRuleContext} ctx - The function call node + * @param {Object} lhsType - The type + * @param {Array} args - Arguments to the template + * + * @return {String} + */ + generateCall(ctx, lhsType, args) { + if (`emit${lhsType.id}` in this) { + return this[`emit${lhsType.id}`](ctx, ...args); + } + const lhs = this.visit(this.getFunctionCallName(ctx)); + return this.returnFunctionCallLhsRhs(lhs, args, lhsType); + } - returnFunctionCallLhs(code, name) { - const types = { - 100: bson.Code, 101: bson.ObjectId, 102: bson.Binary, 103: bson.DBRef, - 104: bson.Double, 105: bson.Int32, 106: bson.Long, 107: bson.MinKey, - 108: bson.MaxKey, 109: bson.BSONRegExp, 110: bson.Timestamp, - 111: bson.BSONSymbol, 112: bson.Decimal128, 200: Date, 8: RegExp, 2: Number, - 10: Object - }; - const result = types[code]; - if (result === undefined) { - throw new BsonTranspilersReferenceError(`Cannot instantiate ${name} with code=${code}`); + /** + * Don't concatenate child nodes, return them as array. + * + * @param {ParserRuleContext} ctx + * @param {Object} options + * @return {Array} + */ + visitChildren(ctx, options) { + const opts = { + start: 0, + step: 1, + separator: '', + ignore: [], + children: ctx.children, + }; + Object.assign(opts, options ? options : {}); + opts.end = 'end' in opts ? opts.end : opts.children.length - 1; + + const code = []; + for (let i = opts.start; i <= opts.end; i += opts.step) { + if (opts.ignore.indexOf(i) === -1) { + code.push(this.visit(opts.children[i])); + } + } + const result = code.filter((c) => c !== this.IGNORE); + if (result.length === 1) { + return result[0]; + } + return result; } - return result; - } - returnFunctionCallLhsRhs(lhs, args, lhsType) { - if (args.length === 1 && args[0] === undefined) { - args = []; + returnFunctionCallRhs(rhs) { + return rhs; } - if (lhsType && lhsType.argsTemplate) { - return lhsType.argsTemplate.bind(this.getState())(lhs, ...args); + returnFunctionCallLhs(code, name) { + const types = { + 100: bson.Code, + 101: bson.ObjectId, + 102: bson.Binary, + 103: bson.DBRef, + 104: bson.Double, + 105: bson.Int32, + 106: bson.Long, + 107: bson.MinKey, + 108: bson.MaxKey, + 109: bson.BSONRegExp, + 110: bson.Timestamp, + 111: bson.BSONSymbol, + 112: bson.Decimal128, + 200: Date, + 8: RegExp, + 2: Number, + 10: Object, + }; + const result = types[code]; + if (result === undefined) { + throw new BsonTranspilersReferenceError( + `Cannot instantiate ${name} with code=${code}` + ); + } + return result; } - let expr; - try { - if (lhsType.callable === this.SYMBOL_TYPE.CONSTRUCTOR) { - expr = new lhs(...args); - } else { - expr = lhs(...args); + returnFunctionCallLhsRhs(lhs, args, lhsType) { + if (args.length === 1 && args[0] === undefined) { + args = []; + } + + if (lhsType && lhsType.argsTemplate) { + return lhsType.argsTemplate.bind(this.getState())(lhs, ...args); } - } catch (e) { - if (e.message.includes('constructor')) { - try { + + let expr; + try { + if (lhsType.callable === this.SYMBOL_TYPE.CONSTRUCTOR) { + expr = new lhs(...args); + } else { expr = lhs(...args); - } catch (e2) { - e2.message = `Error constructing type: ${e2.message}`; - throw e2; } - } else { - e.message = `Error constructing type: ${e.message}`; - throw e; + } catch (e) { + if (e.message.includes('constructor')) { + try { + expr = lhs(...args); + } catch (e2) { + e2.message = `Error constructing type: ${e2.message}`; + throw e2; + } + } else { + e.message = `Error constructing type: ${e.message}`; + throw e; + } } + return expr; } - return expr; - } - returnAttributeAccess(lhs, rhs, type) { - if (type === null) { - throw new BsonTranspilersTypeError(`Error: ${rhs} is undefined and cannot be called`); - } - let expr = lhs[rhs]; - if (type.attr[rhs].template) { - expr = type.attr[rhs].template(lhs, rhs); + returnAttributeAccess(lhs, rhs, type) { + if (type === null) { + throw new BsonTranspilersTypeError( + `Error: ${rhs} is undefined and cannot be called` + ); + } + let expr = lhs[rhs]; + if (type.attr[rhs].template) { + expr = type.attr[rhs].template(lhs, rhs); + if (typeof expr === 'function') { + return function () { + return expr(...arguments); + }; + } + } if (typeof expr === 'function') { - return function() { - return expr(...arguments); + return function () { + return lhs[rhs](...arguments); }; } + return expr; } - if (typeof expr === 'function') { - return function() { - return lhs[rhs](...arguments); - }; + + returnParenthesis(expr) { + return expr; + } + + returnSet(args) { + return args; + } + + returnComparison(ctx) { + return ctx.children.reduce((s, node, i, arr) => { + if (i === arr.length - 1) { + // Always visit the last element + return s; + } + if (i % 2 === 0) { + // Only ops + return s; + } + const op = this.visit(node); + if ( + typeof op === 'object' && + op.length === 2 && + op.every((k) => ['in', 'is', 'not'].indexOf(k) !== -1) + ) { + return this.Syntax.equality.template(s, '!=', this.visit(arr[i + 1])); + } + if (['>', '<', '<=', '>=', '<>', '==', '!=', 'is'].indexOf(op) !== -1) { + return this.Syntax.equality.template(s, op, this.visit(arr[i + 1])); + } + if (op === 'in' || op === 'notin') { + return this.Syntax.in.template.bind(this.state)( + s, + op, + this.visit(arr[i + 1]) + ); + } + throw new BsonTranspilersRuntimeError(`Unrecognized operation ${op}`); + }, this.visit(ctx.children[0])); } - return expr; - } - returnParenthesis(expr) { - return expr; - } + emitLongfromBits(ctx) { + ctx.type = this.Types.Long; + const symbolType = this.Symbols.Long.attr.fromBits; + const rhs = this.checkArguments( + symbolType.args, + this.getArguments(ctx), + 'Long.fromBits' + ); + return bson.Long.fromBits(...rhs); + } - returnSet(args) { - return args; - } + emitRegex(ctx, pattern, flags) { + return new bson.BSONRegExp(pattern, flags); + } - returnComparison(ctx) { - return ctx.children.reduce((s, node, i, arr) => { - if (i === arr.length - 1) { // Always visit the last element - return s; - } - if (i % 2 === 0) { // Only ops - return s; - } - const op = this.visit(node); - if (typeof op === 'object' && op.length === 2 && op.every((k) => (['in', 'is', 'not'].indexOf(k) !== -1))) { - return this.Syntax.equality.template(s, '!=', this.visit(arr[i + 1])); - } - if (['>', '<', '<=', '>=', '<>', '==', '!=', 'is'].indexOf(op) !== -1) { - return this.Syntax.equality.template(s, op, this.visit(arr[i + 1])); - } - if (op === 'in' || op === 'notin') { - return this.Syntax.in.template.bind(this.state)(s, op, this.visit(arr[i + 1])); + emit_array(ctx) { + ctx.type = this.Types._array; + this.requiredImports[9] = true; + return this.getList(ctx).map((child) => this.visit(child)); + } + + emit_object(ctx) { + ctx.type = this.Types._object; + this.requiredImports[10] = true; + const object = {}; + this.getKeyValueList(ctx).map((k) => { + const key = this.getKeyStr(k); + if (key === '$where') { + object[key] = removeQuotes(this.getValue(k).getText()); + } else { + object[key] = this.visit(this.getValue(k)); + } + }); + return object; + } + + emitdatetime(ctx, date, isString) { + if (date === null && isString) { + return Date(); + } else if (date === null) { + return new Date(); } - throw new BsonTranspilersRuntimeError(`Unrecognized operation ${op}`); - }, this.visit(ctx.children[0])); - } - - emitLongfromBits(ctx) { - ctx.type = this.Types.Long; - const symbolType = this.Symbols.Long.attr.fromBits; - const rhs = this.checkArguments( - symbolType.args, this.getArguments(ctx), 'Long.fromBits' - ); - return bson.Long.fromBits(...rhs); - } - - emitRegex(ctx, pattern, flags) { - return new bson.BSONRegExp(pattern, flags); - } - - emit_array(ctx) { - ctx.type = this.Types._array; - this.requiredImports[9] = true; - return this.getList(ctx).map((child) => ( this.visit(child) )); - } - - emit_object(ctx) { - ctx.type = this.Types._object; - this.requiredImports[10] = true; - const object = {}; - this.getKeyValueList(ctx).map((k) => { - const key = this.getKeyStr(k); - if (key === '$where') { - object[key] = removeQuotes(this.getValue(k).getText()); - } else { - object[key] = this.visit(this.getValue(k)); + return date; + } + emitDate(ctx, date, isString) { + if (date === null && isString) { + return Date(); + } else if (date === null) { + return new Date(); } - }); - return object; - } - - emitdatetime(ctx, date, isString) { - if (date === null && isString) { - return Date(); - } else if (date === null) { - return new Date(); - } - return date; - } - emitDate(ctx, date, isString) { - if (date === null && isString) { - return Date(); - } else if (date === null) { - return new Date(); - } - return date; - } - - /* Numbers need emit methods because they also take type args */ - - emitNumber(ctx, arg) { - return Number(arg); - } - - emitint(ctx, arg) { - return new bson.Int32(arg); - } - - emitfloat(ctx, arg) { - return new bson.Double(arg); - } -}; + return date; + } + + /* Numbers need emit methods because they also take type args */ + + emitNumber(ctx, arg) { + return Number(arg); + } + + emitint(ctx, arg) { + return new bson.Int32(arg); + } + + emitfloat(ctx, arg) { + return new bson.Double(arg); + } + }; diff --git a/packages/bson-transpilers/codegeneration/php/Generator.js b/packages/bson-transpilers/codegeneration/php/Generator.js index 595e27138e7..6fbd38f8c64 100644 --- a/packages/bson-transpilers/codegeneration/php/Generator.js +++ b/packages/bson-transpilers/codegeneration/php/Generator.js @@ -3,11 +3,12 @@ * Class for handling edge cases for php code generation. Defines "emit" methods. */ const PHPUtils = require('./PHPUtils'); -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); - // Common functions used by templates - this.state.utils = new PHPUtils(); - } -}; + // Common functions used by templates + this.state.utils = new PHPUtils(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/php/PHPUtils.js b/packages/bson-transpilers/codegeneration/php/PHPUtils.js index 50d7cf7aee1..e01682e2999 100644 --- a/packages/bson-transpilers/codegeneration/php/PHPUtils.js +++ b/packages/bson-transpilers/codegeneration/php/PHPUtils.js @@ -5,8 +5,7 @@ * @returns {object} */ class PHPUtils { - constructor() { - } + constructor() {} /** * Common string checker to be sure we work with string @@ -54,7 +53,7 @@ class PHPUtils { removeStringQuotes(str) { str = this.convertToString(str); if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === "'" && str.charAt(str.length - 1) === "'") || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') ) { str = str.substr(1, str.length - 2); diff --git a/packages/bson-transpilers/codegeneration/python/Generator.js b/packages/bson-transpilers/codegeneration/python/Generator.js index 7e87864aa1a..a176c791be8 100644 --- a/packages/bson-transpilers/codegeneration/python/Generator.js +++ b/packages/bson-transpilers/codegeneration/python/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for python code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/python/Visitor.js b/packages/bson-transpilers/codegeneration/python/Visitor.js index 5594af4262f..6db87c644b9 100644 --- a/packages/bson-transpilers/codegeneration/python/Visitor.js +++ b/packages/bson-transpilers/codegeneration/python/Visitor.js @@ -5,7 +5,7 @@ const { BsonTranspilersArgumentError, BsonTranspilersRuntimeError, BsonTranspilersInternalError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../../helper/error'); const { removeQuotes } = require('../../helper/format'); @@ -16,736 +16,807 @@ const { removeQuotes } = require('../../helper/format'); * all visitors. * @return {Visitor} - Input-language specific visitor. */ -module.exports = (CodeGenerationVisitor) => class Visitor extends CodeGenerationVisitor { - constructor() { - super(); - this.startRule = 'file_input'; // Name of the ANTLR rule to start - - - // Throw UnimplementedError for nodes with expressions that we don't support - this.visitDel_stmt = - this.visitPass_stmt = - this.visitFlow_stmt = - this.visitImport_stmt = - this.visitGlobal_stmt = - this.visitNonlocal_stmt = - this.visitAssert_stmt = - this.visitIf_stmt = - this.visitWhile_stmt = - this.visitFor_stmt = - this.visitTry_stmt = - this.visitWith_stmt = - this.visitFuncdef = - this.visitClassdef = - this.visitDecorated = - this.visitAsync_stmt = - this.visitComp_iter = - this.visitStar_expr = - this.visitInline_if = - this.visitAssign_stmt = - this.visitEllipsesAtom = - this.visitAugassign = - this.visitImag_literal = - this.unimplemented; - } - - /* - * - * Visit Methods - * - */ - - visitFile_input(ctx) { - if (ctx.stmt().length !== 1) { - throw new BsonTranspilersRuntimeError(`Expression contains ${ - ctx.stmt().length} statements. Input should be a single statement`); - } - return this.visitChildren(ctx); - } - - visitFunctionCall(ctx) { - if (ctx.getChildCount() === 1) { +module.exports = (CodeGenerationVisitor) => + class Visitor extends CodeGenerationVisitor { + constructor() { + super(); + this.startRule = 'file_input'; // Name of the ANTLR rule to start + + // Throw UnimplementedError for nodes with expressions that we don't support + this.visitDel_stmt = + this.visitPass_stmt = + this.visitFlow_stmt = + this.visitImport_stmt = + this.visitGlobal_stmt = + this.visitNonlocal_stmt = + this.visitAssert_stmt = + this.visitIf_stmt = + this.visitWhile_stmt = + this.visitFor_stmt = + this.visitTry_stmt = + this.visitWith_stmt = + this.visitFuncdef = + this.visitClassdef = + this.visitDecorated = + this.visitAsync_stmt = + this.visitComp_iter = + this.visitStar_expr = + this.visitInline_if = + this.visitAssign_stmt = + this.visitEllipsesAtom = + this.visitAugassign = + this.visitImag_literal = + this.unimplemented; + } + + /* + * + * Visit Methods + * + */ + + visitFile_input(ctx) { + if (ctx.stmt().length !== 1) { + throw new BsonTranspilersRuntimeError( + `Expression contains ${ + ctx.stmt().length + } statements. Input should be a single statement` + ); + } return this.visitChildren(ctx); } - return this.generateFunctionCall(ctx); - } - - visitIdentifier(ctx) { - return this.generateIdentifier(ctx); - } - visitAttributeAccess(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitFunctionCall(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + return this.generateFunctionCall(ctx); } - return this.generateAttributeAccess(ctx); - } - visitObject_literal(ctx) { - this.testForComprehension(ctx.dictorsetmaker()); - return this.generateObjectLiteral(ctx); - } + visitIdentifier(ctx) { + return this.generateIdentifier(ctx); + } - visitArray_literal(ctx) { - this.testForComprehension(ctx.testlist_comp()); - return this.generateArrayLiteral(ctx); - } + visitAttributeAccess(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + return this.generateAttributeAccess(ctx); + } - visitExpr(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitObject_literal(ctx) { + this.testForComprehension(ctx.dictorsetmaker()); + return this.generateObjectLiteral(ctx); } - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); + + visitArray_literal(ctx) { + this.testForComprehension(ctx.testlist_comp()); + return this.generateArrayLiteral(ctx); } - return this.visitChildren(ctx); - } - visitXor_expr(ctx) { - if (ctx.getChildCount() === 1) { + visitExpr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } return this.visitChildren(ctx); } - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - visitAnd_expr(ctx) { - if (ctx.getChildCount() === 1) { + visitXor_expr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } return this.visitChildren(ctx); } - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - - visitShift_expr(ctx) { - if (ctx.getChildCount() === 1) { + visitAnd_expr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } return this.visitChildren(ctx); } - const args = ctx.children.map((n) => this.visit(n)); - if (this.Syntax.binary.template) { - return this.Syntax.binary.template(args); + + visitShift_expr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + const args = ctx.children.map((n) => this.visit(n)); + if (this.Syntax.binary.template) { + return this.Syntax.binary.template(args); + } + return this.visitChildren(ctx); } - return this.visitChildren(ctx); - } - visitArith_expr(ctx) { - if (ctx.getChildCount() === 1) { + visitArith_expr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + const args = ctx.children.map((n) => this.visit(n)); + if (this.Syntax.binary.template) { + return this.Syntax.binary.template(args); + } return this.visitChildren(ctx); } - const args = ctx.children.map((n) => this.visit(n)); - if (this.Syntax.binary.template) { - return this.Syntax.binary.template(args); - } - return this.visitChildren(ctx); - } - - /* So far, this only exists in Python so it hasn't been moved to - * CodeGenerationVisitor. However, if another input or output language has a - * set implementation, should move this to the shared visitor. */ - visitSet_literal(ctx) { - ctx.type = this.Types._array; - ctx.indentDepth = this.findIndentDepth(ctx) + 1; - this.requiredImports[9] = true; - let args = []; - const list = ctx.testlist_comp(); - this.testForComprehension(list); - let join; - if (list) { - // Sets of 1 item is the same as the item itself, but keep parens for math - if (list.children.length === 1) { - return this.returnParenthesis(this.visit(list.children[0])); - } - const visitedChildren = list.children.map((child) => { - return this.visit(child); - }); - const visitedElements = visitedChildren.filter((arg) => { - return arg !== ','; - }); - if (ctx.type.argsTemplate) { // NOTE: not currently being used anywhere. - args = visitedElements.map((arg, index) => { - const last = !visitedElements[index + 1]; - return ctx.type.argsTemplate.bind(this.getState())(arg, ctx.indentDepth, last); + + /* So far, this only exists in Python so it hasn't been moved to + * CodeGenerationVisitor. However, if another input or output language has a + * set implementation, should move this to the shared visitor. */ + visitSet_literal(ctx) { + ctx.type = this.Types._array; + ctx.indentDepth = this.findIndentDepth(ctx) + 1; + this.requiredImports[9] = true; + let args = []; + const list = ctx.testlist_comp(); + this.testForComprehension(list); + let join; + if (list) { + // Sets of 1 item is the same as the item itself, but keep parens for math + if (list.children.length === 1) { + return this.returnParenthesis(this.visit(list.children[0])); + } + const visitedChildren = list.children.map((child) => { + return this.visit(child); }); - join = ''; - } else { - args = visitedElements; - join = ', '; - } - } - if (ctx.type.template) { - return ctx.type.template(args.join(join), ctx.indentDepth); - } - return this.returnSet(args, ctx); - } - - visitStringAtom(ctx) { - ctx.type = this.Types._string; - this.requiredImports[ctx.type.code] = true; - // Pass the original argument type to the template, not the casted type. - const type = ctx.originalType === undefined ? ctx.type : ctx.originalType; - - let result = this.visitChildren(ctx); - result = result.replace(/^([rubf]?[rubf]["']|'''|"""|'|")/gi, ''); - result = result.replace(/(["]{3}|["]|[']{3}|['])$/, ''); - return this.generateLiteral( - ctx, ctx.type, [result, type.id], `'${result}'`, true - ); - } - - visitInteger_literal(ctx) { - return this.leafHelper(this.Types._long, ctx); - } - - visitOct_literal(ctx) { - return this.leafHelper(this.Types._octal, ctx); - } - - visitHex_literal(ctx) { - return this.leafHelper(this.Types._hex, ctx); - } - - visitBin_literal(ctx) { - return this.leafHelper(this.Types._bin, ctx); - } - - visitFloat_literal(ctx) { - return this.leafHelper(this.Types._decimal, ctx); - } - - visitBoolean_literal(ctx) { - return this.leafHelper(this.Types._bool, ctx); - } - - visitNone_literal(ctx) { - return this.leafHelper(this.Types._null, ctx); - } - - visitExpr_stmt(ctx) { - if ( - ('assign_stmt' in ctx && ctx.assign_stmt() !== null) || - ('augassign' in ctx && ctx.augassign() !== null) || - ('annassign' in ctx && ctx.annassign() !== null) - ) { - throw new BsonTranspilersUnimplementedError( - 'Assignment not yet implemented' + const visitedElements = visitedChildren.filter((arg) => { + return arg !== ','; + }); + if (ctx.type.argsTemplate) { + // NOTE: not currently being used anywhere. + args = visitedElements.map((arg, index) => { + const last = !visitedElements[index + 1]; + return ctx.type.argsTemplate.bind(this.getState())( + arg, + ctx.indentDepth, + last + ); + }); + join = ''; + } else { + args = visitedElements; + join = ', '; + } + } + if (ctx.type.template) { + return ctx.type.template(args.join(join), ctx.indentDepth); + } + return this.returnSet(args, ctx); + } + + visitStringAtom(ctx) { + ctx.type = this.Types._string; + this.requiredImports[ctx.type.code] = true; + // Pass the original argument type to the template, not the casted type. + const type = ctx.originalType === undefined ? ctx.type : ctx.originalType; + + let result = this.visitChildren(ctx); + result = result.replace(/^([rubf]?[rubf]["']|'''|"""|'|")/gi, ''); + result = result.replace(/(["]{3}|["]|[']{3}|['])$/, ''); + return this.generateLiteral( + ctx, + ctx.type, + [result, type.id], + `'${result}'`, + true ); } - return this.visitChildren(ctx); - } - visitFactor(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitInteger_literal(ctx) { + return this.leafHelper(this.Types._long, ctx); } - // For the expression "+1", set the type to the child's type. - const op = this.visit(ctx.children[0]); - const factor = this.visit(ctx.factor()); - ctx.type = this.findTypedNode(ctx.factor()).type; - if (this.Syntax.unary.template) { - return this.Syntax.unary.template( - op, - factor - ); + visitOct_literal(ctx) { + return this.leafHelper(this.Types._octal, ctx); } - return `${op}${factor}`; - } - visitTerm(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitHex_literal(ctx) { + return this.leafHelper(this.Types._hex, ctx); } - const args = ctx.children.map((n) => this.visit(n)); - if (this.Syntax.binary.template) { - return this.Syntax.binary.template(args); - } - return this.visitChildren(ctx); - } - visitPower(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitBin_literal(ctx) { + return this.leafHelper(this.Types._bin, ctx); } - const lhs = this.visit(ctx.atom()); - const rhs = this.visit(ctx.factor()); - if (this.Syntax.binary.template) { - return this.Syntax.binary.template([lhs, '**', rhs]); + + visitFloat_literal(ctx) { + return this.leafHelper(this.Types._decimal, ctx); } - return `${lhs} ** ${rhs}`; - } - visitAnd_test(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitBoolean_literal(ctx) { + return this.leafHelper(this.Types._bool, ctx); } - const children = ctx.not_test().map((t) => ( this.visit(t) )); - if (this.Syntax.and) { - return this.Syntax.and.template(children); + + visitNone_literal(ctx) { + return this.leafHelper(this.Types._null, ctx); } - return children.join(' and '); - } - visitOr_test(ctx) { - if (ctx.getChildCount() === 1) { + visitExpr_stmt(ctx) { + if ( + ('assign_stmt' in ctx && ctx.assign_stmt() !== null) || + ('augassign' in ctx && ctx.augassign() !== null) || + ('annassign' in ctx && ctx.annassign() !== null) + ) { + throw new BsonTranspilersUnimplementedError( + 'Assignment not yet implemented' + ); + } return this.visitChildren(ctx); } - const children = ctx.and_test().map((t) => (this.visit(t))); - if (this.Syntax.or) { - return this.Syntax.or.template(children); + + visitFactor(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + // For the expression "+1", set the type to the child's type. + const op = this.visit(ctx.children[0]); + const factor = this.visit(ctx.factor()); + + ctx.type = this.findTypedNode(ctx.factor()).type; + if (this.Syntax.unary.template) { + return this.Syntax.unary.template(op, factor); + } + return `${op}${factor}`; } - return children.join(' or '); - } - visitNot_test(ctx) { - if (ctx.getChildCount() === 1) { + visitTerm(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + const args = ctx.children.map((n) => this.visit(n)); + if (this.Syntax.binary.template) { + return this.Syntax.binary.template(args); + } return this.visitChildren(ctx); } - const child = this.visit(ctx.children[1]); - if (this.Syntax.not) { - return this.Syntax.not.template(child); + + visitPower(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + const lhs = this.visit(ctx.atom()); + const rhs = this.visit(ctx.factor()); + if (this.Syntax.binary.template) { + return this.Syntax.binary.template([lhs, '**', rhs]); + } + return `${lhs} ** ${rhs}`; } - } - returnComparison(ctx) { - let skip = false; - return ctx.children.reduce((str, e, i, arr) => { - if (skip) { // Skip for 'in' statements because swallows rhs - skip = false; - return str; + visitAnd_test(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); } - if (i === arr.length - 1) { // Always visit the last element - return `${str}${this.visit(e)}`; + const children = ctx.not_test().map((t) => this.visit(t)); + if (this.Syntax.and) { + return this.Syntax.and.template(children); } - if (i % 2 === 0) { // Only ops - return str; + return children.join(' and '); + } + + visitOr_test(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); } - const op = this.visit(e); - if (op === '==' || op === '!=' || op === 'is' || op === 'isnot') { - skip = true; - if (this.Syntax.equality) { - return `${str}${this.Syntax.equality.template( - this.visit(arr[i - 1]), op, this.visit(arr[i + 1]))}`; - } - return `${str} === ${this.visit(arr[i - 1])} ${op} ${this.visit(arr[i + 1])}`; + const children = ctx.and_test().map((t) => this.visit(t)); + if (this.Syntax.or) { + return this.Syntax.or.template(children); } - if (op === 'in' || op === 'notin') { - skip = true; - if (this.Syntax.in) { - return `${str}${this.Syntax.in.template.bind(this.state)( - this.visit(arr[i - 1]), op, this.visit(arr[i + 1]))}`; - } - return `${str} ${this.visit(arr[i - 1])} ${op} ${this.visit(arr[i + 1])}`; + return children.join(' or '); + } + + visitNot_test(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); } - return `${str}${this.visit(arr[i - 1])} ${op} `; - }, ''); - } + const child = this.visit(ctx.children[1]); + if (this.Syntax.not) { + return this.Syntax.not.template(child); + } + } - visitComparison(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + returnComparison(ctx) { + let skip = false; + return ctx.children.reduce((str, e, i, arr) => { + if (skip) { + // Skip for 'in' statements because swallows rhs + skip = false; + return str; + } + if (i === arr.length - 1) { + // Always visit the last element + return `${str}${this.visit(e)}`; + } + if (i % 2 === 0) { + // Only ops + return str; + } + const op = this.visit(e); + if (op === '==' || op === '!=' || op === 'is' || op === 'isnot') { + skip = true; + if (this.Syntax.equality) { + return `${str}${this.Syntax.equality.template( + this.visit(arr[i - 1]), + op, + this.visit(arr[i + 1]) + )}`; + } + return `${str} === ${this.visit(arr[i - 1])} ${op} ${this.visit( + arr[i + 1] + )}`; + } + if (op === 'in' || op === 'notin') { + skip = true; + if (this.Syntax.in) { + return `${str}${this.Syntax.in.template.bind(this.state)( + this.visit(arr[i - 1]), + op, + this.visit(arr[i + 1]) + )}`; + } + return `${str} ${this.visit(arr[i - 1])} ${op} ${this.visit( + arr[i + 1] + )}`; + } + return `${str}${this.visit(arr[i - 1])} ${op} `; + }, ''); } - return this.returnComparison(ctx); - } - visitIndexAccess(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitComparison(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + return this.returnComparison(ctx); } - throw new BsonTranspilersUnimplementedError('Indexing not currently supported'); - } - - /* - * - * Process Methods - * - */ - - processint(ctx) { - return this.generateNumericClass(ctx); - } - - processfloat(ctx) { - return this.generateNumericClass(ctx); - } - - processInt64(ctx) { - return this.generateNumericClass(ctx); - } - - processfrom_native(ctx) { - ctx.type = this.Types.BSONRegExp; - const symbolType = this.Symbols.Regex; - - const argList = this.getArguments(ctx); - if (argList.length !== 1) { - throw new BsonTranspilersArgumentError('RegExp.from_native requires one argument'); - } - const pythonFlags = { - 256: '', 2: 'i', 128: '', 4: 'l', 8: 'm', 16: 's', 64: 'x' - }; - const native = this.skipFakeNodesDown(this.getArgumentAt(ctx, 0)); - const args = this.findPatternAndFlags(native, pythonFlags, this.Syntax.bsonRegexFlags); - - return this.generateCall( - ctx, symbolType, args, 'Regex', - `(${args[0]}${args[1] ? ', ' + args[1] : ''})` - ); - } - - processcompile(ctx) { - ctx.type = this.Types._regex; - const pythonFlags = { - 256: '', 2: 'i', 128: '', 4: '', 8: 'm', 16: '', 64: '' - }; - const args = this.findPatternAndFlags(ctx, pythonFlags, this.Syntax.regexFlags); - return this.generateLiteral(ctx, ctx.type, args, 'RegExp'); - } - - processRegex(ctx) { - return this.generateBSONRegex(ctx, this.Types.Regex, this.Symbols.Regex); - } - - processCode(ctx) { - return this.generateBSONCode(ctx, this.Types.Code, this.Symbols.Code, true); - } - - processdatetime(ctx) { - ctx.type = this.Types.Date; - ctx.wasNew = true; // Always true for non-js - const symbolType = this.Symbols.datetime; - let date = null; - - const argsList = this.getArguments(ctx); - if (argsList.length !== 0) { - if (argsList.length < 3) { - throw new BsonTranspilersArgumentError( - `Wrong number of arguments to datetime: needs at at least 3, got ${ - argsList.length}` - ); + + visitIndexAccess(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); } + throw new BsonTranspilersUnimplementedError( + 'Indexing not currently supported' + ); + } - try { - this.checkArguments(symbolType.args, argsList, 'datetime'); - } catch (e) { + /* + * + * Process Methods + * + */ + + processint(ctx) { + return this.generateNumericClass(ctx); + } + + processfloat(ctx) { + return this.generateNumericClass(ctx); + } + + processInt64(ctx) { + return this.generateNumericClass(ctx); + } + + processfrom_native(ctx) { + ctx.type = this.Types.BSONRegExp; + const symbolType = this.Symbols.Regex; + + const argList = this.getArguments(ctx); + if (argList.length !== 1) { throw new BsonTranspilersArgumentError( - `Invalid argument to datetime: requires no args or up to 7 numbers. ${ - e.message}` + 'RegExp.from_native requires one argument' ); } + const pythonFlags = { + 256: '', + 2: 'i', + 128: '', + 4: 'l', + 8: 'm', + 16: 's', + 64: 'x', + }; + const native = this.skipFakeNodesDown(this.getArgumentAt(ctx, 0)); + const args = this.findPatternAndFlags( + native, + pythonFlags, + this.Syntax.bsonRegexFlags + ); + + return this.generateCall( + ctx, + symbolType, + args, + 'Regex', + `(${args[0]}${args[1] ? ', ' + args[1] : ''})` + ); + } + + processcompile(ctx) { + ctx.type = this.Types._regex; + const pythonFlags = { + 256: '', + 2: 'i', + 128: '', + 4: '', + 8: 'm', + 16: '', + 64: '', + }; + const args = this.findPatternAndFlags( + ctx, + pythonFlags, + this.Syntax.regexFlags + ); + return this.generateLiteral(ctx, ctx.type, args, 'RegExp'); + } + + processRegex(ctx) { + return this.generateBSONRegex(ctx, this.Types.Regex, this.Symbols.Regex); + } + + processCode(ctx) { + return this.generateBSONCode( + ctx, + this.Types.Code, + this.Symbols.Code, + true + ); + } + + processdatetime(ctx) { + ctx.type = this.Types.Date; + ctx.wasNew = true; // Always true for non-js + const symbolType = this.Symbols.datetime; + let date = null; + + const argsList = this.getArguments(ctx); + if (argsList.length !== 0) { + if (argsList.length < 3) { + throw new BsonTranspilersArgumentError( + `Wrong number of arguments to datetime: needs at at least 3, got ${argsList.length}` + ); + } - const argvals = argsList.map((k) => { - let v; try { - v = parseInt(k.getText(), 10); + this.checkArguments(symbolType.args, argsList, 'datetime'); } catch (e) { - throw new BsonTranspilersRuntimeError( - `Unable to convert datetime argument to integer: ${k.getText()}` + throw new BsonTranspilersArgumentError( + `Invalid argument to datetime: requires no args or up to 7 numbers. ${e.message}` ); } - if (isNaN(v)) { - throw new BsonTranspilersRuntimeError( - `Unable to convert datetime argument to integer: ${k.getText()}` + + const argvals = argsList.map((k) => { + let v; + try { + v = parseInt(k.getText(), 10); + } catch (e) { + throw new BsonTranspilersRuntimeError( + `Unable to convert datetime argument to integer: ${k.getText()}` + ); + } + if (isNaN(v)) { + throw new BsonTranspilersRuntimeError( + `Unable to convert datetime argument to integer: ${k.getText()}` + ); + } + return v; + }); + /* month is 0-based in JS, 1-based in everything else (afaict) */ + argvals[1]--; + /* date is 1900-based in JS, 0-based in python */ + argvals[0] -= 1900; + try { + date = new Date(Date.UTC(...argvals)); + } catch (e) { + throw new BsonTranspilersInternalError( + `Unable to construct date from arguments: ${e.message}` ); } - return v; - }); - /* month is 0-based in JS, 1-based in everything else (afaict) */ - argvals[1]--; - /* date is 1900-based in JS, 0-based in python */ - argvals[0] -= 1900; - try { - date = new Date(Date.UTC(...argvals)); - } catch (e) { - throw new BsonTranspilersInternalError( - `Unable to construct date from arguments: ${e.message}` - ); } - } - const dargs = `Date(${date - ? this.Types._string.template(date.toUTCString()) - : ''})`; - return this.generateCall( - ctx, symbolType, [date, false], '', dargs, false, true - ); - } - - processObjectIdfrom_datetime(ctx) { - return this.generateObjectIdFromTime(ctx); - } - - processBinary() { - throw new BsonTranspilersUnimplementedError('Binary type not supported'); - } - - /* - * - * Helper Methods - * - */ - - findPatternAndFlags(ctx, pythonFlags, targetFlags) { - let pattern; - - const symbolType = this.Symbols.re.attr.compile; - const argList = this.getArguments(ctx); - const args = this.checkArguments(symbolType.args, argList, symbolType.id, symbolType.namedArgs); - - // Compile regex without flags - const raw = this.getArgumentAt(ctx, 0).getText(); - let str = raw.replace(/^([rubf]?[rubf]["']|'''|"""|'|")/gi, ''); - str = str.replace(/(["]{3}|["]|[']{3}|['])$/, ''); - const input = `new RegExp(${raw.substr(-1)}${str}${raw.substr(-1)})`; - try { - const sandbox = { - RegExp: RegExp - }; - const regexobj = vm.runInContext('__result = ' + input, vm.createContext(sandbox)); - pattern = regexobj.source; - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); + const dargs = `Date(${ + date ? this.Types._string.template(date.toUTCString()) : '' + })`; + return this.generateCall( + ctx, + symbolType, + [date, false], + '', + dargs, + false, + true + ); } - // Convert flags - if (args.length === 1) { - return [pattern, targetFlags.u]; + processObjectIdfrom_datetime(ctx) { + return this.generateObjectIdFromTime(ctx); } - let flagsArg = argList[1]; - flagsArg = this.skipFakeNodesDown(this.checkNamedArgs( - [this.Types._integer], flagsArg, symbolType.namedArgs - )[1]); - let visited; - if ('expr' in flagsArg.parentCtx) { // combine bitwise flags - visited = flagsArg.xor_expr().map(f => this.visit(f)); - } else { - visited = [this.visit(flagsArg)]; + processBinary() { + throw new BsonTranspilersUnimplementedError('Binary type not supported'); } - const translated = visited - .map(f => pythonFlags[f]) - .filter(f => f !== undefined); + /* + * + * Helper Methods + * + */ - if (visited.indexOf('256') === -1) { // default is unicode without re.A - translated.push('u'); - } + findPatternAndFlags(ctx, pythonFlags, targetFlags) { + let pattern; - const target = translated - .map(m => targetFlags[m]) - .filter(f => f !== undefined); + const symbolType = this.Symbols.re.attr.compile; + const argList = this.getArguments(ctx); + const args = this.checkArguments( + symbolType.args, + argList, + symbolType.id, + symbolType.namedArgs + ); - const flags = target.sort().join(''); - return [pattern, flags]; - } + // Compile regex without flags + const raw = this.getArgumentAt(ctx, 0).getText(); + let str = raw.replace(/^([rubf]?[rubf]["']|'''|"""|'|")/gi, ''); + str = str.replace(/(["]{3}|["]|[']{3}|['])$/, ''); + const input = `new RegExp(${raw.substr(-1)}${str}${raw.substr(-1)})`; + try { + const sandbox = { + RegExp: RegExp, + }; + const regexobj = vm.runInContext( + '__result = ' + input, + vm.createContext(sandbox) + ); + pattern = regexobj.source; + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + // Convert flags + if (args.length === 1) { + return [pattern, targetFlags.u]; + } - /** - * Want to throw unimplemented for comprehensions instead of reference errors. - * @param {ParserRuleContext} ctx - */ - testForComprehension(ctx) { - if (ctx === null || ctx === undefined) { - return; + let flagsArg = argList[1]; + flagsArg = this.skipFakeNodesDown( + this.checkNamedArgs( + [this.Types._integer], + flagsArg, + symbolType.namedArgs + )[1] + ); + let visited; + if ('expr' in flagsArg.parentCtx) { + // combine bitwise flags + visited = flagsArg.xor_expr().map((f) => this.visit(f)); + } else { + visited = [this.visit(flagsArg)]; + } + + const translated = visited + .map((f) => pythonFlags[f]) + .filter((f) => f !== undefined); + + if (visited.indexOf('256') === -1) { + // default is unicode without re.A + translated.push('u'); + } + + const target = translated + .map((m) => targetFlags[m]) + .filter((f) => f !== undefined); + + const flags = target.sort().join(''); + return [pattern, flags]; } - if ( - ('comp_for' in ctx && ctx.comp_for() !== null) || + + /** + * Want to throw unimplemented for comprehensions instead of reference errors. + * @param {ParserRuleContext} ctx + */ + testForComprehension(ctx) { + if (ctx === null || ctx === undefined) { + return; + } + if ( + ('comp_for' in ctx && ctx.comp_for() !== null) || ('comp_if' in ctx && ctx.comp_if() !== null) - ) { - throw new BsonTranspilersUnimplementedError( - 'Comprehensions not yet implemented' - ); + ) { + throw new BsonTranspilersUnimplementedError( + 'Comprehensions not yet implemented' + ); + } } - } - - getParentUntil(ctx, name, steps) { - steps = steps === undefined ? 0 : steps; - let res = ctx; - let found = false; - const stack = []; - while (res !== undefined && res !== null && !found) { - if (name in res) { - const goal = res[name](); - if (goal === stack[stack.length - 1]) { - found = true; + + getParentUntil(ctx, name, steps) { + steps = steps === undefined ? 0 : steps; + let res = ctx; + let found = false; + const stack = []; + while (res !== undefined && res !== null && !found) { + if (name in res) { + const goal = res[name](); + if (goal === stack[stack.length - 1]) { + found = true; + break; + } + } + stack.push(res); + res = res.parentCtx; + } + return found ? stack[stack.length - 1 - steps] : false; + } + + skipFakeNodesDown(ctx, goal) { + let res = ctx; + while (res.children !== undefined && res.children.length === 1) { + res = res.children[0]; + if (goal && goal in res) { + res = res[goal](); break; } } - stack.push(res); - res = res.parentCtx; - } - return found ? stack[stack.length - 1 - steps] : false; - } - - skipFakeNodesDown(ctx, goal) { - let res = ctx; - while (res.children !== undefined && res.children.length === 1) { - res = res.children[0]; - if (goal && goal in res) { - res = res[goal](); - break; - } - } - if (res.children === undefined) { - return res.parentCtx; - } - return res; - } - - skipFakeNodesUp(ctx, goal) { - let res = ctx.parentCtx; - while (res !== undefined && res !== null && res.children !== undefined && - res.children.length === 1) { - if (goal && goal in res) { - res = res[goal](); - break; - } - res = res.parentCtx; - } - return res; - } - - /** - * Takes in the constructor name of a node and returns a human-readable - * node name. Used for error reporting, must be defined by all visitors. - * - * @param {String} name - * @return {String} - */ - renameNode(name) { - return name ? name.replace('_stmt', '') : 'Expression'; - } - - /** - * If a named argument is passed in, then check against the 'namedArgs' array - * instead of positionally. - * - * @param {Array} expected - * @param {ParserRuleContext} node - * @param {Object} namedArgs - * @return {Array} - */ - checkNamedArgs(expected, node, namedArgs) { - const child = this.skipFakeNodesDown(node); - if (namedArgs && 'test' in child && child.test().length > 1) { - const name = child.test()[0].getText(); - const value = child.test()[1]; - const expectedType = namedArgs[name]; - if (expectedType === undefined) { - throw new BsonTranspilersArgumentError( - `Unknown named argument '${name}'` - ); + if (res.children === undefined) { + return res.parentCtx; } - return [expectedType.type, value]; - } - return [expected, node]; - } - - /* - * - * Accessor Functions. - * - * These MUST be defined by every visitor. Each function is a wrapper around - * a tree node. They are required so that the CodeGenerationVisitor and the - * Generators can access tree elements without needing to know which tree they - * are visiting or the ANTLR name of the node. - * - */ - - getArguments(ctx) { - const trailer = ctx.paren_trailer(); - if (!('arglist' in trailer) || trailer.arglist() === null) { - return []; + return res; + } + + skipFakeNodesUp(ctx, goal) { + let res = ctx.parentCtx; + while ( + res !== undefined && + res !== null && + res.children !== undefined && + res.children.length === 1 + ) { + if (goal && goal in res) { + res = res[goal](); + break; + } + res = res.parentCtx; + } + return res; + } + + /** + * Takes in the constructor name of a node and returns a human-readable + * node name. Used for error reporting, must be defined by all visitors. + * + * @param {String} name + * @return {String} + */ + renameNode(name) { + return name ? name.replace('_stmt', '') : 'Expression'; + } + + /** + * If a named argument is passed in, then check against the 'namedArgs' array + * instead of positionally. + * + * @param {Array} expected + * @param {ParserRuleContext} node + * @param {Object} namedArgs + * @return {Array} + */ + checkNamedArgs(expected, node, namedArgs) { + const child = this.skipFakeNodesDown(node); + if (namedArgs && 'test' in child && child.test().length > 1) { + const name = child.test()[0].getText(); + const value = child.test()[1]; + const expectedType = namedArgs[name]; + if (expectedType === undefined) { + throw new BsonTranspilersArgumentError( + `Unknown named argument '${name}'` + ); + } + return [expectedType.type, value]; + } + return [expected, node]; + } + + /* + * + * Accessor Functions. + * + * These MUST be defined by every visitor. Each function is a wrapper around + * a tree node. They are required so that the CodeGenerationVisitor and the + * Generators can access tree elements without needing to know which tree they + * are visiting or the ANTLR name of the node. + * + */ + + getArguments(ctx) { + const trailer = ctx.paren_trailer(); + if (!('arglist' in trailer) || trailer.arglist() === null) { + return []; + } + return trailer.arglist().argument(); } - return trailer.arglist().argument(); - } - getArgumentAt(ctx, i) { - return this.getArguments(ctx)[i]; - } + getArgumentAt(ctx, i) { + return this.getArguments(ctx)[i]; + } - getFunctionCallName(ctx) { - return ctx.atom(); - } + getFunctionCallName(ctx) { + return ctx.atom(); + } - getIfIdentifier(ctx) { - if ('identifier' in ctx) { - return ctx.identifier(); + getIfIdentifier(ctx) { + if ('identifier' in ctx) { + return ctx.identifier(); + } + return ctx; + } + + getAttributeLHS(ctx) { + return ctx.atom(); } - return ctx; - } - getAttributeLHS(ctx) { - return ctx.atom(); - } + getAttributeRHS(ctx) { + return ctx.dot_trailer().identifier(); + } - getAttributeRHS(ctx) { - return ctx.dot_trailer().identifier(); - } + getList(ctx) { + if (!('testlist_comp' in ctx) || !ctx.testlist_comp()) { + return []; + } + return ctx.testlist_comp().test(); + } - getList(ctx) { - if (!('testlist_comp' in ctx) || !ctx.testlist_comp()) { + getArray(ctx) { + return this.skipFakeNodesDown(ctx, 'array_literal'); + } + + getObject(ctx) { + return this.skipFakeNodesDown(ctx, 'object_literal'); + } + + getKeyValueList(ctx) { + if ('dictorsetmaker' in ctx && ctx.dictorsetmaker()) { + const properties = ctx.dictorsetmaker().test(); + return properties + .map((key, i) => { + if (i % 2 === 0) { + return [key, properties[i + 1]]; + } + return null; + }) + .filter((k) => k !== null); + } return []; } - return ctx.testlist_comp().test(); - } - - getArray(ctx) { - return this.skipFakeNodesDown(ctx, 'array_literal'); - } - - getObject(ctx) { - return this.skipFakeNodesDown(ctx, 'object_literal'); - } - - getKeyValueList(ctx) { - if ('dictorsetmaker' in ctx && ctx.dictorsetmaker()) { - const properties = ctx.dictorsetmaker().test(); - return properties - .map((key, i) => { - if (i % 2 === 0) { - return [ - key, - properties[i + 1] - ]; - } - return null; - }) - .filter((k) => (k !== null)); - } - return []; - } - - getKeyStr(k) { - return removeQuotes(this.visit(k[0])); - } - - getValue(k) { - return k[1]; - } - - isSubObject(ctx) { - return this.getParentUntil(ctx.parentCtx, 'dictorsetmaker', 1); - } - - getParentKeyStr(ctx) { // TODO: fix for long list - // For a given sub document, get its key. - const topNode = this.getParentUntil(ctx.parentCtx, 'dictorsetmaker', 1); - const objNode = topNode.parentCtx; - const index = objNode.test().indexOf(topNode); - const keyNode = objNode.test()[index - 1]; - const key = this.visit(keyNode); - return removeQuotes(key); - } - - getObjectChild(ctx) { - return this.skipFakeNodesDown(ctx); - } -}; + getKeyStr(k) { + return removeQuotes(this.visit(k[0])); + } + + getValue(k) { + return k[1]; + } + + isSubObject(ctx) { + return this.getParentUntil(ctx.parentCtx, 'dictorsetmaker', 1); + } + + getParentKeyStr(ctx) { + // TODO: fix for long list + // For a given sub document, get its key. + const topNode = this.getParentUntil(ctx.parentCtx, 'dictorsetmaker', 1); + const objNode = topNode.parentCtx; + const index = objNode.test().indexOf(topNode); + const keyNode = objNode.test()[index - 1]; + const key = this.visit(keyNode); + return removeQuotes(key); + } + + getObjectChild(ctx) { + return this.skipFakeNodesDown(ctx); + } + }; diff --git a/packages/bson-transpilers/codegeneration/ruby/Generator.js b/packages/bson-transpilers/codegeneration/ruby/Generator.js index f4765399bf2..6da035c02b8 100644 --- a/packages/bson-transpilers/codegeneration/ruby/Generator.js +++ b/packages/bson-transpilers/codegeneration/ruby/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for ruby code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/rust/Generator.js b/packages/bson-transpilers/codegeneration/rust/Generator.js index 7904a87117b..b6657b036ac 100644 --- a/packages/bson-transpilers/codegeneration/rust/Generator.js +++ b/packages/bson-transpilers/codegeneration/rust/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for rust code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/shell/Generator.js b/packages/bson-transpilers/codegeneration/shell/Generator.js index 7784cc713b0..7296aa84393 100644 --- a/packages/bson-transpilers/codegeneration/shell/Generator.js +++ b/packages/bson-transpilers/codegeneration/shell/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for shell code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/shell/Visitor.js b/packages/bson-transpilers/codegeneration/shell/Visitor.js index 9ba45dd6b10..57656a3afea 100644 --- a/packages/bson-transpilers/codegeneration/shell/Visitor.js +++ b/packages/bson-transpilers/codegeneration/shell/Visitor.js @@ -4,7 +4,7 @@ const vm = require('vm'); const bson = require('bson'); const { BsonTranspilersRuntimeError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../../helper/error'); /** @@ -15,136 +15,140 @@ const { * specific visitor. * @return {Visitor} - Input-language specific visitor. */ -module.exports = (JavascriptVisitor) => class Visitor extends JavascriptVisitor { - constructor() { - super(); - } - - processNumberLong(ctx) { - return this.generateNumericClass(ctx); - } - executeJavascript(input) { - const sandbox = { - RegExp: RegExp, - DBRef: bson.DBRef, - Map: bson.Map, - MaxKey: bson.MaxKey, - MinKey: bson.MinKey, - ObjectId: bson.ObjectId, - BSONSymbol: bson.BSONSymbol, - Timestamp: bson.Timestamp, - Decimal128: bson.Decimal128, - Long: bson.Long, - Int32: bson.Int32, - Double: bson.Double, - Code: function(c, s) { - return new bson.Code(c, s); - }, - NumberDecimal: function(s) { - if (s === undefined) { - s = '0'; - } - return bson.Decimal128.fromString(s.toString()); - }, - NumberInt: function(s) { - return parseInt(s, 10); - }, - NumberLong: function(v) { - if (v === undefined) { - v = 0; - } - return bson.Long.fromNumber(v); - }, - ISODate: function(s) { - return new Date(s); - }, - Date: function(s) { - const args = Array.from(arguments); +module.exports = (JavascriptVisitor) => + class Visitor extends JavascriptVisitor { + constructor() { + super(); + } - if (args.length === 1) { + processNumberLong(ctx) { + return this.generateNumericClass(ctx); + } + executeJavascript(input) { + const sandbox = { + RegExp: RegExp, + DBRef: bson.DBRef, + Map: bson.Map, + MaxKey: bson.MaxKey, + MinKey: bson.MinKey, + ObjectId: bson.ObjectId, + BSONSymbol: bson.BSONSymbol, + Timestamp: bson.Timestamp, + Decimal128: bson.Decimal128, + Long: bson.Long, + Int32: bson.Int32, + Double: bson.Double, + Code: function (c, s) { + return new bson.Code(c, s); + }, + NumberDecimal: function (s) { + if (s === undefined) { + s = '0'; + } + return bson.Decimal128.fromString(s.toString()); + }, + NumberInt: function (s) { + return parseInt(s, 10); + }, + NumberLong: function (v) { + if (v === undefined) { + v = 0; + } + return bson.Long.fromNumber(v); + }, + ISODate: function (s) { return new Date(s); - } + }, + Date: function (s) { + const args = Array.from(arguments); - return new Date(Date.UTC(...args)); - }, - Buffer: Buffer, - __result: {} - }; - const res = vm.runInContext('__result = ' + input, vm.createContext(sandbox)); - return res; - } + if (args.length === 1) { + return new Date(s); + } - /** - * BinData needs extra processing because we need to check that the arg is - * valid base64. - * - * TODO: figure out if it ever makes sense to support Binary. - */ - processBinData() { - throw new BsonTranspilersUnimplementedError('BinData type not supported'); - } - - /** - * Needs preprocessing because must be executed in javascript. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processNumberDecimal(ctx) { - ctx.type = this.Types.NumberDecimal; - const symbolType = this.Symbols.NumberDecimal; - let decstr; - try { - decstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - if ('emitNumberDecimal' in this) { - return this.emitNumberDecimal(ctx, decstr); + return new Date(Date.UTC(...args)); + }, + Buffer: Buffer, + __result: {}, + }; + const res = vm.runInContext( + '__result = ' + input, + vm.createContext(sandbox) + ); + return res; } - const lhs = symbolType.template - ? symbolType.template() - : this.returnFunctionCallLhs(symbolType.code, 'NumberDecimal'); - - const res = this.returnFunctionCallLhsRhs(lhs, [decstr], symbolType, lhs); - return this.Syntax.new.template - ? this.Syntax.new.template(res, false, ctx.type.code) - : this.returnFunctionCallLhsRhs(lhs, [decstr], symbolType, lhs); - } + /** + * BinData needs extra processing because we need to check that the arg is + * valid base64. + * + * TODO: figure out if it ever makes sense to support Binary. + */ + processBinData() { + throw new BsonTranspilersUnimplementedError('BinData type not supported'); + } - /** - * Needs preprocessing because ISODate is treated exactly like Date, but always - * is invoked as an object. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processISODate(ctx) { - ctx.wasNew = true; - return this.processDate(ctx); - } + /** + * Needs preprocessing because must be executed in javascript. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processNumberDecimal(ctx) { + ctx.type = this.Types.NumberDecimal; + const symbolType = this.Symbols.NumberDecimal; + let decstr; + try { + decstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + if ('emitNumberDecimal' in this) { + return this.emitNumberDecimal(ctx, decstr); + } + const lhs = symbolType.template + ? symbolType.template() + : this.returnFunctionCallLhs(symbolType.code, 'NumberDecimal'); - /** - * Also accepts no arguments. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processCode(ctx) { - ctx.type = this.Types.Code; - const symbolType = this.Symbols.Code; - const lhs = symbolType.template - ? symbolType.template() - : this.returnFunctionCallLhs(symbolType.code, 'Code'); + const res = this.returnFunctionCallLhsRhs(lhs, [decstr], symbolType, lhs); - if (this.getArguments(ctx).length === 0) { - const code = this.returnFunctionCallLhsRhs(lhs, [], symbolType, lhs); return this.Syntax.new.template - ? this.Syntax.new.template(code, false, ctx.type.code) - : code; + ? this.Syntax.new.template(res, false, ctx.type.code) + : this.returnFunctionCallLhsRhs(lhs, [decstr], symbolType, lhs); + } + + /** + * Needs preprocessing because ISODate is treated exactly like Date, but always + * is invoked as an object. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processISODate(ctx) { + ctx.wasNew = true; + return this.processDate(ctx); } - return this.generateBSONCode(ctx, ctx.type, symbolType, true); - } -}; + /** + * Also accepts no arguments. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processCode(ctx) { + ctx.type = this.Types.Code; + const symbolType = this.Symbols.Code; + const lhs = symbolType.template + ? symbolType.template() + : this.returnFunctionCallLhs(symbolType.code, 'Code'); + + if (this.getArguments(ctx).length === 0) { + const code = this.returnFunctionCallLhsRhs(lhs, [], symbolType, lhs); + return this.Syntax.new.template + ? this.Syntax.new.template(code, false, ctx.type.code) + : code; + } + + return this.generateBSONCode(ctx, ctx.type, symbolType, true); + } + }; diff --git a/packages/bson-transpilers/compile-symbol-table.js b/packages/bson-transpilers/compile-symbol-table.js index bb957bd5183..99d67c67ec0 100644 --- a/packages/bson-transpilers/compile-symbol-table.js +++ b/packages/bson-transpilers/compile-symbol-table.js @@ -45,7 +45,7 @@ const loadSymbolTable = (dir, inputLang, outputLang) => { 'syntax_templates.yaml', 'import_templates.yaml', path.join(inputLang, 'types.yaml'), - path.join(inputLang, 'symbols.yaml') + path.join(inputLang, 'symbols.yaml'), ]; const contents = files.reduce((str, file) => { if (!fs.existsSync(path.join('symbols', file))) { @@ -60,7 +60,18 @@ const loadSymbolTable = (dir, inputLang, outputLang) => { const loadAll = () => { const dir = path.join(__dirname, 'lib', 'symbol-table'); const inputLangs = ['shell']; - const outputLangs = ['java', 'shell', 'python', 'csharp', 'javascript', 'object', 'ruby', 'go', 'rust', 'php']; + const outputLangs = [ + 'java', + 'shell', + 'python', + 'csharp', + 'javascript', + 'object', + 'ruby', + 'go', + 'rust', + 'php', + ]; if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } diff --git a/packages/bson-transpilers/config/error.json b/packages/bson-transpilers/config/error.json index 21bbf0e22d1..7f4224edcfa 100644 --- a/packages/bson-transpilers/config/error.json +++ b/packages/bson-transpilers/config/error.json @@ -26,4 +26,4 @@ "Range": { "message": "Value is out of range" } -} \ No newline at end of file +} diff --git a/packages/bson-transpilers/download-antlr.js b/packages/bson-transpilers/download-antlr.js index 9f35302b77e..e01c21b5c09 100644 --- a/packages/bson-transpilers/download-antlr.js +++ b/packages/bson-transpilers/download-antlr.js @@ -16,4 +16,6 @@ if (fs.existsSync(outputFile)) { console.info('downloading antlr'); -https.get(downloadUrl, (response) => response.pipe(fs.createWriteStream(outputFile))); +https.get(downloadUrl, (response) => + response.pipe(fs.createWriteStream(outputFile)) +); diff --git a/packages/bson-transpilers/helper/format.js b/packages/bson-transpilers/helper/format.js index 09793cfb6d8..c71bd8cf4ec 100644 --- a/packages/bson-transpilers/helper/format.js +++ b/packages/bson-transpilers/helper/format.js @@ -5,13 +5,11 @@ * @param {String} str * @returns {String} */ -const doubleQuoteStringify = function(str) { +const doubleQuoteStringify = function (str) { let newStr = str.toString(); if ( - ( - newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'' - ) || + (newStr.charAt(0) === "'" && newStr.charAt(newStr.length - 1) === "'") || (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') ) { newStr = newStr.substr(1, newStr.length - 2); @@ -26,13 +24,11 @@ const doubleQuoteStringify = function(str) { * @param {String} str * @returns {String} */ -const singleQuoteStringify = function(str) { +const singleQuoteStringify = function (str) { let newStr = str.toString(); if ( - ( - newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'' - ) || + (newStr.charAt(0) === "'" && newStr.charAt(newStr.length - 1) === "'") || (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') ) { newStr = str.substr(1, newStr.length - 2); @@ -47,12 +43,12 @@ const singleQuoteStringify = function(str) { * @param {String} str * @returns {String} */ -const removeQuotes = function(str) { +const removeQuotes = function (str) { let newStr = str.toString(); if ( (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') || - (newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'') + (newStr.charAt(0) === "'" && newStr.charAt(newStr.length - 1) === "'") ) { newStr = newStr.substr(1, newStr.length - 2); } @@ -63,5 +59,5 @@ const removeQuotes = function(str) { module.exports = { doubleQuoteStringify, singleQuoteStringify, - removeQuotes + removeQuotes, }; diff --git a/packages/bson-transpilers/index.js b/packages/bson-transpilers/index.js index 800963245c4..53473321636 100644 --- a/packages/bson-transpilers/index.js +++ b/packages/bson-transpilers/index.js @@ -3,12 +3,13 @@ const antlr4 = require('antlr4'); const ECMAScriptLexer = require('./lib/antlr/ECMAScriptLexer.js'); const ECMAScriptParser = require('./lib/antlr/ECMAScriptParser.js'); -const JavascriptANTLRVisitor = require('./lib/antlr/ECMAScriptVisitor').ECMAScriptVisitor; +const JavascriptANTLRVisitor = + require('./lib/antlr/ECMAScriptVisitor').ECMAScriptVisitor; const ErrorListener = require('./codegeneration/ErrorListener.js'); const { BsonTranspilersInternalError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('./helper/error'); const yaml = require('js-yaml'); @@ -68,8 +69,16 @@ const getTranspiler = (loadTree, visitor, generator, symbols) => { /* Object validation. If the symbol table is missing any of these elements, * then an error should be thrown. Can be empty, but must exist. */ - ['BasicTypes', 'BsonTypes', 'NativeTypes', 'SymbolTypes', 'BsonTypes', - 'BsonSymbols', 'NativeSymbols', 'SymbolTypes'].map((k) => { + [ + 'BasicTypes', + 'BsonTypes', + 'NativeTypes', + 'SymbolTypes', + 'BsonTypes', + 'BsonSymbols', + 'NativeSymbols', + 'SymbolTypes', + ].map((k) => { if (!(k in doc)) { throw new BsonTranspilersInternalError( `Invalid Symbol Table: missing ${k}` @@ -82,15 +91,14 @@ const getTranspiler = (loadTree, visitor, generator, symbols) => { Symbols: Object.assign({}, doc.BsonSymbols, doc.NativeSymbols), Types: Object.assign({}, doc.BasicTypes, doc.BsonTypes, doc.NativeTypes), Syntax: doc.Syntax, - Imports: doc.Imports + Imports: doc.Imports, }); const compile = (input, idiomatic, driverSyntax) => { try { const tree = loadTree(input, transpiler.startRule); - transpiler.idiomatic = idiomatic === undefined ? - transpiler.idiomatic : - idiomatic; + transpiler.idiomatic = + idiomatic === undefined ? transpiler.idiomatic : idiomatic; if (!driverSyntax) { transpiler.clearImports(); transpiler.clearDeclarations(); @@ -113,19 +121,24 @@ const getTranspiler = (loadTree, visitor, generator, symbols) => { const result = {}; Object.keys(input).map((k) => { - result[k] = (k === 'options' || k === 'exportMode') ? input[k] : compile(input[k], idiomatic, true); + result[k] = + k === 'options' || k === 'exportMode' + ? input[k] + : compile(input[k], idiomatic, true); }); - if (!('options' in result) || - !('uri' in result.options) || - !('database' in result.options) || - !('collection' in result.options)) { + if ( + !('options' in result) || + !('uri' in result.options) || + !('database' in result.options) || + !('collection' in result.options) + ) { throw new BsonTranspilersInternalError( 'Missing required metadata to generate drivers syntax' ); } if (!('aggregation' in result) && !('filter' in result)) { throw new BsonTranspilersInternalError( - 'Need to pass \'aggregation\' or \'filter\' when compiling with driver syntax' + "Need to pass 'aggregation' or 'filter' when compiling with driver syntax" ); } if (!transpiler.Syntax.driver) { @@ -138,7 +151,7 @@ const getTranspiler = (loadTree, visitor, generator, symbols) => { compile: compile, getImports: (mode, driverSyntax) => { return transpiler.getImports(mode, driverSyntax); - } + }, }; }; @@ -146,60 +159,78 @@ module.exports = { shell: { java: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getJavaGenerator, shelljavasymbols ), python: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getPythonGenerator, shellpythonsymbols ), csharp: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getCsharpGenerator, shellcsharpsymbols ), javascript: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getJavascriptGenerator, shelljavascriptsymbols ), object: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getObjectGenerator, shellobjectsymbols ), ruby: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getRubyGenerator, shellrubysymbols ), go: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getGoGenerator, shellgosymbols ), rust: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getRustGenerator, shellrustsymbols ), php: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getPhpGenerator, shellphpsymbols - ) + ), }, getTree: { - shell: loadJSTree - } + shell: loadJSTree, + }, }; diff --git a/packages/bson-transpilers/printers/ECMAScriptListener.js b/packages/bson-transpilers/printers/ECMAScriptListener.js index 6acec5be5d1..357603bc6ab 100644 --- a/packages/bson-transpilers/printers/ECMAScriptListener.js +++ b/packages/bson-transpilers/printers/ECMAScriptListener.js @@ -11,10 +11,12 @@ function Listener() { return this; } -Listener.prototype = Object.create(ECMAScriptListener.ECMAScriptListener.prototype); +Listener.prototype = Object.create( + ECMAScriptListener.ECMAScriptListener.prototype +); Listener.prototype.constructor = Listener; -Listener.prototype.buildAST = function(tree, ruleNames) { +Listener.prototype.buildAST = function (tree, ruleNames) { ruleNames = ruleNames || null; let s = antlr4.tree.Trees.getNodeText(tree, ruleNames); @@ -27,7 +29,7 @@ Listener.prototype.buildAST = function(tree, ruleNames) { return s; } - const res = {type: s, node: tree.constructor.name}; + const res = { type: s, node: tree.constructor.name }; if (c > 0) { s = this.buildAST(tree.getChild(0), ruleNames); diff --git a/packages/bson-transpilers/symbols/csharp/templates.yaml b/packages/bson-transpilers/symbols/csharp/templates.yaml index f050db2c781..a9619aaac4e 100644 --- a/packages/bson-transpilers/symbols/csharp/templates.yaml +++ b/packages/bson-transpilers/symbols/csharp/templates.yaml @@ -1,983 +1,1011 @@ # C# Templates Templates: - # Misc - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: '' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: '' - u: '' - # Syntax - DriverTemplate: &DriverTemplate null - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; + # Misc + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: '' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: '' + u: '' + # Syntax + DriverTemplate: &DriverTemplate null + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; + } + else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = '!='; + if (op.includes('!') || op.includes('not')) { + str = '=='; + } + return `${rhs}.indexOf(${lhs}) ${str} -1` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `Math.floor(${s}, ${rhs})`; + case '**': + return `Math.pow(${s}, ${rhs})`; + default: + return `${s} ${op} ${rhs}`; } - return `${lhs} ${op} ${rhs}`; - } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = '!='; - if (op.includes('!') || op.includes('not')) { - str = '=='; - } - return `${rhs}.indexOf(${lhs}) ${str} -1` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `Math.floor(${s}, ${rhs})`; - case '**': - return `Math.pow(${s}, ${rhs})`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosSyntaxTemplate: &EosSyntaxTemplate null + EofSyntaxTemplate: &EofSyntaxTemplate null + NewTemplate: !!js/function &NewSyntaxTemplate > + (expr, skip, code) => { + // Add classes that don't use "new" to array + // So far: [Symbol, Decimal128/NumberDecimal, Long/NumberLong, MinKey, MaxKey, Date.now, Double, Int32, Number, Date] + noNew = [111, 112, 106, 107, 108, 200.1, 104, 105, 2, 200]; + if (skip || (code && noNew.indexOf(code) !== -1)) { + return expr; + } + return `new ${expr}`; + } + # BSON Object Type templates + CodeTypeTemplate: &CodeTypeTemplate null + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + flags = flags === '' ? '' : `(?${flags})`; + // Double-quote stringify + const str = flags + pattern; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosSyntaxTemplate: &EosSyntaxTemplate null - EofSyntaxTemplate: &EofSyntaxTemplate null - NewTemplate: &NewSyntaxTemplate !!js/function > - (expr, skip, code) => { - // Add classes that don't use "new" to array - // So far: [Symbol, Decimal128/NumberDecimal, Long/NumberLong, MinKey, MaxKey, Date.now, Double, Int32, Number, Date] - noNew = [111, 112, 106, 107, 108, 200.1, 104, 105, 2, 200]; - if (skip || (code && noNew.indexOf(code) !== -1)) { - return expr; - } - return `new ${expr}`; + return `Regex("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null + DecimalTypeTemplate: &DecimalTypeTemplate null + LongBasicTypeTemplate: &LongBasicTypeTemplate null + HexTypeTemplate: &HexTypeTemplate null + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal) => { + literal = literal.replace(/[oO]+/g, '0') + return parseInt(literal, 8).toString() + } + NumericTypeTemplate: &NumericTypeTemplate null + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + const initialIndent = '\n' + ' '.repeat(depth-1); + if (literal === '') { + return 'new BsonArray()' } - # BSON Object Type templates - CodeTypeTemplate: &CodeTypeTemplate null - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { + + return `new BsonArray${initialIndent}{${literal}${initialIndent}}`; + } + ArrayTypeArgsTemplate: !!js/function &ArrayTypeArgsTemplate > + (arg, depth, last) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + const arr = arg.split(', new').join(`, ${indent}new`) + + return last ? `${indent}${arr}` : `${indent}${arr},`; + } + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'BsonNull.Value'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'BsonUndefined.Value'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => { + if (literal === '') { + return `new BsonDocument()`; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return 'new BsonDocument()'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const initialIndent = '\n' + ' '.repeat(depth-1); + const doubleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); + newStr = str.substr(1, str.length - 2); } return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - flags = flags === '' ? '' : `(?${flags})`; - // Double-quote stringify - const str = flags + pattern; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `Regex("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null - DecimalTypeTemplate: &DecimalTypeTemplate null - LongBasicTypeTemplate: &LongBasicTypeTemplate null - HexTypeTemplate: &HexTypeTemplate null - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal) => { - literal = literal.replace(/[oO]+/g, '0') - return parseInt(literal, 8).toString() - } - NumericTypeTemplate: &NumericTypeTemplate null - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - const initialIndent = '\n' + ' '.repeat(depth-1); - if (literal === '') { - return 'new BsonArray()' - } - return `new BsonArray${initialIndent}{${literal}${initialIndent}}`; + if (args.length === 1) { + return `new BsonDocument(${doubleStringify(args[0][0])}, ${args[0][1]})`; } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate !!js/function > - (arg, depth, last) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - const arr = arg.split(', new').join(`, ${indent}new`) - return last ? `${indent}${arr}` : `${indent}${arr},`; - } - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'BsonNull.Value'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'BsonUndefined.Value'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => { - if (literal === '') { - return `new BsonDocument()`; - } - return literal; - } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return 'new BsonDocument()'; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const initialIndent = '\n' + ' '.repeat(depth-1); - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } + const pairs = args.map((pair) => { + return `${indent}{ ${doubleStringify(pair[0])}, ${pair[1]} }`; + }).join(', '); - if (args.length === 1) { - return `new BsonDocument(${doubleStringify(args[0][0])}, ${args[0][1]})`; - } + return `new BsonDocument${initialIndent}{${pairs}${initialIndent}}` + } + # BSON Object Method templates + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `${lhs}.Code`; + } + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => { + return `${lhs}.Scope`; + } + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + # Since in python, generated from attr access instead of func call, add () in template. + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `${lhs}.ToString()`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => { + return ''; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return `${lhs}.Equals`; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (lhs, arg) => { + if (arg.indexOf('new') === 0) { + arg = arg.replace(/new /g, '') + } + return `(new ${arg})`; + } - const pairs = args.map((pair) => { - return `${indent}{ ${doubleStringify(pair[0])}, ${pair[1]} }`; - }).join(', '); + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `${lhs}.Timestamp`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + (lhs) => { + return ''; + } + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + (lhs) => { + return `${lhs}.ToString`; + } + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: !!js/function &BinaryLengthTemplate > + () => { + return ''; + } + BinaryLengthArgsTemplate: !!js/function &BinaryLengthArgsTemplate > + (lhs) => { + return `${lhs}.Bytes.Length`; + } + BinaryToStringTemplate: !!js/function &BinaryToStringTemplate > + (lhs) => { + return `${lhs}.ToString`; + } + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `${lhs}.SubType`; + } + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => { + return ''; + } + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.DatabaseName`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + () => { + return ''; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.CollectionName`; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + () => { + return ''; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.Id`; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + () => { + return ''; + } + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `(int) ${lhs}`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => { + return lhs; + } + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `(double) ${lhs}`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (lhs) => { + return `${lhs} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (lhs) => { + return `${lhs} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => { + return `${lhs} <<`; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => { + return `${lhs} >>`; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} - `; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return arg; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `${lhs}`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ' % 2 == 1'; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} == 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return `${lhs}`; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return `${lhs}`; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `(float) ${lhs}`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x0000ffff`; + } + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (lhs) => { + return `${lhs}.ToString`; + } + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => { + return `${lhs}.Equals`; + } + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.ToUniversalTime`; + } + TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.Increment`; + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + (lhs) => { + return ''; + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.ToUniversalTime()`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.Increment`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `new DateTime(1970, 1, 1).AddSeconds(${lhs}.Timestamp)`; + } + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => { + return ''; + } + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `${lhs}.CompareTo`; + } + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs} != `; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs} > `; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >= `; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs} < `; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <= `; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return `${lhs}`; + } + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => { + return ''; + } + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return `${lhs}`; + } + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => { + return ''; + } + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + return `${lhs}`; + } + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + () => { + return ''; + } + # Symbol Templates + CodeSymbolTemplate: + !!js/function &CodeSymbolTemplate > # Also has process method + () => { + return 'BsonJavaScript'; + } + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + // Double quote stringify + let newStr = code === undefined ? '' : code; + const str = newStr; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + return (scope === undefined) ? `(${code})` : `WithScope(${code}, ${scope})`; + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => { + return 'ObjectId'; + } + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, str) => { + if (!str || str.length === 0) { + return '()'; + } + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BinarySymbolTemplate: !!js/function &BinarySymbolTemplate > + () => { + return 'BsonBinaryData'; + } + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, bytes, type) => { + const str = bytes; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + bytes = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return `new BsonDocument${initialIndent}{${pairs}${initialIndent}}` - } - # BSON Object Method templates - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `${lhs}.Code`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => { - return `${lhs}.Scope`; - } - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - # Since in python, generated from attr access instead of func call, add () in template. - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString()`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return `${lhs}.Equals`; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (lhs, arg) => { - if (arg.indexOf('new') === 0) { - arg = arg.replace(/new /g, '') - } - return `(new ${arg})`; - } + if (type === null) { + return `(System.Text.Encoding.ASCII.GetBytes(${bytes}))`; + } + return `(System.Text.Encoding.ASCII.GetBytes(${bytes}), ${type})`; + } + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => { + return 'BsonBinarySubType.Binary'; + } + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => { + return 'BsonBinarySubType.Function'; + } + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => { + return 'BsonBinarySubType.OldBinary'; + } + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => { + return 'BsonBinarySubType.UuidLegacy'; + } + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => { + return 'BsonBinarySubType.UuidStandard'; + } + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => { + return 'BsonBinarySubType.MD5'; + } + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + () => { + return 'BsonBinarySubType.UserDefined'; + } + DBRefSymbolTemplate: !!js/function &DBRefSymbolTemplate > + () => { + return 'MongoDBRef'; + } + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return ''; + } + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `${lhs}.Timestamp`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - (lhs) => { - return ''; - } - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString`; - } - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate !!js/function > - () => { - return ''; - } - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate !!js/function > - (lhs) => { - return `${lhs}.Bytes.Length`; - } - BinaryToStringTemplate: &BinaryToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString`; - } - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `${lhs}.SubType`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.DatabaseName`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.CollectionName`; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.Id`; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `(int) ${lhs}`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => { - return lhs; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `(double) ${lhs}`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (lhs) => { - return `${lhs} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (lhs) => { - return `${lhs} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => { - return `${lhs} <<`; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => { - return `${lhs} >>`; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} - `; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return arg; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ' % 2 == 1'; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} == 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `(float) ${lhs}`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x0000ffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString`; - } - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => { - return `${lhs}.Equals`; - } - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.ToUniversalTime`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.Increment`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - (lhs) => { - return ''; - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.ToUniversalTime()`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.Increment`; + if (type === '_hex') { + return `Convert.ToDouble(${arg})`; } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `new DateTime(1970, 1, 1).AddSeconds(${lhs}.Timestamp)`; + if (type === '_string') { + return `Convert.ToDouble(${arg})`; } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => { - return ''; - } - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `${lhs}.CompareTo`; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} != `; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} > `; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >= `; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} < `; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <= `; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => { - return ''; - } - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => { - return ''; - } - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - () => { - return ''; - } - # Symbol Templates - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > # Also has process method - () => { - return 'BsonJavaScript'; - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - // Double quote stringify - let newStr = code === undefined ? '' : code; - const str = newStr; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return (scope === undefined) ? `(${code})` : `WithScope(${code}, ${scope})`; - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => { - return 'ObjectId'; - } - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, str) => { - if (!str || str.length === 0) { - return '()'; - } - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - BinarySymbolTemplate: &BinarySymbolTemplate !!js/function > - () => { - return 'BsonBinaryData'; - } - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, bytes, type) => { - const str = bytes; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - bytes = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - if (type === null) { - return `(System.Text.Encoding.ASCII.GetBytes(${bytes}))`; - } - return `(System.Text.Encoding.ASCII.GetBytes(${bytes}), ${type})`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => { - return 'BsonBinarySubType.Binary'; - } - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => { - return 'BsonBinarySubType.Function'; + if (type === '_decimal') { + return arg; } - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => { - return 'BsonBinarySubType.OldBinary'; - } - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => { - return 'BsonBinarySubType.UuidLegacy'; - } - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => { - return 'BsonBinarySubType.UuidStandard'; - } - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => { - return 'BsonBinarySubType.MD5'; - } - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - () => { - return 'BsonBinarySubType.UserDefined'; - } - DBRefSymbolTemplate: &DBRefSymbolTemplate !!js/function > - () => { - return 'MongoDBRef'; - } - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return ''; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_hex') { - return `Convert.ToDouble(${arg})`; - } - if (type === '_string') { - return `Convert.ToDouble(${arg})`; - } - - if (type === '_decimal') { - return arg; - } + return `${Math.round(arg).toFixed(1)}`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return ''; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; - return `${Math.round(arg).toFixed(1)}`; - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return ''; + if (type === '_hex' || type === '_decimal' || type === '_string') { + return `Convert.ToInt32(${arg})`; } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - - if (type === '_hex' || type === '_decimal' || type === '_string') { - return `Convert.ToInt32(${arg})`; - } - return arg; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return ''; - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg) => { - if (!arg || arg.length === 0) { - arg = '0'; - } - if (arg.indexOf('\'') === 0 || arg.indexOf('"') === 0) { - return `Convert.ToInt64(${arg})`; - } - return `${arg}L`; - } - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return 'Int64.MaxValue'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return 'Int64.MinValue'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - (lhs) => { - return '0L'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - (lhs) => { - return '1L'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - (lhs) => { - return '-1L'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > # Also has process method - () => { - return ''; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}L`; - } - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => { - return 'Convert.ToInt64'; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - if (arg2) { - return `(${arg1}, ${arg2})` - } - return `(${arg1}, 10)` - } - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => { - return 'BsonMinKey'; - } - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => { - return '.Value'; - } - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => { - return 'BsonMaxKey'; - } - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => { - return '.Value'; - } - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'BsonTimestamp'; - } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - if (typeof arg1 === 'undefined') { - return '(0, 0)' - } - return `(${arg1}, ${arg2})`; - } - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return ''; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (_, arg) => { - return arg; // no parens because generates as a string - } - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'BsonRegularExpression'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - return `(${doubleStringify(pattern)}${flags ? ', ' + doubleStringify(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (_, str) => { // just stringify + return arg; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return ''; + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg) => { + if (!arg || arg.length === 0) { + arg = '0'; + } + if (arg.indexOf('\'') === 0 || arg.indexOf('"') === 0) { + return `Convert.ToInt64(${arg})`; + } + return `${arg}L`; + } + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return 'Int64.MaxValue'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return 'Int64.MinValue'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + (lhs) => { + return '0L'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + (lhs) => { + return '1L'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + (lhs) => { + return '-1L'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: + !!js/function &LongSymbolFromBitsTemplate > # Also has process method + () => { + return ''; + } + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return ''; + } + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (lhs, arg) => { + return `${arg}L`; + } + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => { + return 'Convert.ToInt64'; + } + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (lhs, arg1, arg2) => { + if (arg2) { + return `(${arg1}, ${arg2})` + } + return `(${arg1}, 10)` + } + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => { + return 'BsonMinKey'; + } + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => { + return '.Value'; + } + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => { + return 'BsonMaxKey'; + } + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => { + return '.Value'; + } + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'BsonTimestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + if (typeof arg1 === 'undefined') { + return '(0, 0)' + } + return `(${arg1}, ${arg2})`; + } + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return ''; + } + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (_, arg) => { + return arg; // no parens because generates as a string + } + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'BsonRegularExpression'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const doubleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - return `.Parse("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - (lhs) => { - return `${lhs}.Parse`; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString`; - } - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # BSON Util Templates - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - (lhs) => { - return `new ${lhs}`; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return `new ObjectId.GenerateNewId`; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (isNumber) { - return `(Convert.ToInt32(${arg}))`; - } - return `(${arg})`; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return `new ${lhs}`; + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - # JS Symbol Templates - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return ''; + return `(${doubleStringify(pattern)}${flags ? ', ' + doubleStringify(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (_, str) => { // just stringify + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `.Parse("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + (lhs) => { + return `${lhs}.Parse`; + } + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + (lhs) => { + return `${lhs}.ToString`; + } + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # BSON Util Templates + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + (lhs) => { + return `new ${lhs}`; + } + ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return `new ObjectId.GenerateNewId`; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (isNumber) { + return `(Convert.ToInt32(${arg}))`; + } + return `(${arg})`; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return `new ${lhs}`; + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + # JS Symbol Templates + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return ''; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + + if (type === '_string') { + if (arg.indexOf('.') !== -1) { + return `float.Parse(${arg})` + } + return `int.Parse(${arg})`; } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - if (arg.indexOf('.') !== -1) { - return `float.Parse(${arg})` - } - return `int.Parse(${arg})`; - } + if (arg.indexOf('.') !== -1) { + return `(float) ${arg}` + } + return `(int) ${arg}`; + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'DateTime'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + let toStr = isString? '.ToString("ddd MMM dd yyyy HH\':\'mm\':\'ss UTC")' : ''; - if (arg.indexOf('.') !== -1) { - return `(float) ${arg}` - } - return `(int) ${arg}`; - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'DateTime'; + if (date === null) { + return `${lhs}.Now${toStr}`; } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - let toStr = isString? '.ToString("ddd MMM dd yyyy HH\':\'mm\':\'ss UTC")' : ''; - if (date === null) { - return `${lhs}.Now${toStr}`; - } - - const dateStr = [ - date.getUTCFullYear(), - date.getUTCMonth() + 1, - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds() - ].join(', '); + const dateStr = [ + date.getUTCFullYear(), + date.getUTCMonth() + 1, + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds() + ].join(', '); - return `new ${lhs}(${dateStr})${toStr}`; - } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return 'DateTime.Now'; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - () => { - return ''; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > # Also has process method - () => { - return 'Regex'; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - const universal = ['using MongoDB.Bson;', 'using MongoDB.Driver;']; - const all = universal.concat(Object.values(args)); - return all.join('\n'); - } - DriverImportTemplate: &DriverImportTemplate null - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - () => { - return 'using System.Text.RegularExpressions;'; - } - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate null - 101ImportTemplate: &101ImportTemplate null - 102ImportTemplate: &102ImportTemplate null - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate null - 108ImportTemplate: &108ImportTemplate null - 109ImportTemplate: &109ImportTemplate null - 110ImportTemplate: &110ImportTemplate null - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate null - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate !!js/function > - () => { - return 'using System;'; - } - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + return `new ${lhs}(${dateStr})${toStr}`; + } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return 'DateTime.Now'; + } + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + () => { + return ''; + } + RegExpSymbolTemplate: + !!js/function &RegExpSymbolTemplate > # Also has process method + () => { + return 'Regex'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + const universal = ['using MongoDB.Bson;', 'using MongoDB.Driver;']; + const all = universal.concat(Object.values(args)); + return all.join('\n'); + } + DriverImportTemplate: &DriverImportTemplate null + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + () => { + return 'using System.Text.RegularExpressions;'; + } + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: &100ImportTemplate null + 101ImportTemplate: &101ImportTemplate null + 102ImportTemplate: &102ImportTemplate null + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: &107ImportTemplate null + 108ImportTemplate: &108ImportTemplate null + 109ImportTemplate: &109ImportTemplate null + 110ImportTemplate: &110ImportTemplate null + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: &112ImportTemplate null + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: !!js/function &200ImportTemplate > + () => { + return 'using System;'; + } + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/go/templates.yaml b/packages/bson-transpilers/symbols/go/templates.yaml index 1b19e613662..1422bb58263 100644 --- a/packages/bson-transpilers/symbols/go/templates.yaml +++ b/packages/bson-transpilers/symbols/go/templates.yaml @@ -18,393 +18,529 @@ # # ############################################# Templates: - ######## - # Misc # - ######## - - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: 'y' - g: 'g' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' - - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# - - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const options = spec.options; - const uri = spec.options.uri - const filter = spec.filter || {}; - const exportMode = spec.exportMode; - delete spec.options; - delete spec.filter; - delete spec.exportMode; - - const indent = (depth) => ' '.repeat(depth) - - let driverMethod; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'DeleteMany'; - break; - case 'Update Query': - driverMethod = 'UpdateMany'; - break; - default: - driverMethod = 'Find'; - } + ######## + # Misc # + ######## - const comment = [] - .concat('// Requires the MongoDB Go Driver') - .concat('// https://go.mongodb.org/mongo-driver') - .join('\n'); + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: 'y' + g: 'g' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' - const connect = [] - .concat('ctx := context.TODO()') - .concat(this.declarations.length() > 0 ? `\n${this.declarations.toString()}\n` : '') - .concat('// Set client options') - .concat(`clientOptions := options.Client().ApplyURI("${uri}")`) - .concat('') - .concat('// Connect to MongoDB') - .concat('client, err := mongo.Connect(ctx, clientOptions)') - .concat('if err != nil {') - .concat(' log.Fatal(err)') - .concat('}') - .concat('defer func() {') - .concat(' if err := client.Disconnect(ctx); err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat('}()') - .join('\n'); + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - const coll = [] - .concat(`coll := client.Database("${options.database}").Collection("${options.collection}")`) - .join('\n'); + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const options = spec.options; + const uri = spec.options.uri + const filter = spec.filter || {}; + const exportMode = spec.exportMode; + delete spec.options; + delete spec.filter; + delete spec.exportMode; - if ('aggregation' in spec) { - return [] - .concat(comment) - .concat(connect) - .concat('') - .concat('// Open an aggregation cursor') - .concat(`${coll}`) - .concat(`_, err = coll.Aggregate(ctx, ${spec.aggregation})`) - .concat('if err != nil {') - .concat(' log.Fatal(err)') - .concat('}') - .join('\n'); - } + const indent = (depth) => ' '.repeat(depth) + + let driverMethod; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'DeleteMany'; + break; + case 'Update Query': + driverMethod = 'UpdateMany'; + break; + default: + driverMethod = 'Find'; + } - const findOptions = [] - if (spec.project) - findOptions.push(`options.Find().SetProjection(${spec.project})`); - if (spec.sort) - findOptions.push(`options.Find().SetSort(${spec.sort})`); + const comment = [] + .concat('// Requires the MongoDB Go Driver') + .concat('// https://go.mongodb.org/mongo-driver') + .join('\n'); - const optsStr = findOptions.length > 0 ? `,\n${indent(1)}${findOptions.join(`,\n${indent(1)}`)}` : '' + const connect = [] + .concat('ctx := context.TODO()') + .concat(this.declarations.length() > 0 ? `\n${this.declarations.toString()}\n` : '') + .concat('// Set client options') + .concat(`clientOptions := options.Client().ApplyURI("${uri}")`) + .concat('') + .concat('// Connect to MongoDB') + .concat('client, err := mongo.Connect(ctx, clientOptions)') + .concat('if err != nil {') + .concat(' log.Fatal(err)') + .concat('}') + .concat('defer func() {') + .concat(' if err := client.Disconnect(ctx); err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat('}()') + .join('\n'); + const coll = [] + .concat(`coll := client.Database("${options.database}").Collection("${options.collection}")`) + .join('\n'); + + if ('aggregation' in spec) { return [] .concat(comment) .concat(connect) .concat('') + .concat('// Open an aggregation cursor') .concat(`${coll}`) - .concat(`_, err = coll.${driverMethod}(ctx, ${filter}${optsStr})`) + .concat(`_, err = coll.Aggregate(ctx, ${spec.aggregation})`) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; - } - else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; - } - return `${lhs} ${op} ${rhs}`; + + const findOptions = [] + if (spec.project) + findOptions.push(`options.Find().SetProjection(${spec.project})`); + if (spec.sort) + findOptions.push(`options.Find().SetSort(${spec.sort})`); + + const optsStr = findOptions.length > 0 ? `,\n${indent(1)}${findOptions.join(`,\n${indent(1)}`)}` : '' + + return [] + .concat(comment) + .concat(connect) + .concat('') + .concat(`${coll}`) + .concat(`_, err = coll.${driverMethod}(ctx, ${filter}${optsStr})`) + .concat('if err != nil {') + .concat(' log.Fatal(err)') + .concat('}') + .join('\n'); + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - this.declarations.addFunc([] - .concat(`var contains = func(elems bson.A, v interface{}) bool {`) - .concat(' for _, s := range elems {') - .concat(' if v == s {') - .concat(' return true') - .concat(' }') - .concat(' }') - .concat(' return false') - .concat('}') - .join('\n')); - let prefix = ''; - if (op.includes('!') || op.includes('not')) - prefix = '!'; - return `${prefix}contains(${rhs}, ${lhs})`; + else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => args.join(' && ') - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => args.join(' || ') - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => `!${arg}` - UnarySyntaxTemplate: &UnarySyntaxTemplate !!js/function > - (op, val) => { + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + this.declarations.addFunc([] + .concat(`var contains = func(elems bson.A, v interface{}) bool {`) + .concat(' for _, s := range elems {') + .concat(' if v == s {') + .concat(' return true') + .concat(' }') + .concat(' }') + .concat(' return false') + .concat('}') + .join('\n')); + let prefix = ''; + if (op.includes('!') || op.includes('not')) + prefix = '!'; + return `${prefix}contains(${rhs}, ${lhs})`; + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => args.join(' && ') + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => args.join(' || ') + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => `!${arg}` + UnarySyntaxTemplate: !!js/function &UnarySyntaxTemplate > + (op, val) => { + switch(op) { + case '+': + return val; + case '~': + return `!${val}`; + default: + return `${op}${val}`; + } + return `${op}${val}`; + } + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; + } + const rhs = arr[i + 1]; switch(op) { - case '+': - return val; - case '~': - return `!${val}`; + case '//': + return `${s} / ${rhs}` + case '**': + return `math.Pow(${s}, ${rhs})` default: - return `${op}${val}`; + return `${s} ${op} ${rhs}`; } - return `${op}${val}`; + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + // Double quote stringify + const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; + const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + str = str.substr(1, str.length - 2); + return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + // Wrap string in double quotes + const doubleStringify = (str) => { + const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; + const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + str = str.substr(1, str.length - 2); + return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `${s} / ${rhs}` - case '**': - return `math.Pow(${s}, ${rhs})` - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); + + const structParts = []; + structParts.push(`Pattern: ${doubleStringify(pattern)}`); + if (flags) + structParts.push(`Options: ${doubleStringify(flags)}`); + return `primitive.Regex{${structParts.join(", ")}}`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => literal.toLowerCase() + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType + HexTypeTemplate: &HexTypeTemplate null # args: literal, argType + OctalTypeTemplate: &OctalTypeTemplate null # args: literal, argType + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + if (literal === '') + return 'bson.A{}'; + return `bson.A{${literal}${closingIndent}}`; + } + ArrayTypeArgsTemplate: !!js/function &ArrayTypeArgsTemplate > + (arg, depth, last) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + return `${indent}${arg},`; + } + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => 'primitive.Null{}' + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => 'primitive.Undefined{}' + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => `bson.D{${literal}}` + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + // If there are no args, then there is nothing for us to format + if (args.length === 0) + return ''; + + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + + // Indent every line of a string + const indentBlock = (string, count = 1, options = {}) => { + const { + indent = ' ', + includeEmptyLines = false + } = options; + + const regex = includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; + return string.replace(regex, indent.repeat(count)); } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - // Double quote stringify + + // Wrap string in double quotes + const doubleStringify = (str) => { const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; if (singleQuoted || doubleQuoted) str = str.substr(1, str.length - 2); return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - // Wrap string in double quotes - const doubleStringify = (str) => { - const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; - const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - str = str.substr(1, str.length - 2); - return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - const structParts = []; - structParts.push(`Pattern: ${doubleStringify(pattern)}`); - if (flags) - structParts.push(`Options: ${doubleStringify(flags)}`); - return `primitive.Regex{${structParts.join(", ")}}`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => literal.toLowerCase() - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType - HexTypeTemplate: &HexTypeTemplate null # args: literal, argType - OctalTypeTemplate: &OctalTypeTemplate null # args: literal, argType - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - if (literal === '') - return 'bson.A{}'; - return `bson.A{${literal}${closingIndent}}`; + // Check if a string is multiple lines i.e. has a break point + const isMultiline = (element) => /\r|\n/.exec(element) + + // Format element by go type + const fmt = (element) => { + const hash = { multiline: isMultiline(element) }; + const typeFormatters = { + 'bson.A': (el, hash) => isMultiline(el) ? indentBlock(`${indent}${el},${indent}`) : ` ${el}`, + 'bson.D': (el, hash) => isMultiline(el) ? indentBlock(`${indent}${el},${indent}`) : ` ${el}`, + default: (el, hash) => isMultiline(el) ? el : ` ${el}` + }; + hash.el = typeFormatters.default(element); + for (const type in typeFormatters) + if (element.startsWith(type)) { + hash.el = typeFormatters[type](element); + break; + } + return hash; } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate !!js/function > - (arg, depth, last) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - return `${indent}${arg},`; + + // Get the {key, value} pair for the bson.D object + const getPairs = (args, sep = `,${indent}`) => { + const hash = { multiline: false } + hash.el = args.map((pair) => { + const fmtPair = fmt(pair[1]) + if (!hash.multiline && fmtPair.multiline) + hash.multiline = true + return `{${doubleStringify(pair[0])},${fmtPair.el}}` + }).join(sep) + return hash } - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => 'primitive.Null{}' - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => 'primitive.Undefined{}' - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => `bson.D{${literal}}` - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - // If there are no args, then there is nothing for us to format - if (args.length === 0) - return ''; - - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - - // Indent every line of a string - const indentBlock = (string, count = 1, options = {}) => { - const { - indent = ' ', - includeEmptyLines = false - } = options; - - const regex = includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; - return string.replace(regex, indent.repeat(count)); - } - // Wrap string in double quotes - const doubleStringify = (str) => { - const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; - const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - str = str.substr(1, str.length - 2); - return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } + const pairs = getPairs(args); + const singleLine = args.length <= 1 && !pairs.multiline; + const prefix = singleLine ? '' : indent; + const suffix = singleLine ? '' : ',' + closingIndent; + return `${prefix}${pairs.el}${suffix}`; + } - // Check if a string is multiple lines i.e. has a break point - const isMultiline = (element) => /\r|\n/.exec(element) - - // Format element by go type - const fmt = (element) => { - const hash = { multiline: isMultiline(element) }; - const typeFormatters = { - 'bson.A': (el, hash) => isMultiline(el) ? indentBlock(`${indent}${el},${indent}`) : ` ${el}`, - 'bson.D': (el, hash) => isMultiline(el) ? indentBlock(`${indent}${el},${indent}`) : ` ${el}`, - default: (el, hash) => isMultiline(el) ? el : ` ${el}` - }; - hash.el = typeFormatters.default(element); - for (const type in typeFormatters) - if (element.startsWith(type)) { - hash.el = typeFormatters[type](element); - break; - } - return hash; - } + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: !!js/function &CodeSymbolTemplate > + () => 'primitive.CodeWithScope' + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (_, code, scope) => { + if (code === undefined) + return `{}`; - // Get the {key, value} pair for the bson.D object - const getPairs = (args, sep = `,${indent}`) => { - const hash = { multiline: false } - hash.el = args.map((pair) => { - const fmtPair = fmt(pair[1]) - if (!hash.multiline && fmtPair.multiline) - hash.multiline = true - return `{${doubleStringify(pair[0])},${fmtPair.el}}` - }).join(sep) - return hash - } + if (scope !== undefined) + scope = `Scope: ${scope}`; - const pairs = getPairs(args); - const singleLine = args.length <= 1 && !pairs.multiline; - const prefix = singleLine ? '' : indent; - const suffix = singleLine ? '' : ',' + closingIndent; - return `${prefix}${pairs.el}${suffix}`; - } + const singleQuoted = code.charAt(0) === '\'' && code.charAt(code.length - 1) === '\''; + const doubleQuoted = code.charAt(0) === '"' && code.charAt(code.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + code = code.substr(1, code.length - 2); - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > - () => 'primitive.CodeWithScope' - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (_, code, scope) => { - if (code === undefined) - return `{}`; - - if (scope !== undefined) - scope = `Scope: ${scope}`; - - const singleQuoted = code.charAt(0) === '\'' && code.charAt(code.length - 1) === '\''; - const doubleQuoted = code.charAt(0) === '"' && code.charAt(code.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - code = code.substr(1, code.length - 2); + code = `Code: primitive.JavaScript("${code.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + return (scope === undefined) ? `{${code}}` : `{${code}, ${scope}}`; + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => '' + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (_, arg) => { + if (arg === undefined || arg === '') + return 'primitive.NewObjectID()'; - code = `Code: primitive.JavaScript("${code.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - return (scope === undefined) ? `{${code}}` : `{${code}, ${scope}}`; + // Double quote stringify + const singleQuoted = arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\''; + const doubleQuoted = arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + arg = arg.substr(1, arg.length - 2); + arg = `"${arg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + this.declarations.addFunc([] + .concat('var objectIDFromHex = func(hex string) primitive.ObjectID {') + .concat(` objectID, err := primitive.ObjectIDFromHex(hex)`) + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return objectID') + .concat('}') + .join('\n')); + return `objectIDFromHex(${arg})` + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => '' + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + if (!arg) + arg = 0; + switch(type) { + case '_string': + this.declarations.addFunc([] + .concat('var parseFloat64 = func(str string) float64 {') + .concat(' f64, err := strconv.ParseFloat(str, 64)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return f64') + .concat('}') + .join('\n')); + return `parseFloat64(${arg})` + default: + return `float64(${arg})`; + } + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => '' + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + if (!arg) + arg = 0 + switch(type) { + case '_string': + this.declarations.addFunc([] + .concat('var parseInt32 = func(str string) int32 {') + .concat('i64, err := strconv.ParseInt(str, 10, 32)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return int32(i64)') + .concat('}') + .join('\n')); + return `parseInt32(${arg})`; + default: + return `int32(${arg})`; + } + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => '' + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + if (!arg) + arg = 0 + switch(type) { + case '_string': + this.declarations.addFunc([] + .concat('var parseInt = func(str string) int64 {') + .concat(' i64, err := strconv.ParseInt(str, 10, 64)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return i64') + .concat('}') + .join('\n')); + return `parseInt64(${arg})`; + default: + return `int64(${arg})`; } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => '' - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (_, arg) => { - if (arg === undefined || arg === '') - return 'primitive.NewObjectID()'; - - // Double quote stringify - const singleQuoted = arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\''; - const doubleQuoted = arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"'; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => 'regex' + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => 'primitive.Symbol' + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => 'primitive.Regex' + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (_, pattern, flags) => { + // Wrap string in double quotes + const doubleStringify = (str) => { + const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; + const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; if (singleQuoted || doubleQuoted) - arg = arg.substr(1, arg.length - 2); - arg = `"${arg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - this.declarations.addFunc([] - .concat('var objectIDFromHex = func(hex string) primitive.ObjectID {') - .concat(` objectID, err := primitive.ObjectIDFromHex(hex)`) - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return objectID') - .concat('}') - .join('\n')); - return `objectIDFromHex(${arg})` + str = str.substr(1, str.length - 2); + return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + + const structParts = []; + structParts.push(`Pattern: ${doubleStringify(pattern)}`); + if (flags) + structParts.push(`Options: ${doubleStringify(flags)}`); + return `(${structParts.join(", ")})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => '' + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (_, arg) => { + if (!arg) + arg = '"0"'; + + // Double quote stringify + const singleQuoted = arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\''; + const doubleQuoted = arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + arg = arg.substr(1, arg.length - 2); + arg = `"${arg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + + this.declarations.addFunc([] + .concat('var parseDecimal128 = func(str string) primitive.Decimal128 {') + .concat(' d128, err := primitive.ParseDecimal128(str)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return d128') + .concat('}') + .join('\n')); + return `parseDecimal128(${arg})`; + } + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => 'primitive.MinKey' + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => '{}' + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => 'primitive.MaxKey' + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => '{}' + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => 'primitive.Timestamp' + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, low, high) => { + if (low === undefined) { + low = 0; + high = 0; } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => '' - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - if (!arg) - arg = 0; - switch(type) { - case '_string': + return `{T: ${low}, I: ${high}}` + } + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => '' + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + + switch(type) { + case '_string': + if (arg.indexOf('.') !== -1) { this.declarations.addFunc([] .concat('var parseFloat64 = func(str string) float64 {') .concat(' f64, err := strconv.ParseFloat(str, 64)') @@ -415,592 +551,475 @@ Templates: .concat('}') .join('\n')); return `parseFloat64(${arg})` - default: - return `float64(${arg})`; - } - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => '' - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - if (!arg) - arg = 0 - switch(type) { - case '_string': - this.declarations.addFunc([] - .concat('var parseInt32 = func(str string) int32 {') - .concat('i64, err := strconv.ParseInt(str, 10, 32)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return int32(i64)') - .concat('}') - .join('\n')); - return `parseInt32(${arg})`; - default: - return `int32(${arg})`; - } - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => '' - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - if (!arg) - arg = 0 - switch(type) { - case '_string': - this.declarations.addFunc([] - .concat('var parseInt = func(str string) int64 {') - .concat(' i64, err := strconv.ParseInt(str, 10, 64)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return i64') - .concat('}') - .join('\n')); - return `parseInt64(${arg})`; - default: - return `int64(${arg})`; - } + } + this.declarations.addFunc([] + .concat('var parseInt = func(str string) int64 {') + .concat(' i64, err := strconv.ParseInt(str, 10, 64)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return i64') + .concat('}') + .join('\n')); + return `parseInt64(${arg})`; + default: + return `${arg}` } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => 'regex' - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => 'primitive.Symbol' - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => 'primitive.Regex' - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (_, pattern, flags) => { - // Wrap string in double quotes - const doubleStringify = (str) => { - const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; - const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - str = str.substr(1, str.length - 2); - return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => 'time.Date' + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + if (date === null) + return `time.Now()`; - const structParts = []; - structParts.push(`Pattern: ${doubleStringify(pattern)}`); - if (flags) - structParts.push(`Options: ${doubleStringify(flags)}`); - return `(${structParts.join(", ")})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => '' - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (_, arg) => { - if (!arg) - arg = '"0"'; - - // Double quote stringify - const singleQuoted = arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\''; - const doubleQuoted = arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - arg = arg.substr(1, arg.length - 2); - arg = `"${arg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - - this.declarations.addFunc([] - .concat('var parseDecimal128 = func(str string) primitive.Decimal128 {') - .concat(' d128, err := primitive.ParseDecimal128(str)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return d128') - .concat('}') - .join('\n')); - return `parseDecimal128(${arg})`; - } - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => 'primitive.MinKey' - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => '{}' - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => 'primitive.MaxKey' - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => '{}' - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => 'primitive.Timestamp' - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, low, high) => { - if (low === undefined) { - low = 0; - high = 0; - } - return `{T: ${low}, I: ${high}}` - } - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => '' - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - - switch(type) { - case '_string': - if (arg.indexOf('.') !== -1) { - this.declarations.addFunc([] - .concat('var parseFloat64 = func(str string) float64 {') - .concat(' f64, err := strconv.ParseFloat(str, 64)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return f64') - .concat('}') - .join('\n')); - return `parseFloat64(${arg})` - } - this.declarations.addFunc([] - .concat('var parseInt = func(str string) int64 {') - .concat(' i64, err := strconv.ParseInt(str, 10, 64)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return i64') - .concat('}') - .join('\n')); - return `parseInt64(${arg})`; - default: - return `${arg}` - } - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => 'time.Date' - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - if (date === null) - return `time.Now()`; - - const dateStr = [ - date.getUTCFullYear(), - date.getUTCMonth() + 1, - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - '0', - 'time.UTC' - ].join(', '); - - return `${lhs}(${dateStr})` - } + const dateStr = [ + date.getUTCFullYear(), + date.getUTCMonth() + 1, + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds(), + '0', + 'time.UTC' + ].join(', '); - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => `${lhs}.Code` - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => lhs - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => `${lhs}.String()` - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => '' - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - () => '' - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (arg1, arg2) => `${arg1} == ${arg2}` - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => `${lhs}.Timestamp()` - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => '' - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - () => `primitive.IsValidObjectID` - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate null - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate null - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null - DBRefGetIdTemplate: &DBRefGetIdTemplate null - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null - DBRefToStringTemplate: &DBRefToStringTemplate null - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate null - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => `${lhs} == ` - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (_, arg) => arg - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => `strconv.Itoa(${lhs})` - LongToStringArgsTemplate: &LongToStringArgsTemplate !!js/function > - () => '' - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => `int(${lhs})` - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => '' - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => `float64(${lhs})` - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - (arg) => '' - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => `${lhs} + ` - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (_, args) => args - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (lhs) => `${lhs} - ` - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (_, arg) => arg - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (lhs) => `${lhs} * ` - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (_, arg) => arg - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => `${lhs} / ` - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (_, arg) => arg - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => `${lhs} % ` - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (_, arg) => arg - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => `${lhs} & ` - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (_, arg) => arg - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => `${lhs} | ` - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (_, arg) => arg - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => `${lhs} ^ ` - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (_, arg) => arg - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => `${lhs} << ` - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (_, rhs) => rhs - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => `${lhs} >> ` - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (_, rhs) => rhs - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => `${lhs} - ` - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (_, rhs) => rhs - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (arg) => `${arg} % 2 == 1` - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => '' - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (arg) => `${arg} == int64(0)` - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => '' - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (arg) => `${arg} < int64(0)` - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => '' - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => '-' - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => lhs - LongNotTemplate: &LongNotTemplate !!js/function > - () => '^' - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => lhs - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => `${lhs} != ` - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => `${lhs} > ` - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (_, rhs) => rhs - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} >= ` - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => `${lhs} < ` - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (_, rhs) => rhs - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} <= ` - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (arg) => `float64(${arg})` - LongTopTemplate: &LongTopTemplate !!js/function > - (arg) => `${arg} >> 32` - LongBottomTemplate: &LongBottomTemplate !!js/function > - (arg) => `${arg} & 0x0000ffff` - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (lhs) => `time.Unix(${lhs}.T, 0).String` - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - () => '()' - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => `${lhs}.Equal` - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (_, rhs) => `(${rhs})` - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => `${lhs}.T` - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => '' - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => `${lhs}.I` - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => '' - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => `${lhs}.T` - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => `${lhs}.I` - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => `time.Unix(${lhs}.T, 0)` - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => '' - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - () => 'primitive.CompareTimestamp' - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (lhs, rhs) => `(${lhs}, ${rhs})` - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => `!${lhs}.Equal` - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (_, rhs) => `(${rhs})` - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - () => '' - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, rhs) => `primitive.CompareTimestamp(${lhs}, ${rhs}) == 1` - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - () => '' - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (arg1, arg2) => `primitive.CompareTimestamp(${arg1}, ${arg2}) >= 0` - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => '' - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, rhs) => `primitive.CompareTimestamp(${lhs}, ${rhs}) == -1` - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - () => '' - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (arg1, arg2) => `primitive.CompareTimestamp(${arg1}, ${arg2}) <= 0` - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - () => '' - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - (arg) => arg - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - () => '' - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - (arg) => arg - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - () => '' - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - (lhs) => `string(${lhs})` - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - (lhs) => `${lhs}.String()` - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate !!js/function > - () => '' - # non bson-specific - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => 'time.Now()' - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - () => '' - - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => 'int(^uint(0) >> 1)' - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => '-(1+int(^uint(0) >> 1))' - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => 'int64(0)' - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => 'int64(1)' - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => 'int64(-1)' - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > - () => 'int64' - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => 'int64' - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => 'int64' - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => '' - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (_, arg) => { - this.declarations.addFunc([] - .concat('var int64FromString = func(str string) int64 {') - .concat(' f64, err := strconv.Atoi(str)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return f64') - .concat('}') - .join('\n')); - return `int64FromString(${arg})`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - () => '' - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (_, arg) => { - this.declarations.addFunc([] - .concat('var parseDecimal128 = func(str string) primitive.Decimal128 {') - .concat(' d128, err := primitive.ParseDecimal128(str)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return d128') - .concat('}') - .join('\n')); - return `parseDecimal128(${arg})`; - } - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => '' - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (_, arg) => { - this.declarations.addFunc([] - .concat('var objectIDFromHex = func(hex string) primitive.ObjectID {') - .concat(` objectID, err := primitive.ObjectIDFromHex(hex)`) - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return objectID') - .concat('}') - .join('\n')); - return `objectIDFromHex(${arg})` - } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => 'primitive.NewObjectIDFromTimestamp' - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (_, arg, isNumber) => isNumber ? `(time.Unix(${arg}, int64(0)))` : `(${arg})` - # non bson-specific would go here, but there aren't any atm. - - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - const imports = Object.values(args).flat() - const driverImports = args.driver || []; - delete args['driver']; - - const flattenedArgs = Array.from(new Set([...driverImports, ...imports])).sort(); - const universal = []; - const all = universal - .concat(flattenedArgs) - .map((i) => ` "${i}"`); - return [] - .concat('import (') - .concat(all.join('\n')) - .concat(')') - .join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return [ - "go.mongodb.org/mongo-driver/mongo", - "go.mongodb.org/mongo-driver/mongo/options", - "context", - "log" - ] - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate !!js/function > - () => ['go.mongodb.org/mongo-driver/bson'] - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 101ImportTemplate: &101ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive', 'log'] - 102ImportTemplate: &102ImportTemplate null - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate !!js/function > - (args) => ['log', 'strconv'] - 105ImportTemplate: &105ImportTemplate !!js/function > - (args) => ['log', 'strconv'] - 106ImportTemplate: &106ImportTemplate !!js/function > - (args) => ['log', 'strconv'] - 107ImportTemplate: &107ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 108ImportTemplate: &108ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 109ImportTemplate: &109ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 110ImportTemplate: &110ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 111ImportTemplate: &111ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 112ImportTemplate: &112ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive', 'log'] - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate !!js/function > - (args) => ['time.Time'] - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + return `${lhs}(${dateStr})` + } + + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => `${lhs}.Code` + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => lhs + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => `${lhs}.String()` + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => '' + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + () => '' + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (arg1, arg2) => `${arg1} == ${arg2}` + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => `${lhs}.Timestamp()` + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => '' + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + () => `primitive.IsValidObjectID` + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: &BinarySubtypeTemplate null + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: &DBRefGetDBTemplate null + DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null + DBRefGetIdTemplate: &DBRefGetIdTemplate null + DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null + DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null + DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null + DBRefToStringTemplate: &DBRefToStringTemplate null + DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: &Int32ToStringTemplate null + Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => `${lhs} == ` + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (_, arg) => arg + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => `strconv.Itoa(${lhs})` + LongToStringArgsTemplate: !!js/function &LongToStringArgsTemplate > + () => '' + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => `int(${lhs})` + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => '' + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => `float64(${lhs})` + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + (arg) => '' + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => `${lhs} + ` + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (_, args) => args + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (lhs) => `${lhs} - ` + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (_, arg) => arg + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (lhs) => `${lhs} * ` + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (_, arg) => arg + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => `${lhs} / ` + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (_, arg) => arg + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => `${lhs} % ` + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (_, arg) => arg + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => `${lhs} & ` + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (_, arg) => arg + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => `${lhs} | ` + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (_, arg) => arg + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => `${lhs} ^ ` + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (_, arg) => arg + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => `${lhs} << ` + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (_, rhs) => rhs + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => `${lhs} >> ` + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (_, rhs) => rhs + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => `${lhs} - ` + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (_, rhs) => rhs + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (arg) => `${arg} % 2 == 1` + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => '' + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (arg) => `${arg} == int64(0)` + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => '' + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (arg) => `${arg} < int64(0)` + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => '' + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => '-' + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => lhs + LongNotTemplate: !!js/function &LongNotTemplate > + () => '^' + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => lhs + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => `${lhs} != ` + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (_, rhs) => rhs + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => `${lhs} > ` + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (_, rhs) => rhs + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => `${lhs} >= ` + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (_, rhs) => rhs + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => `${lhs} < ` + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (_, rhs) => rhs + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => `${lhs} <= ` + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (_, rhs) => rhs + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (arg) => `float64(${arg})` + LongTopTemplate: !!js/function &LongTopTemplate > + (arg) => `${arg} >> 32` + LongBottomTemplate: !!js/function &LongBottomTemplate > + (arg) => `${arg} & 0x0000ffff` + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (lhs) => `time.Unix(${lhs}.T, 0).String` + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + () => '()' + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => `${lhs}.Equal` + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (_, rhs) => `(${rhs})` + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => `${lhs}.T` + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => '' + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => `${lhs}.I` + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => '' + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => `${lhs}.T` + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => `${lhs}.I` + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => `time.Unix(${lhs}.T, 0)` + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => '' + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + () => 'primitive.CompareTimestamp' + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (lhs, rhs) => `(${lhs}, ${rhs})` + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => `!${lhs}.Equal` + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (_, rhs) => `(${rhs})` + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + () => '' + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, rhs) => `primitive.CompareTimestamp(${lhs}, ${rhs}) == 1` + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + () => '' + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (arg1, arg2) => `primitive.CompareTimestamp(${arg1}, ${arg2}) >= 0` + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => '' + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, rhs) => `primitive.CompareTimestamp(${lhs}, ${rhs}) == -1` + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + () => '' + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (arg1, arg2) => `primitive.CompareTimestamp(${arg1}, ${arg2}) <= 0` + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + () => '' + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + (arg) => arg + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + () => '' + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + (arg) => arg + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + () => '' + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + (lhs) => `string(${lhs})` + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + (lhs) => `${lhs}.String()` + Decimal128ToStringArgsTemplate: + !!js/function &Decimal128ToStringArgsTemplate > + () => '' + # non bson-specific + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => 'time.Now()' + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + () => '' + + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => 'int(^uint(0) >> 1)' + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => '-(1+int(^uint(0) >> 1))' + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => 'int64(0)' + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => 'int64(1)' + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => 'int64(-1)' + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: !!js/function &LongSymbolFromBitsTemplate > + () => 'int64' + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => 'int64' + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => 'int64' + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => '' + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (_, arg) => { + this.declarations.addFunc([] + .concat('var int64FromString = func(str string) int64 {') + .concat(' f64, err := strconv.Atoi(str)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return f64') + .concat('}') + .join('\n')); + return `int64FromString(${arg})`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + () => '' + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (_, arg) => { + this.declarations.addFunc([] + .concat('var parseDecimal128 = func(str string) primitive.Decimal128 {') + .concat(' d128, err := primitive.ParseDecimal128(str)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return d128') + .concat('}') + .join('\n')); + return `parseDecimal128(${arg})`; + } + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => '' + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (_, arg) => { + this.declarations.addFunc([] + .concat('var objectIDFromHex = func(hex string) primitive.ObjectID {') + .concat(` objectID, err := primitive.ObjectIDFromHex(hex)`) + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return objectID') + .concat('}') + .join('\n')); + return `objectIDFromHex(${arg})` + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => 'primitive.NewObjectIDFromTimestamp' + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (_, arg, isNumber) => isNumber ? `(time.Unix(${arg}, int64(0)))` : `(${arg})` + # non bson-specific would go here, but there aren't any atm. + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + const imports = Object.values(args).flat() + const driverImports = args.driver || []; + delete args['driver']; + + const flattenedArgs = Array.from(new Set([...driverImports, ...imports])).sort(); + const universal = []; + const all = universal + .concat(flattenedArgs) + .map((i) => ` "${i}"`); + return [] + .concat('import (') + .concat(all.join('\n')) + .concat(')') + .join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return [ + "go.mongodb.org/mongo-driver/mongo", + "go.mongodb.org/mongo-driver/mongo/options", + "context", + "log" + ] + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: !!js/function &10ImportTemplate > + () => ['go.mongodb.org/mongo-driver/bson'] + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: !!js/function &100ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 101ImportTemplate: !!js/function &101ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive', 'log'] + 102ImportTemplate: &102ImportTemplate null + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: !!js/function &104ImportTemplate > + (args) => ['log', 'strconv'] + 105ImportTemplate: !!js/function &105ImportTemplate > + (args) => ['log', 'strconv'] + 106ImportTemplate: !!js/function &106ImportTemplate > + (args) => ['log', 'strconv'] + 107ImportTemplate: !!js/function &107ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 108ImportTemplate: !!js/function &108ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 109ImportTemplate: !!js/function &109ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 110ImportTemplate: !!js/function &110ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 111ImportTemplate: !!js/function &111ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 112ImportTemplate: !!js/function &112ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive', 'log'] + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: !!js/function &200ImportTemplate > + (args) => ['time.Time'] + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/java/templates.yaml b/packages/bson-transpilers/symbols/java/templates.yaml index 17b31ac48c3..80ea93241bb 100644 --- a/packages/bson-transpilers/symbols/java/templates.yaml +++ b/packages/bson-transpilers/symbols/java/templates.yaml @@ -1,1148 +1,1175 @@ # Java Templates Templates: - # Misc - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' - # Syntax - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const comment = `/* - * Requires the MongoDB Java Driver. - * https://mongodb.github.io/mongo-java-driver`; + # Misc + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' + # Syntax + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const comment = `/* + * Requires the MongoDB Java Driver. + * https://mongodb.github.io/mongo-java-driver`; - const str = spec.options.uri; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - const uri = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - const exportMode = spec.exportMode; - delete spec.exportMode; - - const connection = `MongoClient mongoClient = new MongoClient( - new MongoClientURI( - ${uri} - ) - ); - - MongoDatabase database = mongoClient.getDatabase("${spec.options.database}"); - - MongoCollection collection = database.getCollection("${spec.options.collection}");`; - - let driverMethod; - let driverResult; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'deleteMany'; - driverResult = 'DeleteResult'; - break; - case 'Update Query': - driverMethod = 'updateMany'; - driverResult = 'UpdateResult'; - break; - default: - driverMethod = 'find'; - driverResult = 'FindIterable'; + const str = spec.options.uri; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - if ('aggregation' in spec) { - return `${comment}\n */\n\n${connection} + const uri = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + const exportMode = spec.exportMode; + delete spec.exportMode; - AggregateIterable result = collection.aggregate(${spec.aggregation});`; - } + const connection = `MongoClient mongoClient = new MongoClient( + new MongoClientURI( + ${uri} + ) + ); - let warning = ''; - const defs = Object.keys(spec).reduce((s, k) => { - if (!spec[k]) return s; - if (k === 'options' || k === 'maxTimeMS' || k === 'skip' || k === 'limit' || k === 'collation') return s; - if (s === '') return `Bson ${k} = ${spec[k]};`; - return `${s} - Bson ${k} = ${spec[k]};`; - }, ''); + MongoDatabase database = mongoClient.getDatabase("${spec.options.database}"); - const result = Object.keys(spec).reduce((s, k) => { - switch (k) { - case 'options': - case 'filter': - return s; - case 'maxTimeMS': - return `${s} - .maxTime(${spec[k]}, TimeUnit.MICROSECONDS)`; - case 'skip': - case 'limit': - return `${s} - .${k}((int)${spec[k]})`; - case 'project': - return `${s} - .projection(project)`; - case 'collation': - warning = '\n *\n * Warning: translating collation to Java not yet supported, so will be ignored'; - return s; - case 'exportMode': - return s; - default: - if (!spec[k]) return s; - return `${s} - .${k}(${k})`; - } - }, `${driverResult} result = collection.${driverMethod}(filter)`); + MongoCollection collection = database.getCollection("${spec.options.collection}");`; - return `${comment}${warning}\n */\n\n${defs} + let driverMethod; + let driverResult; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'deleteMany'; + driverResult = 'DeleteResult'; + break; + case 'Update Query': + driverMethod = 'updateMany'; + driverResult = 'UpdateResult'; + break; + default: + driverMethod = 'find'; + driverResult = 'FindIterable'; + } + if ('aggregation' in spec) { + return `${comment}\n */\n\n${connection} - ${connection} - - ${result};`; - } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; - } else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; - } - return `${lhs} ${op} ${rhs}`; + AggregateIterable result = collection.aggregate(${spec.aggregation});`; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = ''; - if (op.includes('!') || op.includes('not')) { - str = '!'; - } - return `${str}${rhs}.contains(${lhs})` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { + + let warning = ''; + const defs = Object.keys(spec).reduce((s, k) => { + if (!spec[k]) return s; + if (k === 'options' || k === 'maxTimeMS' || k === 'skip' || k === 'limit' || k === 'collation') return s; + if (s === '') return `Bson ${k} = ${spec[k]};`; + return `${s} + Bson ${k} = ${spec[k]};`; + }, ''); + + const result = Object.keys(spec).reduce((s, k) => { + switch (k) { + case 'options': + case 'filter': return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `floor(${s})`; - case '**': - return `pow(${s}, ${rhs})`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosSyntaxTemplate: &EosSyntaxTemplate null - EofSyntaxTemplate: &EofSyntaxTemplate null - NewTemplate: &NewSyntaxTemplate !!js/function > - (expr, skip, code) => { - // Add codes of classes that don't need new. - // Currently: Decimal128/NumberDecimal, Long/NumberLong, Double, Int32, Number, regex, Date - noNew = [112, 106, 104, 105, 2, 8, 200]; - if (skip || (code && noNew.indexOf(code) !== -1)) { - return expr; + case 'maxTimeMS': + return `${s} + .maxTime(${spec[k]}, TimeUnit.MICROSECONDS)`; + case 'skip': + case 'limit': + return `${s} + .${k}((int)${spec[k]})`; + case 'project': + return `${s} + .projection(project)`; + case 'collation': + warning = '\n *\n * Warning: translating collation to Java not yet supported, so will be ignored'; + return s; + case 'exportMode': + return s; + default: + if (!spec[k]) return s; + return `${s} + .${k}(${k})`; } - return `new ${expr}`; - } - # BSON Object Type templates - CodeTypeTemplate: &CodeTypeTemplate null - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - flags = flags === '' ? '' : `(?${flags})`; - // Double escape characters except for slashes - const escaped = pattern.replace(/\\/, '\\\\'); + }, `${driverResult} result = collection.${driverMethod}(filter)`); - // Double-quote stringify - const str = escaped + flags; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `Pattern.compile("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null - DecimalTypeTemplate: &DecimalTypeTemplate !!js/function > - (literal, type) => { - if (type === '_integer' || type === '_long' || type === '_decimal') { - return `${literal}d`; - } - return `(double) ${literal}`; - } - LongBasicTypeTemplate: &LongBasicTypeTemplate !!js/function > - (literal, type) => { - if (type === '_integer' || type === '_long') { - return `${literal}L`; - } - return `new Long(${literal})`; - } - HexTypeTemplate: &HexTypeTemplate null # TODO - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal, type) => { - if ((literal.charAt(0) === '0' && literal.charAt(1) === '0') || - (literal.charAt(0) === '0' && (literal.charAt(1) === 'o' || literal.charAt(1) === 'O'))) { - return `0${literal.substr(2, literal.length - 1)}`; - } - return literal; - } - NumericTypeTemplate: &NumericTypeTemplate null - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - // TODO: figure out how to best do depth in an array and where to - // insert and indent - const indent = '\n' + ' '.repeat(depth); - // have an indent on every ', new Document' in an array not - // entirely perfect, but at least makes this more readable/also - // compiles - const arr = literal.split(', new').join(`, ${indent}new`) + return `${comment}${warning}\n */\n\n${defs} - return `Arrays.asList(${arr})`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'new BsonNull()'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'new BsonUndefined()'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal, depth) => { + ${connection} - if (literal === '') { - return `new Document()`; + ${result};`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; + } else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = ''; + if (op.includes('!') || op.includes('not')) { + str = '!'; + } + return `${str}${rhs}.contains(${lhs})` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - return literal; - } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return 'new Document()'; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `floor(${s})`; + case '**': + return `pow(${s}, ${rhs})`; + default: + return `${s} ${op} ${rhs}`; } - depth++; - const indent = '\n' + ' '.repeat(depth); - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - const start = `new Document(${doubleStringify(args[0][0])}, ${args[0][1]})`; - - args = args.slice(1); - const result = args.reduce((str, pair) => { - return `${str}${indent}.append(${doubleStringify(pair[0])}, ${pair[1]})`; - }, start); + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosSyntaxTemplate: &EosSyntaxTemplate null + EofSyntaxTemplate: &EofSyntaxTemplate null + NewTemplate: !!js/function &NewSyntaxTemplate > + (expr, skip, code) => { + // Add codes of classes that don't need new. + // Currently: Decimal128/NumberDecimal, Long/NumberLong, Double, Int32, Number, regex, Date + noNew = [112, 106, 104, 105, 2, 8, 200]; + if (skip || (code && noNew.indexOf(code) !== -1)) { + return expr; + } + return `new ${expr}`; + } + # BSON Object Type templates + CodeTypeTemplate: &CodeTypeTemplate null + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + flags = flags === '' ? '' : `(?${flags})`; + // Double escape characters except for slashes + const escaped = pattern.replace(/\\/, '\\\\'); - return `${result}`; - } - DoubleTypeTemplate: &DoubleTypeTemplate !!js/function > - (literal, type) => { - if (type === '_integer' || type === '_long' || type === '_decimal') { - return `${literal}d`; - } - return `(double) ${literal}`; - } - DoubleTypeArgsTemplate: &DoubleTypeArgsTemplate !!js/function > - () => { - return ''; - } - LongTypeTemplate: &LongTemplate !!js/function > - () => { - return ''; - } - LongTypeArgsTemplate: &LongSymbolArgsTemplate null - # BSON Object Method templates - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.toHexString()`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `${lhs}.getTimestamp()`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => { - return ''; - } - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `${lhs}.getCode()`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => { - return `${lhs}.getScope()`; - } - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - (lhs) => { - return `${lhs}.getData`; - } - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `${lhs}.getType()`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.getDatabaseName()`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.getCollectionName()`; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.getId()`; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => { - return lhs; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `(int) ${lhs}`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `(double) ${lhs}`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (arg) => { - return `${arg} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (arg) => { - return `${arg} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - () => { - return 'Long.rotateLeft'; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return `(${lhs}, ${arg})`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - () => { - return 'Long.rotateRight'; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return `(${lhs}, ${arg})`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} -`; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `(${lhs} % 2) == 1`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ''; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} == 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `(float) ${lhs}`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x0000ffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate null - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate null - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.getTime`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.getInc`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.getTime()`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.getInc()`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `new java.util.Date(${lhs}.getTime())`; - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => { - return ''; - } - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) != 0`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) > 0`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) >= 0`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) < 0`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) <= 0`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return `${lhs}.getSymbol`; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return `${lhs}.getSymbol`; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.toString`; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null - # Symbol Templates - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > # Also has process method - () => { - return 'Code'; - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > # Also has process method - (lhs, code, scope) => { - // Double quote stringify - let newStr = code === undefined ? '' : code; - const str = newStr; - if ( + // Double-quote stringify + const str = escaped + flags; + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return (scope === undefined) ? `(${code})` : `WithScope(${code}, ${scope})`; - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, str) => { - if (!str || str.length === 0) { - return '()'; - } - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + newStr = str.substr(1, str.length - 2); } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, bytes, type) => { - const str = bytes; + return `Pattern.compile("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null + DecimalTypeTemplate: !!js/function &DecimalTypeTemplate > + (literal, type) => { + if (type === '_integer' || type === '_long' || type === '_decimal') { + return `${literal}d`; + } + return `(double) ${literal}`; + } + LongBasicTypeTemplate: !!js/function &LongBasicTypeTemplate > + (literal, type) => { + if (type === '_integer' || type === '_long') { + return `${literal}L`; + } + return `new Long(${literal})`; + } + HexTypeTemplate: &HexTypeTemplate null # TODO + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal, type) => { + if ((literal.charAt(0) === '0' && literal.charAt(1) === '0') || + (literal.charAt(0) === '0' && (literal.charAt(1) === 'o' || literal.charAt(1) === 'O'))) { + return `0${literal.substr(2, literal.length - 1)}`; + } + return literal; + } + NumericTypeTemplate: &NumericTypeTemplate null + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + // TODO: figure out how to best do depth in an array and where to + // insert and indent + const indent = '\n' + ' '.repeat(depth); + // have an indent on every ', new Document' in an array not + // entirely perfect, but at least makes this more readable/also + // compiles + const arr = literal.split(', new').join(`, ${indent}new`) + + return `Arrays.asList(${arr})`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'new BsonNull()'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'new BsonUndefined()'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal, depth) => { + + if (literal === '') { + return `new Document()`; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return 'new Document()'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const doubleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - bytes = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - - if (type === null) { - return `(${bytes}.getBytes("UTF-8"))`; - } - return `(${type}, ${bytes}.getBytes("UTF-8"))`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => { - return 'BsonBinarySubType.BINARY'; - } - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => { - return 'BsonBinarySubType.FUNCTION'; - } - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => { - return 'BsonBinarySubType.BINARY'; - } - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => { - return 'BsonBinarySubType.UUID_LEGACY'; - } - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => { - return 'BsonBinarySubType.UUID_STANDARD'; - } - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => { - return 'BsonBinarySubType.MD5'; - } - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - () => { - return 'BsonBinarySubType.USER_DEFINED'; - } - DBRefSymbolTemplate: &DBRefSymbolTemplate null - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate !!js/function > - (lhs, coll, id, db) => { - const dbstr = db === undefined ? '' : `${db}, `; - return `(${dbstr}${coll}, ${id})`; - } - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return ''; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Double.parseDouble(${arg})`; - } - if (type === '_integer' || type === '_long' || type === '_double' || type === '_decimal') { - if (arg.includes('L') || arg.includes('d')) { - return `${arg.substr(0, arg.length - 1)}d`; - } - return `${arg}d`; - } - return `(double) ${arg}`; + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return ''; + const start = `new Document(${doubleStringify(args[0][0])}, ${args[0][1]})`; + + args = args.slice(1); + const result = args.reduce((str, pair) => { + return `${str}${indent}.append(${doubleStringify(pair[0])}, ${pair[1]})`; + }, start); + + return `${result}`; + } + DoubleTypeTemplate: !!js/function &DoubleTypeTemplate > + (literal, type) => { + if (type === '_integer' || type === '_long' || type === '_decimal') { + return `${literal}d`; + } + return `(double) ${literal}`; + } + DoubleTypeArgsTemplate: !!js/function &DoubleTypeArgsTemplate > + () => { + return ''; + } + LongTypeTemplate: !!js/function &LongTemplate > + () => { + return ''; + } + LongTypeArgsTemplate: &LongSymbolArgsTemplate null + # BSON Object Method templates + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `${lhs}.toHexString()`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => { + return ''; + } + ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null + ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `${lhs}.getTimestamp()`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => { + return ''; + } + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `${lhs}.getCode()`; + } + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => { + return `${lhs}.getScope()`; + } + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + (lhs) => { + return `${lhs}.getData`; + } + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `${lhs}.getType()`; + } + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => { + return ''; + } + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.getDatabaseName()`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + () => { + return ''; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.getCollectionName()`; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + () => { + return ''; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.getId()`; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + () => { + return ''; + } + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => { + return lhs; + } + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `(int) ${lhs}`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `(double) ${lhs}`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (arg) => { + return `${arg} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (arg) => { + return `${arg} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + () => { + return 'Long.rotateLeft'; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return `(${lhs}, ${arg})`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + () => { + return 'Long.rotateRight'; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return `(${lhs}, ${arg})`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} -`; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `(${lhs} % 2) == 1`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ''; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} == 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return lhs; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return lhs; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `(float) ${lhs}`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x0000ffff`; + } + TimestampToStringTemplate: &TimestampToStringTemplate null + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: &TimestampEqualsTemplate null + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.getTime`; + } + TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.getInc`; + } + TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.getTime()`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.getInc()`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `new java.util.Date(${lhs}.getTime())`; + } + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => { + return ''; + } + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return `(${arg}) != 0`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return `(${arg}) > 0`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return `(${arg}) >= 0`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return `(${arg}) < 0`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return `(${arg}) <= 0`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return `${lhs}.getSymbol`; + } + SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return `${lhs}.getSymbol`; + } + SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + return `${lhs}.toString`; + } + SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null + # Symbol Templates + CodeSymbolTemplate: + !!js/function &CodeSymbolTemplate > # Also has process method + () => { + return 'Code'; + } + CodeSymbolArgsTemplate: + !!js/function &CodeSymbolArgsTemplate > # Also has process method + (lhs, code, scope) => { + // Double quote stringify + let newStr = code === undefined ? '' : code; + const str = newStr; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + return (scope === undefined) ? `(${code})` : `WithScope(${code}, ${scope})`; + } + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, str) => { + if (!str || str.length === 0) { + return '()'; + } + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, bytes, type) => { + const str = bytes; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Integer.parseInt(${arg})`; - } - if (type === '_integer' || type === '_long') { - if (arg.includes('L') || arg.includes('d')) { - return arg.substr(0, arg.length - 1); - } - return arg; + bytes = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + + if (type === null) { + return `(${bytes}.getBytes("UTF-8"))`; + } + return `(${type}, ${bytes}.getBytes("UTF-8"))`; + } + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => { + return 'BsonBinarySubType.BINARY'; + } + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => { + return 'BsonBinarySubType.FUNCTION'; + } + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => { + return 'BsonBinarySubType.BINARY'; + } + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => { + return 'BsonBinarySubType.UUID_LEGACY'; + } + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => { + return 'BsonBinarySubType.UUID_STANDARD'; + } + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => { + return 'BsonBinarySubType.MD5'; + } + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + () => { + return 'BsonBinarySubType.USER_DEFINED'; + } + DBRefSymbolTemplate: &DBRefSymbolTemplate null + DBRefSymbolArgsTemplate: !!js/function &DBRefSymbolArgsTemplate > + (lhs, coll, id, db) => { + const dbstr = db === undefined ? '' : `${db}, `; + return `(${dbstr}${coll}, ${id})`; + } + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return ''; + } + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Double.parseDouble(${arg})`; + } + if (type === '_integer' || type === '_long' || type === '_double' || type === '_decimal') { + if (arg.includes('L') || arg.includes('d')) { + return `${arg.substr(0, arg.length - 1)}d`; } - return `(int) ${arg}`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return ''; - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Long.parseLong(${arg})`; + return `${arg}d`; + } + return `(double) ${arg}`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return ''; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Integer.parseInt(${arg})`; + } + if (type === '_integer' || type === '_long') { + if (arg.includes('L') || arg.includes('d')) { + return arg.substr(0, arg.length - 1); } - if (type === '_integer' || type === '_long') { - if (arg.includes('d') || arg.includes('L')) { - return `${arg.substr(0, arg.length - 1)}L`; - } - return `${arg}L`; + return arg; + } + return `(int) ${arg}`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return ''; + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Long.parseLong(${arg})`; + } + if (type === '_integer' || type === '_long') { + if (arg.includes('d') || arg.includes('L')) { + return `${arg.substr(0, arg.length - 1)}L`; } - return `new Long(${arg})`; - } - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return 'Long.MAX_VALUE'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return 'Long.MIN_VALUE'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => { - return '0L'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => { - return '1L'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => { - return '-1L'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > # Also has process method - () => { - return ''; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}L`; - } - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate !!js/function > - (lhs, arg) => { return `${arg}L`; } - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - (lhs) => { - return `Long.parseLong`; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null - MinKeySymbolTemplate: &MinKeySymbolTemplate null - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'BSONTimestamp'; - } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; - } - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return 'Symbol'; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'BsonRegularExpression'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - return `(${doubleStringify(pattern)}${flags ? ', ' + doubleStringify(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (_, str) => { // just stringify + return `new Long(${arg})`; + } + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return 'Long.MAX_VALUE'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return 'Long.MIN_VALUE'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => { + return '0L'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => { + return '1L'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => { + return '-1L'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: + !!js/function &LongSymbolFromBitsTemplate > # Also has process method + () => { + return ''; + } + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return ''; + } + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (lhs, arg) => { + return `${arg}L`; + } + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => { + return ''; + } + LongSymbolFromNumberArgsTemplate: + !!js/function &LongSymbolFromNumberArgsTemplate > + (lhs, arg) => { + return `${arg}L`; + } + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + (lhs) => { + return `Long.parseLong`; + } + LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null + MinKeySymbolTemplate: &MinKeySymbolTemplate null + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'BSONTimestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + } + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return 'Symbol'; + } + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'BsonRegularExpression'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const doubleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - return `.parse("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - (lhs) => { - return `${lhs}.parse`; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # BSON Util Templates - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => { - return 'new ObjectId'; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return 'new ObjectId'; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (isNumber) { - return `(new java.util.Date(${arg.replace(/L$/, '000L')}))`; - } - return `(${arg})`; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - () => { - return 'ObjectId.isValid'; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - # JS Symbol Templates - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return ''; - } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Double.parseDouble(${arg})`; - } - if (type === '_integer' || type === '_long' || type === '_decimal') { - if (arg.includes('L') || arg.includes('d')) { - return `${arg.substr(0, arg.length - 1)}d`; - } - return `${arg}d`; - } - return `(double) ${arg}`; - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'java.util.Date'; - } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - let toStr = (d) => d; - if (isString) { - toStr = (d) => `new SimpleDateFormat("EEE MMMMM dd yyyy HH:mm:ss").format(${d})`; - } - if (date === null) { - return toStr(`new ${lhs}()`); - } - return toStr(`new ${lhs}(${date.getTime()}L)`); - } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return ''; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - () => { - return 'new java.util.Date().getTime()'; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => { - return 'Pattern'; + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + return `(${doubleStringify(pattern)}${flags ? ', ' + doubleStringify(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (_, str) => { // just stringify + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null - ImportTemplate: &ImportTemplate null - DriverImportTemplate: &DriverImportTemplate !!js/function > - (_, mode) => { - let imports = 'import com.mongodb.MongoClient;\n' + - 'import com.mongodb.MongoClientURI;\n' + - 'import com.mongodb.client.MongoCollection;\n' + - 'import com.mongodb.client.MongoDatabase;\n' + - 'import org.bson.conversions.Bson;\n' + - 'import java.util.concurrent.TimeUnit;\n' + - 'import org.bson.Document;\n'; - if (mode === 'Query') { - imports += 'import com.mongodb.client.FindIterable;'; - } else if (mode === 'Pipeline') { - imports += 'import com.mongodb.client.AggregateIterable;'; - } else if (mode === 'Delete Query') { - imports += 'import com.mongodb.client.result.DeleteResult;'; + return `.parse("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + (lhs) => { + return `${lhs}.parse`; + } + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # BSON Util Templates + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (isNumber) { + return `(new java.util.Date(${arg.replace(/L$/, '000L')}))`; + } + return `(${arg})`; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + () => { + return 'ObjectId.isValid'; + } + ObjectIdIsValidArgsTemplate: !!js/function &ObjectIdIsValidArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + # JS Symbol Templates + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return ''; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Double.parseDouble(${arg})`; + } + if (type === '_integer' || type === '_long' || type === '_decimal') { + if (arg.includes('L') || arg.includes('d')) { + return `${arg.substr(0, arg.length - 1)}d`; } - return imports; - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - () => { - return 'import java.util.regex.Pattern;'; - } - 9ImportTemplate: &9ImportTemplate !!js/function > - () => { - return 'import java.util.Arrays;'; - } - 10ImportTemplate: &10ImportTemplate !!js/function > - () => { - return 'import org.bson.Document;'; - } - 11ImportTemplate: &11ImportTemplate !!js/function > - () => { - return 'import org.bson.BsonNull;'; - } - 12ImportTemplate: &12ImportTemplate !!js/function > - () => { - return 'import org.bson.BsonUndefined;'; - } - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return 'import org.bson.types.Code;'; - } - 113ImportTemplate: &113ImportTemplate !!js/function > - () => { - return 'import org.bson.types.CodeWithScope;'; - } - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return 'import org.bson.types.ObjectId;'; - } - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return 'import org.bson.types.Binary;'; - } - 103ImportTemplate: &103ImportTemplate !!js/function > - () => { - return 'import com.mongodb.DBRef;'; - } - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return 'import org.bson.types.MinKey;'; - } - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return 'import org.bson.types.MaxKey;'; - } - 109ImportTemplate: &109ImportTemplate !!js/function > - () => { - return 'import org.bson.BsonRegularExpression;'; - } - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return 'import org.bson.types.BSONTimestamp;'; - } - 111ImportTemplate: &111ImportTemplate !!js/function > - () => { - return 'import org.bson.types.Symbol;'; - } - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return 'import org.bson.types.Decimal128;'; - } - 114ImportTemplate: &114ImportTemplate !!js/function > - () => { - return 'import org.bson.BsonBinarySubType;'; - } - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate !!js/function > - () => { - return 'import java.text.SimpleDateFormat;'; - } - 300ImportTemplate: &300ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i && f !== 'options')) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Filters.${c};`; - }).join('\n'); - } - 301ImportTemplate: &301ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Aggregates.${c};`; - }).join('\n'); - } - 302ImportTemplate: &302ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Accumulators.${c};`; - }).join('\n'); - } - 303ImportTemplate: &303ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Projections.${c};`; - }).join('\n'); - } - 304ImportTemplate: &304ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Sorts.${c};`; - }).join('\n'); - } - 305ImportTemplate: &305ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import com.mongodb.client.model.geojson.${c};`; - }).join('\n'); - } - 306ImportTemplate: &306ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import com.mongodb.client.model.${c};`; - }).join('\n'); - } + return `${arg}d`; + } + return `(double) ${arg}`; + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'java.util.Date'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + let toStr = (d) => d; + if (isString) { + toStr = (d) => `new SimpleDateFormat("EEE MMMMM dd yyyy HH:mm:ss").format(${d})`; + } + if (date === null) { + return toStr(`new ${lhs}()`); + } + return toStr(`new ${lhs}(${date.getTime()}L)`); + } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return ''; + } + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + () => { + return 'new java.util.Date().getTime()'; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => { + return 'Pattern'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null + ImportTemplate: &ImportTemplate null + DriverImportTemplate: !!js/function &DriverImportTemplate > + (_, mode) => { + let imports = 'import com.mongodb.MongoClient;\n' + + 'import com.mongodb.MongoClientURI;\n' + + 'import com.mongodb.client.MongoCollection;\n' + + 'import com.mongodb.client.MongoDatabase;\n' + + 'import org.bson.conversions.Bson;\n' + + 'import java.util.concurrent.TimeUnit;\n' + + 'import org.bson.Document;\n'; + if (mode === 'Query') { + imports += 'import com.mongodb.client.FindIterable;'; + } else if (mode === 'Pipeline') { + imports += 'import com.mongodb.client.AggregateIterable;'; + } else if (mode === 'Delete Query') { + imports += 'import com.mongodb.client.result.DeleteResult;'; + } + return imports; + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + () => { + return 'import java.util.regex.Pattern;'; + } + 9ImportTemplate: !!js/function &9ImportTemplate > + () => { + return 'import java.util.Arrays;'; + } + 10ImportTemplate: !!js/function &10ImportTemplate > + () => { + return 'import org.bson.Document;'; + } + 11ImportTemplate: !!js/function &11ImportTemplate > + () => { + return 'import org.bson.BsonNull;'; + } + 12ImportTemplate: !!js/function &12ImportTemplate > + () => { + return 'import org.bson.BsonUndefined;'; + } + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return 'import org.bson.types.Code;'; + } + 113ImportTemplate: !!js/function &113ImportTemplate > + () => { + return 'import org.bson.types.CodeWithScope;'; + } + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return 'import org.bson.types.ObjectId;'; + } + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return 'import org.bson.types.Binary;'; + } + 103ImportTemplate: !!js/function &103ImportTemplate > + () => { + return 'import com.mongodb.DBRef;'; + } + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return 'import org.bson.types.MinKey;'; + } + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return 'import org.bson.types.MaxKey;'; + } + 109ImportTemplate: !!js/function &109ImportTemplate > + () => { + return 'import org.bson.BsonRegularExpression;'; + } + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return 'import org.bson.types.BSONTimestamp;'; + } + 111ImportTemplate: !!js/function &111ImportTemplate > + () => { + return 'import org.bson.types.Symbol;'; + } + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return 'import org.bson.types.Decimal128;'; + } + 114ImportTemplate: !!js/function &114ImportTemplate > + () => { + return 'import org.bson.BsonBinarySubType;'; + } + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: !!js/function &201ImportTemplate > + () => { + return 'import java.text.SimpleDateFormat;'; + } + 300ImportTemplate: !!js/function &300ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i && f !== 'options')) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Filters.${c};`; + }).join('\n'); + } + 301ImportTemplate: !!js/function &301ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Aggregates.${c};`; + }).join('\n'); + } + 302ImportTemplate: !!js/function &302ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Accumulators.${c};`; + }).join('\n'); + } + 303ImportTemplate: !!js/function &303ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Projections.${c};`; + }).join('\n'); + } + 304ImportTemplate: !!js/function &304ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Sorts.${c};`; + }).join('\n'); + } + 305ImportTemplate: !!js/function &305ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import com.mongodb.client.model.geojson.${c};`; + }).join('\n'); + } + 306ImportTemplate: !!js/function &306ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import com.mongodb.client.model.${c};`; + }).join('\n'); + } diff --git a/packages/bson-transpilers/symbols/javascript/templates.yaml b/packages/bson-transpilers/symbols/javascript/templates.yaml index 7ef8f788f47..02941d551f3 100644 --- a/packages/bson-transpilers/symbols/javascript/templates.yaml +++ b/packages/bson-transpilers/symbols/javascript/templates.yaml @@ -1,651 +1,654 @@ # Javascript Templates Templates: - # Misc - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: 'y' - g: 'g' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' - # Syntax - DriverTemplate: &DriverTemplate !!js/function | - (spec) => { - const comment = `/* - * Requires the MongoDB Node.js Driver - * https://mongodb.github.io/node-mongodb-native - */`; - const translateKey = { - project: 'projection' - }; + # Misc + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: 'y' + g: 'g' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' + # Syntax + DriverTemplate: !!js/function &DriverTemplate | + (spec) => { + const comment = `/* + * Requires the MongoDB Node.js Driver + * https://mongodb.github.io/node-mongodb-native + */`; + const translateKey = { + project: 'projection' + }; - const exportMode = spec.exportMode; - delete spec.exportMode; + const exportMode = spec.exportMode; + delete spec.exportMode; - const args = {}; - Object.keys(spec).forEach((k) => { - if (k !== 'options') { - args[k in translateKey ? translateKey[k] : k] = spec[k]; - } - }); - - let cmd; - let defs; - if (exportMode == 'Delete Query') { - defs = `const filter = ${args.filter};\n`; - cmd = `const result = coll.deleteMany(filter);`; + const args = {}; + Object.keys(spec).forEach((k) => { + if (k !== 'options') { + args[k in translateKey ? translateKey[k] : k] = spec[k]; } - if ('aggregation' in spec) { - const agg = spec.aggregation; - cmd = `const cursor = coll.aggregate(agg);\nconst result = await cursor.toArray();`; - defs = `const agg = ${agg};\n`; - } else if (!cmd) { - let opts = ''; + }); + + let cmd; + let defs; + if (exportMode == 'Delete Query') { + defs = `const filter = ${args.filter};\n`; + cmd = `const result = coll.deleteMany(filter);`; + } + if ('aggregation' in spec) { + const agg = spec.aggregation; + cmd = `const cursor = coll.aggregate(agg);\nconst result = await cursor.toArray();`; + defs = `const agg = ${agg};\n`; + } else if (!cmd) { + let opts = ''; - if (Object.keys(args).length > 0) { - defs = Object.keys(args).reduce((s, k) => { - if (k !== 'filter') { - if (opts === '') { - opts = `${k}`; - } else { - opts = `${opts}, ${k}`; - } + if (Object.keys(args).length > 0) { + defs = Object.keys(args).reduce((s, k) => { + if (k !== 'filter') { + if (opts === '') { + opts = `${k}`; + } else { + opts = `${opts}, ${k}`; } - return `${s}const ${k} = ${args[k]};\n`; - }, ''); - opts = opts === '' ? '' : `, { ${opts} }`; - } - cmd = `const cursor = coll.find(filter${opts});\nconst result = await cursor.toArray();`; - } - return `${comment}\n\n${defs} - const client = await MongoClient.connect( - '${spec.options.uri}' - ); - const coll = client.db('${spec.options.database}').collection('${spec.options.collection}'); - ${cmd} - await client.close();`; - } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} !== ${rhs}`; - } else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} === ${rhs}`; + } + return `${s}const ${k} = ${args[k]};\n`; + }, ''); + opts = opts === '' ? '' : `, { ${opts} }`; } - return `${lhs} ${op} ${rhs}`; - } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = '!=='; - if (op.includes('!') || op.includes('not')) { - str = '==='; + cmd = `const cursor = coll.find(filter${opts});\nconst result = await cursor.toArray();`; + } + return `${comment}\n\n${defs} + const client = await MongoClient.connect( + '${spec.options.uri}' + ); + const coll = client.db('${spec.options.database}').collection('${spec.options.collection}'); + ${cmd} + await client.close();`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} !== ${rhs}`; + } else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} === ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = '!=='; + if (op.includes('!') || op.includes('not')) { + str = '==='; + } + return `${rhs}.indexOf(${lhs}) ${str} -1` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - return `${rhs}.indexOf(${lhs}) ${str} -1` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `Math.floor(${s}, ${rhs})`; - case '**': - return `Math.pow(${s}, ${rhs})`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosSyntaxTemplate: &EosSyntaxTemplate null - EofSyntaxTemplate: &EofSyntaxTemplate null - NewTemplate: &NewSyntaxTemplate !!js/function > - (expr, skip, code) => { - // Add classes that don't use "new" to array. - // So far: [Date.now, Decimal128/NumberDecimal, Long/NumberLong] - noNew = [200.1, 112, 106]; - if (skip || (code && noNew.indexOf(code) !== -1)) { - return expr; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `Math.floor(${s}, ${rhs})`; + case '**': + return `Math.pow(${s}, ${rhs})`; + default: + return `${s} ${op} ${rhs}`; } - return `new ${expr}`; - } - # BSON Object Type templates - CodeTypeTemplate: &CodeTypeTemplate null - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosSyntaxTemplate: &EosSyntaxTemplate null + EofSyntaxTemplate: &EofSyntaxTemplate null + NewTemplate: !!js/function &NewSyntaxTemplate > + (expr, skip, code) => { + // Add classes that don't use "new" to array. + // So far: [Date.now, Decimal128/NumberDecimal, Long/NumberLong] + noNew = [200.1, 112, 106]; + if (skip || (code && noNew.indexOf(code) !== -1)) { + return expr; + } + return `new ${expr}`; + } + # BSON Object Type templates + CodeTypeTemplate: &CodeTypeTemplate null + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + const str = pattern; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - const str = pattern; + pattern = `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + return `RegExp(${pattern}${flags ? ', ' + '\'' + flags + '\'': ''})`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null + DecimalTypeTemplate: &DecimalTypeTemplate null + LongBasicTypeTemplate: &LongBasicTypeTemplate null + HexTypeTemplate: &HexTypeTemplate null + OctalTypeTemplate: &OctalTypeTemplate null + NumericTypeTemplate: &NumericTypeTemplate null + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + if (literal === '') { + return '[]' + } + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + + return `[${indent}${literal}${closingIndent}]`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'null'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'undefined'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => { + if (literal === '') { + return '{}'; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return '{}'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + const singleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - pattern = `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - return `RegExp(${pattern}${flags ? ', ' + '\'' + flags + '\'': ''})`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null - DecimalTypeTemplate: &DecimalTypeTemplate null - LongBasicTypeTemplate: &LongBasicTypeTemplate null - HexTypeTemplate: &HexTypeTemplate null - OctalTypeTemplate: &OctalTypeTemplate null - NumericTypeTemplate: &NumericTypeTemplate null - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - if (literal === '') { - return '[]' - } - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - - return `[${indent}${literal}${closingIndent}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'null'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'undefined'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => { - if (literal === '') { - return '{}'; - } - return literal; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return '{}'; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - } - const pairs = args.map((arg) => { - return `${indent}${singleStringify(arg[0])}: ${arg[1]}`; - }).join(', '); + const pairs = args.map((arg) => { + return `${indent}${singleStringify(arg[0])}: ${arg[1]}`; + }).join(', '); - return `{${pairs}${closingIndent}}` - } - # BSON Object Method templates - CodeCodeTemplate: &CodeCodeTemplate null - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate null - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate null - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate null - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate null - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `${lhs}.sub_type`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.db`; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.namespace`; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.oid`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate null - LongEqualsArgsTemplate: &LongEqualsArgsTemplate null - LongToStringTemplate: &LongToStringTemplate null - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `${lhs}.toInt`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate null - LongToNumberArgsTemplate: &LongToNumberArgsTemplate null - LongAddTemplate: &LongAddTemplate null - LongAddArgsTemplate: &LongAddArgsTemplate null - LongSubtractTemplate: &LongSubtractTemplate null - LongSubtractArgsTemplate: &LongSubtractArgsTemplate null - LongMultiplyTemplate: &LongMultiplyTemplate null - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null - LongDivTemplate: &LongDivTemplate null - LongDivArgsTemplate: &LongDivArgsTemplate null - LongModuloTemplate: &LongModuloTemplate null - LongModuloArgsTemplate: &LongModuloArgsTemplate null - LongAndTemplate: &LongAndTemplate null - LongAndArgsTemplate: &LongAndArgsTemplate null - LongOrTemplate: &LongOrTemplate null - LongOrArgsTemplate: &LongOrArgsTemplate null - LongXorTemplate: &LongXorTemplate null - LongXorArgsTemplate: &LongXorArgsTemplate null - LongShiftLeftTemplate: &LongShiftLeftTemplate null - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null - LongShiftRightTemplate: &LongShiftRightTemplate null - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null - LongCompareTemplate: &LongCompareTemplate null - LongCompareArgsTemplate: &LongCompareArgsTemplate null - LongIsOddTemplate: &LongIsOddTemplate null - LongIsOddArgsTemplate: &LongIsOddArgsTemplate null - LongIsZeroTemplate: &LongIsZeroTemplate null - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null - LongIsNegativeTemplate: &LongIsNegativeTemplate null - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null - LongNegateTemplate: &LongNegateTemplate null - LongNegateArgsTemplate: &LongNegateArgsTemplate null - LongNotTemplate: &LongNotTemplate null - LongNotArgsTemplate: &LongNotArgsTemplate null - LongNotEqualsTemplate: &LongNotEqualsTemplate null - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null - LongGreaterThanTemplate: &LongGreaterThanTemplate null - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null - LongLessThanTemplate: &LongLessThanTemplate null - LongLessThanArgsTemplate: &LongLessThanArgsTemplate null - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `${lhs}.toNumber()`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs}.getHighBits()`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs}.getLowBits()`; - } - TimestampToStringTemplate: &TimestampToStringTemplate null - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate null - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.getLowBits`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.getHighBits`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.getLowBits()`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.getHighBits()`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `new Date(${lhs}.getHighBits() * 1000)`; - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => { - return ''; - } - TimestampCompareTemplate: &TimestampCompareTemplate null - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null - TimestampLessThanTemplate: &TimestampLessThanTemplate null - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null - SymbolValueOfTemplate: &SymbolValueOfTemplate null - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null - SymbolInspectTemplate: &SymbolInspectTemplate null - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null - SymbolToStringTemplate: &SymbolToStringTemplate null - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null - # Symbol Templates - CodeSymbolTemplate: &CodeSymbolTemplate null - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - code = code === undefined ? '\'\'' : code; - scope = scope === undefined ? '' : `, ${scope}`; - return `(${code}${scope})`; - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, str) => { - if (!str || str.length === 0) { - return '()'; - } - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; - } - BinarySymbolTemplate: &BinarySymbolTemplate !!js/function > - () => { - return 'Binary'; - } - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, buffer, subtype) => { - return `(${buffer.toString('base64')}, '${subtype}')`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate null - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return 'Double'; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return 'Int32'; - } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? 0 : arg; - return `(${arg})`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return ''; - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Long.fromString(${arg})`; - } - return `Long.fromNumber(${arg})`; - } - LongSymbolMaxTemplate: &LongSymbolMaxTemplate null - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate null - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate null - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate null - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null - MinKeySymbolTemplate: &MinKeySymbolTemplate null - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null - TimestampSymbolTemplate: &TimestampSymbolTemplate null - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; - } - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return 'BSONSymbol'; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'BSONRegExp'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; - } - return `(${singleStringify(pattern)}${flags ? ', ' + singleStringify(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '0' : arg.toString(); - if (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') { - return `.fromString(${arg})`; - } - return `.fromString('${arg}')`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # BSON Util Templates - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return `ObjectId.createFromTime`; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (!isNumber) { - return `(${arg}.getTime() / 1000)`; + return `{${pairs}${closingIndent}}` + } + # BSON Object Method templates + CodeCodeTemplate: &CodeCodeTemplate null + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: &CodeScopeTemplate null + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: &ObjectIdToStringTemplate null + ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate null + ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null + ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null + ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate null + ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `${lhs}.sub_type`; + } + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => { + return ''; + } + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.db`; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.namespace`; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.oid`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + () => { + return ''; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + () => { + return ''; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + () => { + return ''; + } + LongEqualsTemplate: &LongEqualsTemplate null + LongEqualsArgsTemplate: &LongEqualsArgsTemplate null + LongToStringTemplate: &LongToStringTemplate null + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `${lhs}.toInt`; + } + LongToIntArgsTemplate: &LongToIntArgsTemplate null + LongToNumberTemplate: &LongToNumberTemplate null + LongToNumberArgsTemplate: &LongToNumberArgsTemplate null + LongAddTemplate: &LongAddTemplate null + LongAddArgsTemplate: &LongAddArgsTemplate null + LongSubtractTemplate: &LongSubtractTemplate null + LongSubtractArgsTemplate: &LongSubtractArgsTemplate null + LongMultiplyTemplate: &LongMultiplyTemplate null + LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null + LongDivTemplate: &LongDivTemplate null + LongDivArgsTemplate: &LongDivArgsTemplate null + LongModuloTemplate: &LongModuloTemplate null + LongModuloArgsTemplate: &LongModuloArgsTemplate null + LongAndTemplate: &LongAndTemplate null + LongAndArgsTemplate: &LongAndArgsTemplate null + LongOrTemplate: &LongOrTemplate null + LongOrArgsTemplate: &LongOrArgsTemplate null + LongXorTemplate: &LongXorTemplate null + LongXorArgsTemplate: &LongXorArgsTemplate null + LongShiftLeftTemplate: &LongShiftLeftTemplate null + LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null + LongShiftRightTemplate: &LongShiftRightTemplate null + LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null + LongCompareTemplate: &LongCompareTemplate null + LongCompareArgsTemplate: &LongCompareArgsTemplate null + LongIsOddTemplate: &LongIsOddTemplate null + LongIsOddArgsTemplate: &LongIsOddArgsTemplate null + LongIsZeroTemplate: &LongIsZeroTemplate null + LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null + LongIsNegativeTemplate: &LongIsNegativeTemplate null + LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null + LongNegateTemplate: &LongNegateTemplate null + LongNegateArgsTemplate: &LongNegateArgsTemplate null + LongNotTemplate: &LongNotTemplate null + LongNotArgsTemplate: &LongNotArgsTemplate null + LongNotEqualsTemplate: &LongNotEqualsTemplate null + LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null + LongGreaterThanTemplate: &LongGreaterThanTemplate null + LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null + LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null + LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null + LongLessThanTemplate: &LongLessThanTemplate null + LongLessThanArgsTemplate: &LongLessThanArgsTemplate null + LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null + LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `${lhs}.toNumber()`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs}.getHighBits()`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs}.getLowBits()`; + } + TimestampToStringTemplate: &TimestampToStringTemplate null + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: &TimestampEqualsTemplate null + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.getLowBits`; + } + TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.getHighBits`; + } + TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.getLowBits()`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.getHighBits()`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `new Date(${lhs}.getHighBits() * 1000)`; + } + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => { + return ''; + } + TimestampCompareTemplate: &TimestampCompareTemplate null + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null + TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null + TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null + TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null + TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null + TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null + TimestampLessThanTemplate: &TimestampLessThanTemplate null + TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null + TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null + TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null + SymbolValueOfTemplate: &SymbolValueOfTemplate null + SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null + SymbolInspectTemplate: &SymbolInspectTemplate null + SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null + SymbolToStringTemplate: &SymbolToStringTemplate null + SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null + # Symbol Templates + CodeSymbolTemplate: &CodeSymbolTemplate null + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + code = code === undefined ? '\'\'' : code; + scope = scope === undefined ? '' : `, ${scope}`; + return `(${code}${scope})`; + } + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, str) => { + if (!str || str.length === 0) { + return '()'; + } + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; + } + BinarySymbolTemplate: !!js/function &BinarySymbolTemplate > + () => { + return 'Binary'; + } + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, buffer, subtype) => { + return `(${buffer.toString('base64')}, '${subtype}')`; + } + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: &DBRefSymbolTemplate null + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return 'Double'; + } + DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return 'Int32'; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? 0 : arg; + return `(${arg})`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return ''; + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Long.fromString(${arg})`; + } + return `Long.fromNumber(${arg})`; + } + LongSymbolMaxTemplate: &LongSymbolMaxTemplate null + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: &LongSymbolMinTemplate null + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: &LongSymbolZeroTemplate null + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: &LongSymbolOneTemplate null + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null + LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null + MinKeySymbolTemplate: &MinKeySymbolTemplate null + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null + TimestampSymbolTemplate: &TimestampSymbolTemplate null + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + } + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return 'BSONSymbol'; + } + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'BSONRegExp'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return `(${arg})`; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return `${lhs}.isValid`; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - # JS Symbol Templates - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return 'Number'; - } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '0' : arg; - return `(${arg})`; - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'Date'; - } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate null - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return 'Date.now'; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => { - return 'RegExp'; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - const bson = []; - const other = []; - Object.keys(args).map( - (m) => { - if (m > 99 && m < 200) { - bson.push(args[m]); - } else { - other.push(args[m]); - } + return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + } + return `(${singleStringify(pattern)}${flags ? ', ' + singleStringify(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '0' : arg.toString(); + if (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') { + return `.fromString(${arg})`; + } + return `.fromString('${arg}')`; + } + Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # BSON Util Templates + ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null + ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return `ObjectId.createFromTime`; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (!isNumber) { + return `(${arg}.getTime() / 1000)`; + } + return `(${arg})`; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return `${lhs}.isValid`; + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + # JS Symbol Templates + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return 'Number'; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '0' : arg; + return `(${arg})`; + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'Date'; + } + DateSymbolArgsTemplate: &DateSymbolArgsTemplate null + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return 'Date.now'; + } + DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => { + return 'RegExp'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + const bson = []; + const other = []; + Object.keys(args).map( + (m) => { + if (m > 99 && m < 200) { + bson.push(args[m]); + } else { + other.push(args[m]); } - ); - if (bson.length) { - other.push(`import {\n ${bson.join(',\n ')}\n} from 'mongodb';`); } - return other.join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return `import { MongoClient } from 'mongodb';`; - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate null - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return 'Code'; - } - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return 'ObjectId'; - } - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return 'Binary'; - } - 103ImportTemplate: &103ImportTemplate !!js/function > - () => { - return 'DBRef'; - } - 104ImportTemplate: &104ImportTemplate !!js/function > - () => { - return 'Double'; - } - 105ImportTemplate: &105ImportTemplate !!js/function > - () => { - return 'Int32'; - } - 106ImportTemplate: &106ImportTemplate !!js/function > - () => { - return 'Long'; - } - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return 'MinKey'; - } - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return 'MaxKey'; - } - 109ImportTemplate: &109ImportTemplate !!js/function > - () => { - return 'BSONRegExp'; - } - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return 'Timestamp'; - } - 111ImportTemplate: &111ImportTemplate !!js/function > - () => { - return 'BSONSymbol'; - } - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return 'Decimal128'; - } - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ); + if (bson.length) { + other.push(`import {\n ${bson.join(',\n ')}\n} from 'mongodb';`); + } + return other.join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return `import { MongoClient } from 'mongodb';`; + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: &8ImportTemplate null + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return 'Code'; + } + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return 'ObjectId'; + } + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return 'Binary'; + } + 103ImportTemplate: !!js/function &103ImportTemplate > + () => { + return 'DBRef'; + } + 104ImportTemplate: !!js/function &104ImportTemplate > + () => { + return 'Double'; + } + 105ImportTemplate: !!js/function &105ImportTemplate > + () => { + return 'Int32'; + } + 106ImportTemplate: !!js/function &106ImportTemplate > + () => { + return 'Long'; + } + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return 'MinKey'; + } + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return 'MaxKey'; + } + 109ImportTemplate: !!js/function &109ImportTemplate > + () => { + return 'BSONRegExp'; + } + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return 'Timestamp'; + } + 111ImportTemplate: !!js/function &111ImportTemplate > + () => { + return 'BSONSymbol'; + } + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return 'Decimal128'; + } + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/main.yaml b/packages/bson-transpilers/symbols/main.yaml index 2dd97c5543e..3804b55086a 100644 --- a/packages/bson-transpilers/symbols/main.yaml +++ b/packages/bson-transpilers/symbols/main.yaml @@ -1,20 +1,19 @@ SymbolTypes: - VAR: &var 0 - CONSTRUCTOR: &constructor 1 - FUNC: &func 2 + VAR: &var 0 + CONSTRUCTOR: &constructor 1 + FUNC: &func 2 # Internal patterns to save typing __type: &__type - id: null - callable: *var - args: null - type: null - attr: {} - template: null - argsTemplate: null + id: null + callable: *var + args: null + type: null + attr: {} + template: null + argsTemplate: null __func: &__func - callable: *func - args: [] - attr: {} - template: null - argsTemplate: null - + callable: *func + args: [] + attr: {} + template: null + argsTemplate: null diff --git a/packages/bson-transpilers/symbols/object/templates.yaml b/packages/bson-transpilers/symbols/object/templates.yaml index 96cc7a2af3a..b045860c0d6 100644 --- a/packages/bson-transpilers/symbols/object/templates.yaml +++ b/packages/bson-transpilers/symbols/object/templates.yaml @@ -18,596 +18,601 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: 'y' - g: 'g' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: 'y' + g: 'g' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate null - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return lhs !== rhs; + DriverTemplate: &DriverTemplate null + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return lhs !== rhs; + } + if (op === '==' || op === '===' || op === 'is') { + if (typeof(lhs) === 'object' && 'equals' in lhs) { + // Use '.equals' for objects, if it exists. + return lhs.equals(rhs); } - if (op === '==' || op === '===' || op === 'is') { - if (typeof(lhs) === 'object' && 'equals' in lhs) { - // Use '.equals' for objects, if it exists. - return lhs.equals(rhs); - } - return lhs === rhs; - } - if (op === '>') { - return lhs > rhs; - } - if (op === '<') { - return lhs < rhs; - } - if (op === '>=') { - return lhs >= rhs; - } - if (op === '<=') { - return lhs <= rhs; - } - throw new Error(`unrecognized operation: ${op}`); + return lhs === rhs; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - if (typeof rhs === 'array') { - return rhs.indexOf(lhs) === -1; - } - return !(lhs in rhs); - } - if (typeof rhs === 'array') { - return rhs.indexOf(lhs) !== -1; - } - return lhs in rhs; + if (op === '>') { + return lhs > rhs; } - - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.reduce((t, k, i) => { - return t && k; - }); + if (op === '<') { + return lhs < rhs; + } + if (op === '>=') { + return lhs >= rhs; } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.reduce((t, k, i) => { - return t || k; - }); + if (op === '<=') { + return lhs <= rhs; + } + throw new Error(`unrecognized operation: ${op}`); + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + if (typeof rhs === 'array') { + return rhs.indexOf(lhs) === -1; + } + return !(lhs in rhs); } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return !arg; + if (typeof rhs === 'array') { + return rhs.indexOf(lhs) !== -1; } - UnarySyntaxTemplate: &UnarySyntaxTemplate !!js/function > - (op, arg) => { + return lhs in rhs; + } + + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.reduce((t, k, i) => { + return t && k; + }); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.reduce((t, k, i) => { + return t || k; + }); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return !arg; + } + UnarySyntaxTemplate: !!js/function &UnarySyntaxTemplate > + (op, arg) => { + switch(op) { + case '+': + return +arg; + case '-': + return -arg; + case '~': + return ~arg; + default: + throw new Error(`unrecognized operation: ${op}`); + } + } + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; + } + const rhs = arr[i + 1]; switch(op) { case '+': - return +arg; + return s + rhs; case '-': - return -arg; - case '~': - return ~arg; + return s - rhs; + case '*': + return s * rhs; + case '/': + return s / rhs; + case '**': + return Math.pow(s, rhs); + case '//': + return Math.floor(s, rhs); + case '%': + return s % rhs; + case '>>': + return s >> rhs; + case '<<': + return s << rhs; + case '|': + return s | rhs; + case '&': + return s & rhs; + case '^': + return s ^ rhs; default: throw new Error(`unrecognized operation: ${op}`); } - } - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '+': - return s + rhs; - case '-': - return s - rhs; - case '*': - return s * rhs; - case '/': - return s / rhs; - case '**': - return Math.pow(s, rhs); - case '//': - return Math.floor(s, rhs); - case '%': - return s % rhs; - case '>>': - return s >> rhs; - case '<<': - return s << rhs; - case '|': - return s | rhs; - case '&': - return s & rhs; - case '^': - return s ^ rhs; - default: - throw new Error(`unrecognized operation: ${op}`); - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate !!js/function > - (arg) => { - return arg; - } - EosSyntaxTemplate: &EosSyntaxTemplate !!js/function > - () => { - return 'a unique thing'; - } - EofSyntaxTemplate: &EofSyntaxTemplate !!js/function > - () => { - return 'a unique thing'; - } - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + }, args[0]); + } + ParensSyntaxTemplate: !!js/function &ParensSyntaxTemplate > + (arg) => { + return arg; + } + EosSyntaxTemplate: !!js/function &EosSyntaxTemplate > + () => { + return 'a unique thing'; + } + EofSyntaxTemplate: !!js/function &EofSyntaxTemplate > + () => { + return 'a unique thing'; + } + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str.toString(); - if ( - (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') || - (newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'') - ) { - newStr = newStr.substr(1, newStr.length - 2); - } - return newStr; - } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - return new RegExp(pattern, flags); - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (str) => { - return str.toLowerCase() === 'true'; - } - IntegerTypeTemplate: &IntegerTypeTemplate !!js/function > - (arg) => { - return parseInt(arg, 10); - } - DecimalTypeTemplate: &DecimalTypeTemplate !!js/function > - (arg) => { - return parseFloat(arg); - } - LongBasicTypeTemplate: &LongBasicTypeTemplate !!js/function > - (arg) => { - return parseInt(arg, 10); - } - HexTypeTemplate: &HexTypeTemplate !!js/function > - (arg) => { + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str.toString(); + if ( + (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') || + (newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'') + ) { + newStr = newStr.substr(1, newStr.length - 2); + } + return newStr; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + return new RegExp(pattern, flags); + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (str) => { + return str.toLowerCase() === 'true'; + } + IntegerTypeTemplate: !!js/function &IntegerTypeTemplate > + (arg) => { + return parseInt(arg, 10); + } + DecimalTypeTemplate: !!js/function &DecimalTypeTemplate > + (arg) => { + return parseFloat(arg); + } + LongBasicTypeTemplate: !!js/function &LongBasicTypeTemplate > + (arg) => { + return parseInt(arg, 10); + } + HexTypeTemplate: !!js/function &HexTypeTemplate > + (arg) => { + return parseInt(arg, 16); + } + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (arg) => { + arg = arg.replace(/[oO]/g, '') + return parseInt(arg, 8); + } + NumericTypeTemplate: !!js/function &NumericTypeTemplate > + (arg) => { + if (arg.contains('x')) { return parseInt(arg, 16); } - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (arg) => { - arg = arg.replace(/[oO]/g, '') + if (arg.contains('o') || arg.startsWith('0')) { + arg = arg.replace(/o/g, '') return parseInt(arg, 8); } - NumericTypeTemplate: &NumericTypeTemplate !!js/function > - (arg) => { - if (arg.contains('x')) { - return parseInt(arg, 16); - } - if (arg.contains('o') || arg.startsWith('0')) { - arg = arg.replace(/o/g, '') - return parseInt(arg, 8); - } - return parseFloat(arg); - } - ArrayTypeTemplate: &ArrayTypeTemplate null - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return null; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return undefined; - } - ObjectTypeTemplate: &ObjectTypeTemplate null # Args: literal (for empty array, is empty string. Otherwise all set) - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate null # Args: single object element [2] (i.e. array with [key, value]), nestedness# + return parseFloat(arg); + } + ArrayTypeTemplate: &ArrayTypeTemplate null + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return null; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return undefined; + } + ObjectTypeTemplate: &ObjectTypeTemplate null # Args: literal (for empty array, is empty string. Otherwise all set) + ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate null # Args: single object element [2] (i.e. array with [key, value]), nestedness# - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate null # No args - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate null # Args: code, scope - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null # No args - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate null # Args: lhs, string (can be empty or null for no arg) - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db - DoubleSymbolTemplate: &DoubleSymbolTemplate null # No args - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null # Args: lhs, arg, argType (i.e. '_string', '_double') - Int32SymbolTemplate: &Int32SymbolTemplate null # No args - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate null # Args: lhs, arg, argType - LongSymbolTemplate: &LongSymbolTemplate null # No args - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > # Args: lhs, arg, argType - (lhs, arg) => { - return lhs.fromNumber(arg); - } - RegExpSymbolTemplate: &RegExpSymbolTemplate null # No args - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate null # No args - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null # Args: lhs, arg - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate null # No args - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg - MinKeySymbolTemplate: &MinKeySymbolTemplate null # No args - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null # No args - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null # No args - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null # No args - TimestampSymbolTemplate: &TimestampSymbolTemplate null # No args - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate null # Args: lhs, low, high - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return Number; - } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate null # Args: lhs, arg, argType - DateSymbolTemplate: &DateSymbolTemplate null # No args - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - if (isString) { - return date.toString(); - } - return date; - } + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: &CodeSymbolTemplate null # No args + CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate null # Args: code, scope + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null # No args + ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate null # Args: lhs, string (can be empty or null for no arg) + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db + DoubleSymbolTemplate: &DoubleSymbolTemplate null # No args + DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null # Args: lhs, arg, argType (i.e. '_string', '_double') + Int32SymbolTemplate: &Int32SymbolTemplate null # No args + Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate null # Args: lhs, arg, argType + LongSymbolTemplate: &LongSymbolTemplate null # No args + LongSymbolArgsTemplate: + !!js/function &LongSymbolArgsTemplate > # Args: lhs, arg, argType + (lhs, arg) => { + return lhs.fromNumber(arg); + } + RegExpSymbolTemplate: &RegExpSymbolTemplate null # No args + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: &SymbolSymbolTemplate null # No args + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null # Args: lhs, arg + BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate null # No args + BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args + Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg + MinKeySymbolTemplate: &MinKeySymbolTemplate null # No args + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null # No args + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null # No args + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null # No args + TimestampSymbolTemplate: &TimestampSymbolTemplate null # No args + TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate null # Args: lhs, low, high + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return Number; + } + NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate null # Args: lhs, arg, argType + DateSymbolTemplate: &DateSymbolTemplate null # No args + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + if (isString) { + return date.toString(); + } + return date; + } - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate null - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate null - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs, rhs) => { - return lhs.toString(); - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return lhs; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs.equals(rhs); - } - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs, rhs) => { - return lhs.getTimestamp(); - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs, rhs) => { - return lhs.isValid; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate null - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs, rhs) => { - return lhs.db; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs, rhs) => { - return lhs.collection; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs, rhs) => { - return lhs.oid; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - LongEqualsTemplate: &LongEqualsTemplate null - LongEqualsArgsTemplate: &LongEqualsArgsTemplate null - LongToStringTemplate: &LongToStringTemplate null - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate null - LongToIntArgsTemplate: &LongToIntArgsTemplate null - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate null - LongToNumberArgsTemplate: &LongToNumberArgsTemplate null - LongAddTemplate: &LongAddTemplate null - LongAddArgsTemplate: &LongAddArgsTemplate null - LongSubtractTemplate: &LongSubtractTemplate null - LongSubtractArgsTemplate: &LongSubtractArgsTemplate null - LongMultiplyTemplate: &LongMultiplyTemplate null - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null - LongDivTemplate: &LongDivTemplate null - LongDivArgsTemplate: &LongDivArgsTemplate null - LongModuloTemplate: &LongModuloTemplate null - LongModuloArgsTemplate: &LongModuloArgsTemplate null - LongAndTemplate: &LongAndTemplate null - LongAndArgsTemplate: &LongAndArgsTemplate null - LongOrTemplate: &LongOrTemplate null - LongOrArgsTemplate: &LongOrArgsTemplate null - LongXorTemplate: &LongXorTemplate null - LongXorArgsTemplate: &LongXorArgsTemplate null - LongShiftLeftTemplate: &LongShiftLeftTemplate null - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null - LongShiftRightTemplate: &LongShiftRightTemplate null - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null - LongCompareTemplate: &LongCompareTemplate null - LongCompareArgsTemplate: &LongCompareArgsTemplate null - LongIsOddTemplate: &LongIsOddTemplate null - LongIsOddArgsTemplate: &LongIsOddArgsTemplate null - LongIsZeroTemplate: &LongIsZeroTemplate null - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null - LongIsNegativeTemplate: &LongIsNegativeTemplate null - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null - LongNegateTemplate: &LongNegateTemplate null - LongNegateArgsTemplate: &LongNegateArgsTemplate null - LongNotTemplate: &LongNotTemplate null - LongNotArgsTemplate: &LongNotArgsTemplate null - LongNotEqualsTemplate: &LongNotEqualsTemplate null - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null - LongGreaterThanTemplate: &LongGreaterThanTemplate null - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null - LongLessThanTemplate: &LongLessThanTemplate null - LongLessThanArgsTemplate: &LongLessThanArgsTemplate null - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs, rhs) => { - return lhs.toNumber(); - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs, rhs) => { - return lhs.high; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs, rhs) => { - return lhs.low; - } - TimestampToStringTemplate: &TimestampToStringTemplate null - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate null - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs, rhs) => { - return lhs.getLowBits(); - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs, rhs) => { - return lhs.getHighBits(); - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs, rhs) => { - return lhs.getLowBits(); - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs, rhs) => { - return lhs.getHighBits(); - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs, rhs) => { - return new Date(lhs.getHighBits() * 1000); - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - TimestampCompareTemplate: &TimestampCompareTemplate null - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null - TimestampLessThanTemplate: &TimestampLessThanTemplate null - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null - SymbolValueOfTemplate: &SymbolValueOfTemplate null - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null - SymbolInspectTemplate: &SymbolInspectTemplate null - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null - SymbolToStringTemplate: &SymbolToStringTemplate null - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # non bson-specific - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return Date.now; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null - - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate null - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate null - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate null - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate null - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - (lhs, rhs) => { - return lhs.createFromTime; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null - # non bson-specific would go here, but there aren't any atm. + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: &CodeCodeTemplate null + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: &CodeScopeTemplate null + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs, rhs) => { + return lhs.toString(); + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + (lhs) => { + return lhs; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return lhs; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (lhs, rhs) => { + return lhs.equals(rhs); + } + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs, rhs) => { + return lhs.getTimestamp(); + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + (lhs) => { + return lhs; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs, rhs) => { + return lhs.isValid; + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: &BinarySubtypeTemplate null + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs, rhs) => { + return lhs.db; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs, rhs) => { + return lhs.collection; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs, rhs) => { + return lhs.oid; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + (lhs, rhs) => { + return lhs; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + (lhs, rhs) => { + return lhs; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + (lhs, rhs) => { + return lhs; + } + LongEqualsTemplate: &LongEqualsTemplate null + LongEqualsArgsTemplate: &LongEqualsArgsTemplate null + LongToStringTemplate: &LongToStringTemplate null + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: &LongToIntTemplate null + LongToIntArgsTemplate: &LongToIntArgsTemplate null + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: &LongToNumberTemplate null + LongToNumberArgsTemplate: &LongToNumberArgsTemplate null + LongAddTemplate: &LongAddTemplate null + LongAddArgsTemplate: &LongAddArgsTemplate null + LongSubtractTemplate: &LongSubtractTemplate null + LongSubtractArgsTemplate: &LongSubtractArgsTemplate null + LongMultiplyTemplate: &LongMultiplyTemplate null + LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null + LongDivTemplate: &LongDivTemplate null + LongDivArgsTemplate: &LongDivArgsTemplate null + LongModuloTemplate: &LongModuloTemplate null + LongModuloArgsTemplate: &LongModuloArgsTemplate null + LongAndTemplate: &LongAndTemplate null + LongAndArgsTemplate: &LongAndArgsTemplate null + LongOrTemplate: &LongOrTemplate null + LongOrArgsTemplate: &LongOrArgsTemplate null + LongXorTemplate: &LongXorTemplate null + LongXorArgsTemplate: &LongXorArgsTemplate null + LongShiftLeftTemplate: &LongShiftLeftTemplate null + LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null + LongShiftRightTemplate: &LongShiftRightTemplate null + LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null + LongCompareTemplate: &LongCompareTemplate null + LongCompareArgsTemplate: &LongCompareArgsTemplate null + LongIsOddTemplate: &LongIsOddTemplate null + LongIsOddArgsTemplate: &LongIsOddArgsTemplate null + LongIsZeroTemplate: &LongIsZeroTemplate null + LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null + LongIsNegativeTemplate: &LongIsNegativeTemplate null + LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null + LongNegateTemplate: &LongNegateTemplate null + LongNegateArgsTemplate: &LongNegateArgsTemplate null + LongNotTemplate: &LongNotTemplate null + LongNotArgsTemplate: &LongNotArgsTemplate null + LongNotEqualsTemplate: &LongNotEqualsTemplate null + LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null + LongGreaterThanTemplate: &LongGreaterThanTemplate null + LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null + LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null + LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null + LongLessThanTemplate: &LongLessThanTemplate null + LongLessThanArgsTemplate: &LongLessThanArgsTemplate null + LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null + LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs, rhs) => { + return lhs.toNumber(); + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs, rhs) => { + return lhs.high; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs, rhs) => { + return lhs.low; + } + TimestampToStringTemplate: &TimestampToStringTemplate null + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: &TimestampEqualsTemplate null + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs, rhs) => { + return lhs.getLowBits(); + } + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + (lhs, rhs) => { + return lhs; + } + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs, rhs) => { + return lhs.getHighBits(); + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + (lhs, rhs) => { + return lhs; + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs, rhs) => { + return lhs.getLowBits(); + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs, rhs) => { + return lhs.getHighBits(); + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs, rhs) => { + return new Date(lhs.getHighBits() * 1000); + } + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + (lhs, rhs) => { + return lhs; + } + TimestampCompareTemplate: &TimestampCompareTemplate null + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null + TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null + TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null + TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null + TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null + TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null + TimestampLessThanTemplate: &TimestampLessThanTemplate null + TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null + TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null + TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null + SymbolValueOfTemplate: &SymbolValueOfTemplate null + SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null + SymbolInspectTemplate: &SymbolInspectTemplate null + SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null + SymbolToStringTemplate: &SymbolToStringTemplate null + SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # non bson-specific + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return Date.now; + } + DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: &LongSymbolMaxTemplate null + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: &LongSymbolMinTemplate null + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: &LongSymbolZeroTemplate null + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: &LongSymbolOneTemplate null + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null + LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null + Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null + ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + (lhs, rhs) => { + return lhs.createFromTime; + } + ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null + # non bson-specific would go here, but there aren't any atm. - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate null - DriverImportTemplate: &DriverImportTemplate null - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate null - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate null - 101ImportTemplate: &101ImportTemplate null - 102ImportTemplate: &102ImportTemplate null - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate null - 108ImportTemplate: &108ImportTemplate null - 109ImportTemplate: &109ImportTemplate null - 110ImportTemplate: &110ImportTemplate null - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate null - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: &ImportTemplate null + DriverImportTemplate: &DriverImportTemplate null + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: &8ImportTemplate null + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: &100ImportTemplate null + 101ImportTemplate: &101ImportTemplate null + 102ImportTemplate: &102ImportTemplate null + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: &107ImportTemplate null + 108ImportTemplate: &108ImportTemplate null + 109ImportTemplate: &109ImportTemplate null + 110ImportTemplate: &110ImportTemplate null + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: &112ImportTemplate null + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/php/templates.yaml b/packages/bson-transpilers/symbols/php/templates.yaml index aa34155f9dc..e90af063cab 100644 --- a/packages/bson-transpilers/symbols/php/templates.yaml +++ b/packages/bson-transpilers/symbols/php/templates.yaml @@ -18,1234 +18,1263 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: '' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: '' - u: '' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: '' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: '' + u: '' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const getKey = k => { - let translateKey = { - project: 'projection', - } - return k in translateKey ? translateKey[k] : k - }; - const options = spec.options; - const filter = spec.filter || {}; - const exportMode = spec.exportMode; - delete spec.options; - delete spec.filter; - delete spec.exportMode; - - comment = [] - .concat('// Requires the MongoDB PHP Driver') - .concat('// https://www.mongodb.com/docs/drivers/php/') - .join('\n') - ; - const client = `$client = new Client('${options.uri}');`; - const collection = `$collection = $client->selectCollection('${options.database}', '${options.collection}');`; - - if ('aggregation' in spec) { - // Note: toPHPArray() may not be required here as Compass should always provide an array for spec.aggregation - return [] - .concat(comment) - .concat('') - .concat(client) - .concat(collection) - .concat(`$cursor = $collection->aggregate(${this.utils.toPHPArray(spec.aggregation)});`) - .join('\n') - ; - } - - let driverMethod; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'delete_many'; - break; - case 'Update Query': - driverMethod = 'update_many'; - break; - default: - driverMethod = 'find'; + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const getKey = k => { + let translateKey = { + project: 'projection', } + return k in translateKey ? translateKey[k] : k + }; + const options = spec.options; + const filter = spec.filter || {}; + const exportMode = spec.exportMode; + delete spec.options; + delete spec.filter; + delete spec.exportMode; - let args = Object.keys(spec).reduce( - (result, k) => { - let val = this.utils.removePHPObject(spec[k]); - const divider = result === '' ? '' : ',\n'; - return `${result}${divider} '${getKey(k)}' => ${val}`; - }, - '' - ); - args = args ? `, [\n${args}\n]` : ''; + comment = [] + .concat('// Requires the MongoDB PHP Driver') + .concat('// https://www.mongodb.com/docs/drivers/php/') + .join('\n') + ; + const client = `$client = new Client('${options.uri}');`; + const collection = `$collection = $client->selectCollection('${options.database}', '${options.collection}');`; + if ('aggregation' in spec) { + // Note: toPHPArray() may not be required here as Compass should always provide an array for spec.aggregation return [] .concat(comment) .concat('') .concat(client) .concat(collection) - .concat(`$cursor = $collection->${driverMethod}(${this.utils.removePHPObject(filter)}${args});`) + .concat(`$cursor = $collection->aggregate(${this.utils.toPHPArray(spec.aggregation)});`) .join('\n') ; } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - // Identity comparison - if (op.includes('is')) { - if (op.includes('not')) { - return `${lhs} !== ${rhs}`; - } else { - return `${lhs} === ${rhs}`; - } + + let driverMethod; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'delete_many'; + break; + case 'Update Query': + driverMethod = 'update_many'; + break; + default: + driverMethod = 'find'; + } + + let args = Object.keys(spec).reduce( + (result, k) => { + let val = this.utils.removePHPObject(spec[k]); + const divider = result === '' ? '' : ',\n'; + return `${result}${divider} '${getKey(k)}' => ${val}`; + }, + '' + ); + args = args ? `, [\n${args}\n]` : ''; + + return [] + .concat(comment) + .concat('') + .concat(client) + .concat(collection) + .concat(`$cursor = $collection->${driverMethod}(${this.utils.removePHPObject(filter)}${args});`) + .join('\n') + ; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + // Identity comparison + if (op.includes('is')) { + if (op.includes('not')) { + return `${lhs} !== ${rhs}`; + } else { + return `${lhs} === ${rhs}`; } - // Not equal + } + // Not equal + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; + } + // Equal + if (op === '==' || op === '===') { + return `${lhs} == ${rhs}`; + } + // All other cases + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + // array + if (rhs.charAt(0) === '[' && rhs.charAt(rhs.length - 1) === ']') { + let not = ''; if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; + not = '! '; } - // Equal - if (op === '==' || op === '===') { - return `${lhs} == ${rhs}`; - } - // All other cases - return `${lhs} ${op} ${rhs}`; + return `${not}\\in_array(${lhs}, ${rhs})`; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - // array - if (rhs.charAt(0) === '[' && rhs.charAt(rhs.length - 1) === ']') { - let not = ''; - if (op.includes('!') || op.includes('not')) { - not = '! '; - } - return `${not}\\in_array(${lhs}, ${rhs})`; - } - - //object - if (rhs.indexOf('(object) ') === 0) { - let not = ''; - if (op.includes('!') || op.includes('not')) { - not = '! '; - } - return `${not}\\property_exists(${rhs}, ${lhs})`; - } - - // string - all other cases - let targop = '!=='; + + //object + if (rhs.indexOf('(object) ') === 0) { + let not = ''; if (op.includes('!') || op.includes('not')) { - targop = '==='; + not = '! '; } - return `\\strpos(${rhs}, ${lhs}) ${targop} false`; + return `${not}\\property_exists(${rhs}, ${lhs})`; } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `! ${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate !!js/function > - (op, arg) => { + + // string - all other cases + let targop = '!=='; + if (op.includes('!') || op.includes('not')) { + targop = '==='; + } + return `\\strpos(${rhs}, ${lhs}) ${targop} false`; + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `! ${arg}`; + } + UnarySyntaxTemplate: !!js/function &UnarySyntaxTemplate > + (op, arg) => { + switch(op) { + case '+': + return `+${arg}`; + case '-': + return `-${arg}`; + case '~': + return `~${arg}`; + default: + throw new Error(`unrecognized operation: ${op}`); + } + } + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; + } + const rhs = arr[i + 1]; switch(op) { case '+': - return `+${arg}`; + return `${s} + ${rhs}`; case '-': - return `-${arg}`; - case '~': - return `~${arg}`; + return `${s} - ${rhs}`; + case '*': + return `${s} * ${rhs}`; + case '/': + return `${s} / ${rhs}`; + case '**': + return `${s} ** ${rhs}`; + case '//': + return `\\intdiv(${s}, ${rhs})`; + case '%': + return `${s} % ${rhs}`; + case '>>': + return `${s} >> ${rhs}`; + case '<<': + return `${s} << ${rhs}`; + case '|': + return `${s} | ${rhs}`; + case '&': + return `${s} & ${rhs}`; + case '^': + return `${s} ^ ${rhs}`; default: throw new Error(`unrecognized operation: ${op}`); } - } - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '+': - return `${s} + ${rhs}`; - case '-': - return `${s} - ${rhs}`; - case '*': - return `${s} * ${rhs}`; - case '/': - return `${s} / ${rhs}`; - case '**': - return `${s} ** ${rhs}`; - case '//': - return `\\intdiv(${s}, ${rhs})`; - case '%': - return `${s} % ${rhs}`; - case '>>': - return `${s} >> ${rhs}`; - case '<<': - return `${s} << ${rhs}`; - case '|': - return `${s} | ${rhs}`; - case '&': - return `${s} & ${rhs}`; - case '^': - return `${s} ^ ${rhs}`; - default: - throw new Error(`unrecognized operation: ${op}`); - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - // This is some standalone object context, which is generated to parse - // node and doesn't have access to main Generator object. Thus we can't - // use utility function call. All ~Template calls use this type of - // context. All ~ArgsTemplate have access to utility functions. - - stringifyWithSingleQuotes = (str) => { - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') - ) { - str = str.substr(1, str.length - 2); - } - return `'${str.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - }; + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + // This is some standalone object context, which is generated to parse + // node and doesn't have access to main Generator object. Thus we can't + // use utility function call. All ~Template calls use this type of + // context. All ~ArgsTemplate have access to utility functions. - return `${stringifyWithSingleQuotes(str)}`; - } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - // This is some standalone object context, which is generated to parse - // node and doesn't have access to main Generator object. Thus we can't - // use utility function call. All ~Template calls use this type of - // context. All ~ArgsTemplate have access to utility functions. - - stringifyWithDoubleQuotes = (str) => { - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') - ) { - str = str.substr(1, str.length - 2); - } - return `${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}`; - }; - - pattern = `"${stringifyWithDoubleQuotes(pattern)}"`; - flags = flags ? `, "${flags}"` : ''; + stringifyWithSingleQuotes = (str) => { + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') + ) { + str = str.substr(1, str.length - 2); + } + return `'${str.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + }; - return `new Regex(${pattern}${flags})`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType - HexTypeTemplate: &HexTypeTemplate null # args: literal, argType - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal) => { - let offset = 0; + return `${stringifyWithSingleQuotes(str)}`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + // This is some standalone object context, which is generated to parse + // node and doesn't have access to main Generator object. Thus we can't + // use utility function call. All ~Template calls use this type of + // context. All ~ArgsTemplate have access to utility functions. + stringifyWithDoubleQuotes = (str) => { if ( - literal.charAt(0) === '0' && - (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') ) { - offset = 2; - } else if (literal.charAt(0) === '0') { - offset = 1; + str = str.substr(1, str.length - 2); } + return `${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}`; + }; - literal = `0${literal.substr(offset, literal.length - 1)}`; + pattern = `"${stringifyWithDoubleQuotes(pattern)}"`; + flags = flags ? `, "${flags}"` : ''; - return literal; - } - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - if (literal === '') { - return '[]' - } - return `[${literal}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'null'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'null'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => { - return `${literal}`; + return `new Regex(${pattern}${flags})`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType + HexTypeTemplate: &HexTypeTemplate null # args: literal, argType + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal) => { + let offset = 0; + + if ( + literal.charAt(0) === '0' && + (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') + ) { + offset = 2; + } else if (literal.charAt(0) === '0') { + offset = 1; } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - let isObjectCastRequired = true; - - if (args.length === 0) { - return `(object) []`; - } - const isExpectedIndex = (actualIndex, expectedIndex) => { - return '' + actualIndex === '' + expectedIndex; - } - - let indexTest = 0; - let pairs = args.map((arg) => { - if (isObjectCastRequired && !isExpectedIndex(arg[0], indexTest)) { - isObjectCastRequired = false; - } - indexTest++; - return `${this.utils.stringifyWithSingleQuotes(arg[0])} => ${arg[1]}`; - }).join(', '); + literal = `0${literal.substr(offset, literal.length - 1)}`; - // Rebuilding pairs for numeric sequential indexes without quotes - if (isObjectCastRequired) { - pairs = args.map((arg) => { - return `${arg[0]} => ${arg[1]}`; - }).join(', '); - } + return literal; + } + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + if (literal === '') { + return '[]' + } + return `[${literal}]`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'null'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'null'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => { + return `${literal}`; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + let isObjectCastRequired = true; - return `${isObjectCastRequired ? '(object) ' : ''}[${pairs}]`; + if (args.length === 0) { + return `(object) []`; } - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > - () => { - return 'new Javascript'; - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - return !scope - ? `(${this.utils.stringifyWithSingleQuotes(code)})` - : `(${this.utils.stringifyWithSingleQuotes(code)}, ${scope})` - ; - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => { - return 'new ObjectId'; - } - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, id) => { - return !id - ? `()` - : `(${this.utils.stringifyWithSingleQuotes(id)})` - ; - } - BinarySymbolTemplate: &BinarySymbolTemplate !!js/function > - () => { - return 'new Binary'; - } - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, bytes, type) => { - if (type === null) { - type = 'Binary::TYPE_GENERIC'; - } - return `(${this.utils.stringifyWithSingleQuotes(bytes)}, ${type})`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => { - return 'Binary::TYPE_GENERIC'; - } - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => { - return 'Binary::TYPE_FUNCTION'; + const isExpectedIndex = (actualIndex, expectedIndex) => { + return '' + actualIndex === '' + expectedIndex; } - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => { - return 'Binary::TYPE_OLD_BINARY'; - } - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => { - return 'Binary::TYPE_OLD_UUID'; - } - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => { - return 'Binary::TYPE_UUID'; - } - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => { - return 'Binary::TYPE_MD5'; - } - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - () => { - return 'Binary::TYPE_USER_DEFINED'; - } - DBRefSymbolTemplate: &DBRefSymbolTemplate !!js/function > - () => { - return '' - } - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate !!js/function > - (lhs, coll, id, db) => { - let coll_string = `'$ref' => ${this.utils.stringifyWithSingleQuotes(coll)}`; - let id_string = `, '$id' => ${id}`; - let db_string = db ? `, '$db' => ${this.utils.stringifyWithSingleQuotes(db)}` : `, '$db' => null`; - return `[${coll_string}${id_string}${db_string}]`; - } - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return ''; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_decimal' || type === '_double') { - return arg; - } - if (type === '_integer' || type === '_long') { - return `${arg}.0`; - } - return `(float) ${arg}`; - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return ''; - } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { - return arg; - } - return `(int) ${arg}`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return '' - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { - return arg; - } - return `(int) ${arg}`; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => { - return 'new Regex'; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return ''; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (lhs, arg) => { - return arg; - } - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'new Regex'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - return `(${this.utils.stringifyWithDoubleQuotes(pattern)}${flags ? ', ' + this.utils.stringifyWithDoubleQuotes(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'new Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '0' : arg.toString(); - return `('${this.utils.removeStringQuotes(arg)}')`; - } - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => { - return 'new MinKey'; - } - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => { - return `()`; - } - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => { - return 'new MaxKey'; - } - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => { - return `()`; - } - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'new Timestamp'; - } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - // PHP orders increment and timestamp args differently (see: PHPC-845) - return `(${arg2 === undefined ? 0 : arg2}, ${arg1 === undefined ? 0 : arg1})`; - } - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => '' - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - switch(type) { - case '_string': - if ((arg.indexOf('.') !== -1) && (arg.indexOf('.') !== arg.length - 2)) { - return `(float) ${arg}` - } - return `(int) ${arg}` - default: - return `${arg}` - } - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'UTCDateTime'; - } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - if (date === null) { - return `new ${lhs}()`; + let indexTest = 0; + let pairs = args.map((arg) => { + if (isObjectCastRequired && !isExpectedIndex(arg[0], indexTest)) { + isObjectCastRequired = false; } - return isString - ? `(new ${lhs}(${date.getTime()}))->toDateTime()->format(\\DateTimeInterface::RFC3339_EXTENDED)` - : `new ${lhs}(${date.getTime()})` - ; - } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return `new UTCDateTime()`; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - (args) => { - return ''; - } + indexTest++; + return `${this.utils.stringifyWithSingleQuotes(arg[0])} => ${arg[1]}`; + }).join(', '); - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `(${lhs})->getCode()`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate !!js/function > - () => { - return ''; - } - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => { - return `(${lhs})->getScope()`; - } - CodeScopeArgsTemplate: &CodeScopeArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (arg) => { - return `${arg}`; - } - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `(${lhs})->getTimestamp()`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return ``; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate !!js/function > - (lhs, arg) => { - return `(\\ctype_xdigit(${this.utils.stringifyWithSingleQuotes(arg)}) && \\strlen(${this.utils.stringifyWithSingleQuotes(arg)}) == 24)`; - } - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - (lhs) => { - return `(${lhs})->getData()`; - } - BinaryValueArgsTemplate: &BinaryValueArgsTemplate !!js/function > - () => { - return ''; - } - BinaryLengthTemplate: &BinaryLengthTemplate !!js/function > - (lhs) => { - return `\\strlen((${lhs})->getData())`; - } - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate !!js/function > - () => { - return ''; - } - BinaryToStringTemplate: &BinaryToStringTemplate !!js/function > - (lhs) => { - return `(${lhs})->getData()`; - } - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate !!js/function > - () => { - return ''; - } - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `(${lhs})->getType()`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}['$db']`; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}['$ref']`; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}['$id']`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefToStringTemplate: &DBRefToStringTemplate null - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate !!js/function > - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate !!js/function > - () => { - return ''; - } - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `(float) ${lhs}`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (arg) => { - return `${arg} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (arg) => { - return `${arg} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => { - return `${lhs} <<`; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => { - return `${lhs} >>`; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} <=>`; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `(${lhs} % 2) === 1`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ''; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} === 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `(float) ${lhs}`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x00000000ffffffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate !!js/function > - () => { - return ''; - } - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `(${lhs})->getTimestamp()`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => { - return '' - } - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `(${lhs})->getIncrement()`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => { - return '' - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `(${lhs})->getTimestamp()`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `(${lhs})->getIncrement()`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `new UTCDateTime((${lhs})->getTimestamp() * 1000)`; - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `${lhs} <=> `; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} != `; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} > `; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >= `; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} < `; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <= `; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => { - return ''; - } - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => { - return ''; - } - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - (lhs) => { - return ''; - } - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate !!js/function > - (lhs) => { - return ''; + // Rebuilding pairs for numeric sequential indexes without quotes + if (isObjectCastRequired) { + pairs = args.map((arg) => { + return `${arg[0]} => ${arg[1]}`; + }).join(', '); } - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return '\\PHP_INT_MAX'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return '\\PHP_INT_MIN'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => { - return '0'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => { - return '1'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => { - return '-1'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate !!js/function > - (lhs, arg) => { - return `(int) ${arg}`; - } - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (lhs, arg) => { + return `${isObjectCastRequired ? '(object) ' : ''}[${pairs}]`; + } + + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: !!js/function &CodeSymbolTemplate > + () => { + return 'new Javascript'; + } + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + return !scope + ? `(${this.utils.stringifyWithSingleQuotes(code)})` + : `(${this.utils.stringifyWithSingleQuotes(code)}, ${scope})` + ; + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, id) => { + return !id + ? `()` + : `(${this.utils.stringifyWithSingleQuotes(id)})` + ; + } + BinarySymbolTemplate: !!js/function &BinarySymbolTemplate > + () => { + return 'new Binary'; + } + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, bytes, type) => { + if (type === null) { + type = 'Binary::TYPE_GENERIC'; + } + return `(${this.utils.stringifyWithSingleQuotes(bytes)}, ${type})`; + } + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => { + return 'Binary::TYPE_GENERIC'; + } + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => { + return 'Binary::TYPE_FUNCTION'; + } + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => { + return 'Binary::TYPE_OLD_BINARY'; + } + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => { + return 'Binary::TYPE_OLD_UUID'; + } + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => { + return 'Binary::TYPE_UUID'; + } + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => { + return 'Binary::TYPE_MD5'; + } + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + () => { + return 'Binary::TYPE_USER_DEFINED'; + } + DBRefSymbolTemplate: !!js/function &DBRefSymbolTemplate > + () => { + return '' + } + DBRefSymbolArgsTemplate: !!js/function &DBRefSymbolArgsTemplate > + (lhs, coll, id, db) => { + let coll_string = `'$ref' => ${this.utils.stringifyWithSingleQuotes(coll)}`; + let id_string = `, '$id' => ${id}`; + let db_string = db ? `, '$db' => ${this.utils.stringifyWithSingleQuotes(db)}` : `, '$db' => null`; + return `[${coll_string}${id_string}${db_string}]`; + } + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return ''; + } + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_decimal' || type === '_double') { return arg; } - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate !!js/function > - (lhs, arg) => { - return `(int) ${arg}`; - } - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(int) ${arg}`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - () => { - return 'new Decimal128'; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => { - return 'new ObjectId'; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return 'new ObjectId'; + if (type === '_integer' || type === '_long') { + return `${arg}.0`; + } + return `(float) ${arg}`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return ''; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { + return arg; } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (!isNumber) { - return `(\\str_pad(\\bin2hex(\\pack('N', (${arg})->toDateTime()->getTimestamp())), 24, '0'))`; - } - return `(\\str_pad(\\bin2hex(\\pack('N', ${arg})), 24, '0'))`; + return `(int) ${arg}`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return '' + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { + return arg; } - # non bson-specific would go here, but there aren't any atm. + return `(int) ${arg}`; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => { + return 'new Regex'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return ''; + } + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (lhs, arg) => { + return arg; + } + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'new Regex'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + return `(${this.utils.stringifyWithDoubleQuotes(pattern)}${flags ? ', ' + this.utils.stringifyWithDoubleQuotes(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'new Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '0' : arg.toString(); + return `('${this.utils.removeStringQuotes(arg)}')`; + } + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => { + return 'new MinKey'; + } + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => { + return `()`; + } + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => { + return 'new MaxKey'; + } + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => { + return `()`; + } + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'new Timestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + // PHP orders increment and timestamp args differently (see: PHPC-845) + return `(${arg2 === undefined ? 0 : arg2}, ${arg1 === undefined ? 0 : arg1})`; + } + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => '' + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - let set = new Set(Object.values(args)); - return [...set].sort().join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return `use MongoDB\\Client;`; - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - # Common internal Regexp - 8ImportTemplate: &8ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Regex;`; - } - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - # Code - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Javascript;`; - } - # ObjectId - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\ObjectId;`; - } - # Binary - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Binary;`; - } - # DBRef - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - # Int64 - 106ImportTemplate: &106ImportTemplate null - # MinKey - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\MinKey;`; - } - # MaxKey - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\MaxKey;`; - } - # Regex - 109ImportTemplate: &109ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Regex;`; - } - # Timestamp - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Timestamp;`; - } - 111ImportTemplate: &111ImportTemplate null - # Decimal128 - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Decimal128;`; - } - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\UTCDateTime;`; - } - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + switch(type) { + case '_string': + if ((arg.indexOf('.') !== -1) && (arg.indexOf('.') !== arg.length - 2)) { + return `(float) ${arg}` + } + return `(int) ${arg}` + default: + return `${arg}` + } + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'UTCDateTime'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + if (date === null) { + return `new ${lhs}()`; + } + return isString + ? `(new ${lhs}(${date.getTime()}))->toDateTime()->format(\\DateTimeInterface::RFC3339_EXTENDED)` + : `new ${lhs}(${date.getTime()})` + ; + } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return `new UTCDateTime()`; + } + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + (args) => { + return ''; + } + + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `(${lhs})->getCode()`; + } + CodeCodeArgsTemplate: !!js/function &CodeCodeArgsTemplate > + () => { + return ''; + } + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => { + return `(${lhs})->getScope()`; + } + CodeScopeArgsTemplate: !!js/function &CodeScopeArgsTemplate > + () => { + return ''; + } + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => { + return ''; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (arg) => { + return `${arg}`; + } + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `(${lhs})->getTimestamp()`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => { + return ''; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return ``; + } + ObjectIdIsValidArgsTemplate: !!js/function &ObjectIdIsValidArgsTemplate > + (lhs, arg) => { + return `(\\ctype_xdigit(${this.utils.stringifyWithSingleQuotes(arg)}) && \\strlen(${this.utils.stringifyWithSingleQuotes(arg)}) == 24)`; + } + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + (lhs) => { + return `(${lhs})->getData()`; + } + BinaryValueArgsTemplate: !!js/function &BinaryValueArgsTemplate > + () => { + return ''; + } + BinaryLengthTemplate: !!js/function &BinaryLengthTemplate > + (lhs) => { + return `\\strlen((${lhs})->getData())`; + } + BinaryLengthArgsTemplate: !!js/function &BinaryLengthArgsTemplate > + () => { + return ''; + } + BinaryToStringTemplate: !!js/function &BinaryToStringTemplate > + (lhs) => { + return `(${lhs})->getData()`; + } + BinaryToStringArgsTemplate: !!js/function &BinaryToStringArgsTemplate > + () => { + return ''; + } + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `(${lhs})->getType()`; + } + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => { + return ''; + } + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}['$db']`; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}['$ref']`; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}['$id']`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + (lhs) => { + return ''; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + (lhs) => { + return ''; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + (lhs) => { + return ''; + } + DBRefToStringTemplate: &DBRefToStringTemplate null + DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: !!js/function &Int32ToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + Int32ToStringArgsTemplate: !!js/function &Int32ToStringArgsTemplate > + () => { + return ''; + } + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + LongToStringArgsTemplate: !!js/function &LongToStringArgsTemplate > + () => { + return ''; + } + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `${lhs}`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `(float) ${lhs}`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (arg) => { + return `${arg} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (arg) => { + return `${arg} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => { + return `${lhs} <<`; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => { + return `${lhs} >>`; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} <=>`; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `(${lhs} % 2) === 1`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ''; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} === 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return lhs; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return lhs; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `(float) ${lhs}`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x00000000ffffffff`; + } + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + TimestampToStringArgsTemplate: !!js/function &TimestampToStringArgsTemplate > + () => { + return ''; + } + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `(${lhs})->getTimestamp()`; + } + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => { + return '' + } + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `(${lhs})->getIncrement()`; + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => { + return '' + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `(${lhs})->getTimestamp()`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `(${lhs})->getIncrement()`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `new UTCDateTime((${lhs})->getTimestamp() * 1000)`; + } + TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `${lhs} <=> `; + } + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs} != `; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs} > `; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >= `; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs} < `; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <= `; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return lhs; + } + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => { + return ''; + } + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return lhs; + } + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => { + return ''; + } + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + return lhs; + } + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + (lhs) => { + return ''; + } + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + Decimal128ToStringArgsTemplate: + !!js/function &Decimal128ToStringArgsTemplate > + (lhs) => { + return ''; + } + + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return '\\PHP_INT_MAX'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return '\\PHP_INT_MIN'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => { + return '0'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => { + return '1'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => { + return '-1'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: !!js/function &LongSymbolFromBitsTemplate > + () => { + return ''; + } + LongSymbolFromBitsArgsTemplate: + !!js/function &LongSymbolFromBitsArgsTemplate > + (lhs, arg) => { + return `(int) ${arg}`; + } + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return ''; + } + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (lhs, arg) => { + return arg; + } + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => { + return ''; + } + LongSymbolFromNumberArgsTemplate: + !!js/function &LongSymbolFromNumberArgsTemplate > + (lhs, arg) => { + return `(int) ${arg}`; + } + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => { + return ''; + } + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(int) ${arg}`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + () => { + return 'new Decimal128'; + } + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (!isNumber) { + return `(\\str_pad(\\bin2hex(\\pack('N', (${arg})->toDateTime()->getTimestamp())), 24, '0'))`; + } + return `(\\str_pad(\\bin2hex(\\pack('N', ${arg})), 24, '0'))`; + } + # non bson-specific would go here, but there aren't any atm. + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + let set = new Set(Object.values(args)); + return [...set].sort().join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return `use MongoDB\\Client;`; + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + # Common internal Regexp + 8ImportTemplate: !!js/function &8ImportTemplate > + () => { + return `use MongoDB\\BSON\\Regex;`; + } + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + # Code + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return `use MongoDB\\BSON\\Javascript;`; + } + # ObjectId + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return `use MongoDB\\BSON\\ObjectId;`; + } + # Binary + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return `use MongoDB\\BSON\\Binary;`; + } + # DBRef + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + # Int64 + 106ImportTemplate: &106ImportTemplate null + # MinKey + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return `use MongoDB\\BSON\\MinKey;`; + } + # MaxKey + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return `use MongoDB\\BSON\\MaxKey;`; + } + # Regex + 109ImportTemplate: !!js/function &109ImportTemplate > + () => { + return `use MongoDB\\BSON\\Regex;`; + } + # Timestamp + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return `use MongoDB\\BSON\\Timestamp;`; + } + 111ImportTemplate: &111ImportTemplate null + # Decimal128 + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return `use MongoDB\\BSON\\Decimal128;`; + } + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: !!js/function &200ImportTemplate > + () => { + return `use MongoDB\\BSON\\UTCDateTime;`; + } + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/python/templates.yaml b/packages/bson-transpilers/symbols/python/templates.yaml index 5eced8c2ffa..c1828b20fea 100644 --- a/packages/bson-transpilers/symbols/python/templates.yaml +++ b/packages/bson-transpilers/symbols/python/templates.yaml @@ -1,1043 +1,1073 @@ # Python Templates Templates: - # Misc - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'a' - y: '' - g: 's' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' - # Syntax + # Misc + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'a' + y: '' + g: 's' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' + # Syntax - # filter, project, sort, collation, skip, limit, maxTimeMS - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const comment = `# Requires the PyMongo package. - # https://api.mongodb.com/python/current`; - const translateKey = { - filter: 'filter', - project: 'projection', - sort: 'sort', - collation: 'collation', - skip: 'skip', - limit: 'limit', - maxTimeMS: 'max_time_ms' - }; - const options = spec.options; - const exportMode = spec.exportMode; - delete spec.options; - delete spec.exportMode; + # filter, project, sort, collation, skip, limit, maxTimeMS + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const comment = `# Requires the PyMongo package. + # https://api.mongodb.com/python/current`; + const translateKey = { + filter: 'filter', + project: 'projection', + sort: 'sort', + collation: 'collation', + skip: 'skip', + limit: 'limit', + maxTimeMS: 'max_time_ms' + }; + const options = spec.options; + const exportMode = spec.exportMode; + delete spec.options; + delete spec.exportMode; - const connect = `client = MongoClient('${options.uri}')`; - const coll = `client['${options.database}']['${options.collection}']`; + const connect = `client = MongoClient('${options.uri}')`; + const coll = `client['${options.database}']['${options.collection}']`; - let driverMethod; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'delete_many'; - break; - case 'Update Query': - driverMethod = 'update_many'; - break; - default: - driverMethod = 'find'; - } + let driverMethod; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'delete_many'; + break; + case 'Update Query': + driverMethod = 'update_many'; + break; + default: + driverMethod = 'find'; + } - if ('aggregation' in spec) { - return `${comment}\n\n${connect}\nresult = ${coll}.aggregate(${spec.aggregation})`; - } + if ('aggregation' in spec) { + return `${comment}\n\n${connect}\nresult = ${coll}.aggregate(${spec.aggregation})`; + } - const vars = Object.keys(spec).reduce( - (result, k) => { - if (k === 'sort') { - return `${result}\n${k}=list(${spec[k]}.items())`; - } - return `${result}\n${k}=${spec[k]}`; - }, - connect - ); + const vars = Object.keys(spec).reduce( + (result, k) => { + if (k === 'sort') { + return `${result}\n${k}=list(${spec[k]}.items())`; + } + return `${result}\n${k}=${spec[k]}`; + }, + connect + ); - const args = Object.keys(spec).reduce( - (result, k) => { - const divider = result === '' ? '' : ',\n'; - return `${result}${divider} ${ - k in translateKey ? translateKey[k] : k - }=${k}`; - }, - '' - ); - const cmd = `result = ${coll}.${driverMethod}(\n${args}\n)`; + const args = Object.keys(spec).reduce( + (result, k) => { + const divider = result === '' ? '' : ',\n'; + return `${result}${divider} ${ + k in translateKey ? translateKey[k] : k + }=${k}`; + }, + '' + ); + const cmd = `result = ${coll}.${driverMethod}(\n${args}\n)`; - return `${comment}\n\n${vars}\n\n${cmd}`; - } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!')) { - return `${lhs} != ${rhs}`; + return `${comment}\n\n${vars}\n\n${cmd}`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!')) { + return `${lhs} != ${rhs}`; + } + else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = 'in'; + if (op.includes('!') || op.includes('not')) { + str = 'not in'; + } + return `${lhs} ${str} ${rhs}` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' and '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' or '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `not ${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; - } - return `${lhs} ${op} ${rhs}`; - } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = 'in'; - if (op.includes('!') || op.includes('not')) { - str = 'not in'; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `${s} // ${rhs}`; + case '**': + return `${s} ** ${rhs}`; + default: + return `${s} ${op} ${rhs}`; } - return `${lhs} ${str} ${rhs}` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' and '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' or '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `not ${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `${s} // ${rhs}`; - case '**': - return `${s} ** ${rhs}`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosSyntaxTemplate: &EosSyntaxTemplate null - EofSyntaxTemplate: &EofSyntaxTemplate null - NewTemplate: &NewSyntaxTemplate null - # BSON Object Type templates - CodeTypeTemplate: &CodeTypeTemplate null - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosSyntaxTemplate: &EosSyntaxTemplate null + EofSyntaxTemplate: &EofSyntaxTemplate null + NewTemplate: &NewSyntaxTemplate null + # BSON Object Type templates + CodeTypeTemplate: &CodeTypeTemplate null + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + flags = flags === '' ? '' : `(?${flags})`; + + // Double-quote stringify + const str = pattern + flags; + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + newStr = str.substr(1, str.length - 2); } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - flags = flags === '' ? '' : `(?${flags})`; + return `re.compile(r"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (str) => { + return `${str.charAt(0).toUpperCase()}${str.slice(1)}`; + } + IntegerTypeTemplate: &IntegerTypeTemplate null + DecimalTypeTemplate: &DecimalTypeTemplate null + LongBasicTypeTemplate: &LongBasicTypeTemplate null + HexTypeTemplate: &HexTypeTemplate null + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal) => { + let offset = 0; - // Double-quote stringify - const str = pattern + flags; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `re.compile(r"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + if ( + literal.charAt(0) === '0' && + (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') + ) { + offset = 2; + } else if (literal.charAt(0) === '0') { + offset = 1; } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (str) => { - return `${str.charAt(0).toUpperCase()}${str.slice(1)}`; - } - IntegerTypeTemplate: &IntegerTypeTemplate null - DecimalTypeTemplate: &DecimalTypeTemplate null - LongBasicTypeTemplate: &LongBasicTypeTemplate null - HexTypeTemplate: &HexTypeTemplate null - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal) => { - let offset = 0; - if ( - literal.charAt(0) === '0' && - (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') - ) { - offset = 2; - } else if (literal.charAt(0) === '0') { - offset = 1; - } - - literal = `0o${literal.substr(offset, literal.length - 1)}`; + literal = `0o${literal.substr(offset, literal.length - 1)}`; - return literal; - } - NumericTypeTemplate: &NumericTypeTemplate null - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - if (literal === '') { - return '[]' - } - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); + return literal; + } + NumericTypeTemplate: &NumericTypeTemplate null + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + if (literal === '') { + return '[]' + } + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); - return `[${indent}${literal}${closingIndent}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'None'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'None'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal, depth) => { - if (literal === '') { - return '{}'; + return `[${indent}${literal}${closingIndent}]`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'None'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'None'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal, depth) => { + if (literal === '') { + return '{}'; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return '{}'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return literal; + return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return '{}'; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; - } - const pairs = args.map((arg) => { - return `${indent}${singleStringify(arg[0])}: ${arg[1]}`; - }).join(', '); + const pairs = args.map((arg) => { + return `${indent}${singleStringify(arg[0])}: ${arg[1]}`; + }).join(', '); - return `{${pairs}${closingIndent}}`; - } - # BSON Object Method templates - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `str(${lhs})`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate null - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `str(${lhs})`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - (lhs) => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `${lhs}.generation_time`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => { - return ''; - } - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - () => { - return ''; - } - BinaryValueArgsTemplate: &BinaryValueArgsTemplate !!js/function > - (lhs) => { - return `str(${lhs})`; - } - BinaryLengthTemplate: &BinaryLengthTemplate !!js/function > - () => { - return ''; - } - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate !!js/function > - (lhs) => { - return `len(${lhs})`; - } - BinaryToStringTemplate: &BinaryToStringTemplate !!js/function > - () => { - return ''; - } - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate !!js/function > - (lhs) => { - return `str(${lhs})`; - } - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `${lhs}.subtype`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.database`; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.collection`; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.id`; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function - () => { - return ''; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `int(${lhs})`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - () => { - return 'str'; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate !!js/function > - (lhs) => { - return `(${lhs})`; - } - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `float(${lhs})`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (arg) => { - return `${arg} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (arg) => { - return `${arg} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => { - return `${lhs} <<`; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => { - return `${lhs} >>`; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} -`; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `(${lhs} % 2) == 1`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ''; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} == 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `float(${lhs})`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x0000ffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - () => { - return 'str'; - } - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate !!js/function > - (lhs) => { - return `(${lhs})`; - } - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.time`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => { - return ''; - } - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.inc`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => { - return ''; - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.time`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.inc`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate null - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => { - return '.as_datetime()'; - } - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `(${lhs}.as_datetime() - `; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}.as_datetime()).total_seconds()`; - } - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => { - return ''; - } - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => { - return ''; - } - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - () => { - return ''; - } - # Symbol Templates - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > # Also has process method - () => { - return 'Code'; - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > # Also has process method - (lhs, code, scope) => { - // Single quote stringify - const scopestr = scope === undefined ? '' : `, ${scope}`; - let newStr = code === undefined ? '' : code; - const str = newStr; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + return `{${pairs}${closingIndent}}`; + } + # BSON Object Method templates + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `str(${lhs})`; + } + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: &CodeScopeTemplate null + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `str(${lhs})`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + (lhs) => { + return ''; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `${lhs}.generation_time`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => { + return ''; + } + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + () => { + return ''; + } + BinaryValueArgsTemplate: !!js/function &BinaryValueArgsTemplate > + (lhs) => { + return `str(${lhs})`; + } + BinaryLengthTemplate: !!js/function &BinaryLengthTemplate > + () => { + return ''; + } + BinaryLengthArgsTemplate: !!js/function &BinaryLengthArgsTemplate > + (lhs) => { + return `len(${lhs})`; + } + BinaryToStringTemplate: !!js/function &BinaryToStringTemplate > + () => { + return ''; + } + BinaryToStringArgsTemplate: !!js/function &BinaryToStringArgsTemplate > + (lhs) => { + return `str(${lhs})`; + } + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `${lhs}.subtype`; + } + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.database`; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.collection`; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.id`; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate () => { + return ''; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + () => { + return ''; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate () => { + return ''; + } + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `int(${lhs})`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + () => { + return 'str'; + } + LongToStringArgsTemplate: !!js/function &LongToStringArgsTemplate > + (lhs) => { + return `(${lhs})`; + } + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `float(${lhs})`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (arg) => { + return `${arg} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (arg) => { + return `${arg} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => { + return `${lhs} <<`; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => { + return `${lhs} >>`; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} -`; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `(${lhs} % 2) == 1`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ''; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} == 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return lhs; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return lhs; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `float(${lhs})`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x0000ffff`; + } + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + () => { + return 'str'; + } + TimestampToStringArgsTemplate: !!js/function &TimestampToStringArgsTemplate > + (lhs) => { + return `(${lhs})`; + } + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.time`; + } + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => { + return ''; + } + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.inc`; + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => { + return ''; + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.time`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.inc`; + } + TimestampAsDateTemplate: &TimestampAsDateTemplate null + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => { + return '.as_datetime()'; + } + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `(${lhs}.as_datetime() - `; + } + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (lhs, arg) => { + return `${arg}.as_datetime()).total_seconds()`; + } + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return lhs; + } + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => { + return ''; + } + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return lhs; + } + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => { + return ''; + } + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + return lhs; + } + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + () => { + return ''; + } + # Symbol Templates + CodeSymbolTemplate: + !!js/function &CodeSymbolTemplate > # Also has process method + () => { + return 'Code'; + } + CodeSymbolArgsTemplate: + !!js/function &CodeSymbolArgsTemplate > # Also has process method + (lhs, code, scope) => { + // Single quote stringify + const scopestr = scope === undefined ? '' : `, ${scope}`; + let newStr = code === undefined ? '' : code; + const str = newStr; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + code = `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + return `(${code}${scopestr})`; + } + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, str) => { + if (!str || str.length === 0) { + return '()'; + } + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, bytes, type) => { + const str = bytes; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - code = `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; - return `(${code}${scopestr})`; } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, str) => { - if (!str || str.length === 0) { - return '()'; - } - let newStr = str; - if ( + bytes = `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + + if (type === null) { + return `(b${bytes})`; + } + return `(b${bytes}, ${type})`; + } + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => { + return 'binary.BINARY_SUBTYPE'; + } + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => { + return 'binary.FUNCTION_SUBTYPE'; + } + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => { + return 'binary.BINARY_SUBTYPE'; + } + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => { + return 'binary.OLD_UUID_SUBTYPE'; + } + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => { + return 'binary.UUID_SUBTYPE'; + } + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => { + return 'binary.MD5_SUBTYPE'; + } + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + () => { + return 'binary.USER_DEFINED_SUBTYPE'; + } + DBRefSymbolTemplate: &DBRefSymbolTemplate null + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return 'float'; + } + DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return 'int'; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? 0 : arg; + const str = arg.toString(); + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; - } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, bytes, type) => { - const str = bytes; + return `('${newStr}')`; + } else { + return `(${newStr})`; + } + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return 'Int64'; + } + LongSymbolArgsTemplate: &LongSymbolArgsTemplate null + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return 'sys.maxsize'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return '-sys.maxsize -1'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => { + return 'Int64(0)'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => { + return 'Int64(1)'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => { + return 'Int64(-1)'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: + !!js/function &LongSymbolFromBitsTemplate > # Also has process method + () => { + return 'Int64'; + } + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return 'Int64'; + } + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => { + return 'Int64'; + } + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + (lhs, arg) => { + return 'Int64'; + } + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(int(${arg}))`; + } + MinKeySymbolTemplate: &MinKeySymbolTemplate null + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'Timestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + } + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return ''; + } + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (lhs, arg) => { + return arg; + } + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'Regex'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const singleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - bytes = `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - - if (type === null) { - return `(b${bytes})`; - } - return `(b${bytes}, ${type})`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => { - return 'binary.BINARY_SUBTYPE'; - } - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => { - return 'binary.FUNCTION_SUBTYPE'; - } - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => { - return 'binary.BINARY_SUBTYPE'; - } - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => { - return 'binary.OLD_UUID_SUBTYPE'; - } - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => { - return 'binary.UUID_SUBTYPE'; - } - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => { - return 'binary.MD5_SUBTYPE'; - } - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - () => { - return 'binary.USER_DEFINED_SUBTYPE'; - } - DBRefSymbolTemplate: &DBRefSymbolTemplate null - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return 'float'; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return 'int'; - } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? 0 : arg; - const str = arg.toString(); - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - return `('${newStr}')`; - } else { - return `(${newStr})`; - } - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return 'Int64'; - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate null - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return 'sys.maxsize'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return '-sys.maxsize -1'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => { - return 'Int64(0)'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => { - return 'Int64(1)'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => { - return 'Int64(-1)'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > # Also has process method - () => { - return 'Int64'; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return 'Int64'; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => { - return 'Int64'; - } - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - (lhs, arg) => { - return 'Int64'; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(int(${arg}))`; - } - MinKeySymbolTemplate: &MinKeySymbolTemplate null - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'Timestamp'; - } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; - } - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return ''; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (lhs, arg) => { - return arg; - } - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'Regex'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; - } - return `(${singleStringify(pattern)}${flags ? ', ' + singleStringify(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (lhs, str) => { - let newStr = str; - if ( + return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + } + return `(${singleStringify(pattern)}${flags ? ', ' + singleStringify(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (lhs, str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + () => { + return 'str'; + } + Decimal128ToStringArgsTemplate: + !!js/function &Decimal128ToStringArgsTemplate > + (lhs) => { + return `(${lhs})`; + } + # BSON Util Templates + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => { + return 'ObjectId'; + } + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return `ObjectId.from_datetime`; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (isNumber) { + return `(datetime.fromtimestamp(${arg}))`; + } + return `(${arg})`; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return `${lhs}.is_valid`; + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + # JS Symbol Templates + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return ''; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? 0 : arg; + const str = arg.toString(); + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - () => { - return 'str'; - } - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate !!js/function > - (lhs) => { - return `(${lhs})`; - } - # BSON Util Templates - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => { - return 'ObjectId'; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return `ObjectId.from_datetime`; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (isNumber) { - return `(datetime.fromtimestamp(${arg}))`; - } - return `(${arg})`; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return `${lhs}.is_valid`; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - # JS Symbol Templates - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return ''; - } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? 0 : arg; - const str = arg.toString(); - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - return `float('${newStr}')`; - } else { - return `${newStr}`; - } - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'datetime'; - } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - const toStr = isString ? '.strftime(\'%a %b %d %Y %H:%M:%S %Z\')' : ''; + return `float('${newStr}')`; + } else { + return `${newStr}`; + } + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'datetime'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + const toStr = isString ? '.strftime(\'%a %b %d %Y %H:%M:%S %Z\')' : ''; - if (date === null) { - return `${lhs}.utcnow()${toStr}`; - } + if (date === null) { + return `${lhs}.utcnow()${toStr}`; + } - const dateStr = [ - date.getUTCFullYear(), - date.getUTCMonth() + 1, - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds() - ].join(', '); + const dateStr = [ + date.getUTCFullYear(), + date.getUTCMonth() + 1, + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds() + ].join(', '); - return `${lhs}(${dateStr}, tzinfo=timezone.utc)${toStr}`; - } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return 'datetime.utcnow'; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > # Also has process method - () => { - return 're'; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - const bson = []; - const other = []; - Object.keys(args).map( - (m) => { - if (m > 99 && m < 200) { - bson.push(args[m]); - } else { - other.push(args[m]); - } + return `${lhs}(${dateStr}, tzinfo=timezone.utc)${toStr}`; + } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return 'datetime.utcnow'; + } + DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null + RegExpSymbolTemplate: + !!js/function &RegExpSymbolTemplate > # Also has process method + () => { + return 're'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + const bson = []; + const other = []; + Object.keys(args).map( + (m) => { + if (m > 99 && m < 200) { + bson.push(args[m]); + } else { + other.push(args[m]); } - ); - if (bson.length) { - other.push(`from bson import ${bson.join(', ')}`); } - return other.join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return 'from pymongo import MongoClient'; - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - () => { - return 'import re'; - } - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return 'Code'; - } - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return 'ObjectId'; - } - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return 'Binary'; - } - 103ImportTemplate: &103ImportTemplate !!js/function > - () => { - return 'DBRef'; - } - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate !!js/function > - () => { - return 'Int64'; - } - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return 'MinKey'; - } - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return 'MaxKey'; - } - 109ImportTemplate: &109ImportTemplate !!js/function > - () => { - return 'Regex'; - } - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return 'Timestamp'; - } - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return 'Decimal128'; - } - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate !!js/function > - () => { - return 'from datetime import datetime, tzinfo, timezone'; - } - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ); + if (bson.length) { + other.push(`from bson import ${bson.join(', ')}`); + } + return other.join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return 'from pymongo import MongoClient'; + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + () => { + return 'import re'; + } + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return 'Code'; + } + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return 'ObjectId'; + } + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return 'Binary'; + } + 103ImportTemplate: !!js/function &103ImportTemplate > + () => { + return 'DBRef'; + } + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: !!js/function &106ImportTemplate > + () => { + return 'Int64'; + } + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return 'MinKey'; + } + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return 'MaxKey'; + } + 109ImportTemplate: !!js/function &109ImportTemplate > + () => { + return 'Regex'; + } + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return 'Timestamp'; + } + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return 'Decimal128'; + } + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: !!js/function &200ImportTemplate > + () => { + return 'from datetime import datetime, tzinfo, timezone'; + } + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/ruby/templates.yaml b/packages/bson-transpilers/symbols/ruby/templates.yaml index 65ee4987335..54fd0394c1b 100644 --- a/packages/bson-transpilers/symbols/ruby/templates.yaml +++ b/packages/bson-transpilers/symbols/ruby/templates.yaml @@ -18,1124 +18,1144 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: '' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: '' - l: '' - u: '' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: '' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: '' + l: '' + u: '' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - comment = '# Requires the MongoDB Ruby Driver\n# https://docs.mongodb.com/ruby-driver/master/'; + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + comment = '# Requires the MongoDB Ruby Driver\n# https://docs.mongodb.com/ruby-driver/master/'; - const getKey = k => { - let translateKey = { - project: 'projection', - maxTimeMS: 'max_time_ms' - } - return k in translateKey ? translateKey[k] : k - }; - const options = spec.options; - const filter = spec.filter || {} - const exportMode = spec.exportMode; + const getKey = k => { + let translateKey = { + project: 'projection', + maxTimeMS: 'max_time_ms' + } + return k in translateKey ? translateKey[k] : k + }; + const options = spec.options; + const filter = spec.filter || {} + const exportMode = spec.exportMode; - delete spec.options; - delete spec.filter - delete spec.exportMode; + delete spec.options; + delete spec.filter + delete spec.exportMode; - const connect = `client = Mongo::Client.new('${options.uri}', :database => '${options.database}')`; - const coll = `client.database['${options.collection}']`; + const connect = `client = Mongo::Client.new('${options.uri}', :database => '${options.database}')`; + const coll = `client.database['${options.collection}']`; - let driverMethod; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'delete_many'; - break; - case 'Update Query': - driverMethod = 'update_many'; - break; - default: - driverMethod = 'find'; - } + let driverMethod; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'delete_many'; + break; + case 'Update Query': + driverMethod = 'update_many'; + break; + default: + driverMethod = 'find'; + } - if ('aggregation' in spec) { - return `${comment}\n\n${connect}\nresult = ${coll}.aggregate(${spec.aggregation})`; - } + if ('aggregation' in spec) { + return `${comment}\n\n${connect}\nresult = ${coll}.aggregate(${spec.aggregation})`; + } - const vars = Object.keys(spec).reduce( - (result, k) => { - return `${result}\n${getKey(k)} = ${spec[k]}`; - }, - connect - ); + const vars = Object.keys(spec).reduce( + (result, k) => { + return `${result}\n${getKey(k)} = ${spec[k]}`; + }, + connect + ); - const args = Object.keys(spec).reduce( - (result, k) => { - const divider = result === '' ? '' : ',\n'; - return `${result}${divider} ${getKey(k)}: ${getKey(k)}`; - }, - '' - ); + const args = Object.keys(spec).reduce( + (result, k) => { + const divider = result === '' ? '' : ',\n'; + return `${result}${divider} ${getKey(k)}: ${getKey(k)}`; + }, + '' + ); - const cmd = `result = ${coll}.${driverMethod}(${filter}${args ? `, {\n${args}\n}` : ''})`; + const cmd = `result = ${coll}.${driverMethod}(${filter}${args ? `, {\n${args}\n}` : ''})`; - return `${comment}\n\n${vars}\n\n${cmd}`; - } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('is')) { - let not = op.includes('not') ? '!' : '' - return `${not}${lhs}.equal?(${rhs})` - } else if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; - } else if (op === '==' || op === '===') { - return `${lhs} == ${rhs}`; + return `${comment}\n\n${vars}\n\n${cmd}`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('is')) { + let not = op.includes('not') ? '!' : '' + return `${not}${lhs}.equal?(${rhs})` + } else if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; + } else if (op === '==' || op === '===') { + return `${lhs} == ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = ''; + if (op.includes('!') || op.includes('not')) { + str = '!'; + } + return `${str}${rhs}.include?(${lhs})` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - return `${lhs} ${op} ${rhs}`; - } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = ''; - if (op.includes('!') || op.includes('not')) { - str = '!'; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `${s}.div(${rhs})`; + case '**': + return `${s} ** ${rhs}`; + default: + return `${s} ${op} ${rhs}`; } - return `${str}${rhs}.include?(${lhs})` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `${s}.div(${rhs})`; - case '**': - return `${s} ** ${rhs}`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + const str = pattern; + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - const str = pattern; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - pattern = `${newStr.replace(/\\([\s\S])/g, '\\$1')}`; - return `/${pattern}/${flags ? flags : ''}`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType - HexTypeTemplate: &HexTypeTemplate null # args: literal, argType - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal) => { - let offset = 0; + pattern = `${newStr.replace(/\\([\s\S])/g, '\\$1')}`; + return `/${pattern}/${flags ? flags : ''}`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType + HexTypeTemplate: &HexTypeTemplate null # args: literal, argType + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal) => { + let offset = 0; - if ( - literal.charAt(0) === '0' && - (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') - ) { - offset = 2; - } else if (literal.charAt(0) === '0') { - offset = 1; - } - - literal = `0o${literal.substr(offset, literal.length - 1)}`; - - return literal; + if ( + literal.charAt(0) === '0' && + (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') + ) { + offset = 2; + } else if (literal.charAt(0) === '0') { + offset = 1; } - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - if (literal === '') { - return '[]' - } - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - return `[${indent}${literal}${closingIndent}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'nil'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'nil'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => { - if (literal === '') { - return '{}'; - } - return literal; - } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return '{}'; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - } - const pairs = args.map((arg) => { - return `${indent}${singleStringify(arg[0])} => ${arg[1]}`; - }).join(','); + literal = `0o${literal.substr(offset, literal.length - 1)}`; - return `{${pairs}${closingIndent}}` - } + return literal; + } + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + if (literal === '') { + return '[]' + } + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > - () => { - return 'BSON::Code' - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - } - if (code === undefined) { - return '.new' - } - return !scope ? `.new(${singleStringify(code)})` : `WithScope.new(${singleStringify(code)}, ${scope})` - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => { - return 'BSON::ObjectId'; - } - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, id) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + return `[${indent}${literal}${closingIndent}]`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'nil'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'nil'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => { + if (literal === '') { + return '{}'; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return '{}'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return !id ? '.new' : `(${singleStringify(id)})`; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate !!js/function > - () => { - return 'BSON::DBRef' - } - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate !!js/function > - (lhs, coll, id, db) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - } + const pairs = args.map((arg) => { + return `${indent}${singleStringify(arg[0])} => ${arg[1]}`; + }).join(','); - let db_string = db ? `,\n '$db' => ${singleStringify(db)}` : '' - return `.new(\n '$ref' => ${singleStringify(coll)},\n '$id' => ${id}${db_string}\n)` - } - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return ''; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_decimal' || type === '_double') { - return arg; - } - return `${arg}.to_f`; - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return ''; - } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long') { - return arg; - } - return `${arg}.to_i`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return '' - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long') { - return arg; - } - return `${arg}.to_i`; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => { - return ''; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return ''; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '' : arg; - const str = arg.toString(); + return `{${pairs}${closingIndent}}` + } + + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: !!js/function &CodeSymbolTemplate > + () => { + return 'BSON::Code' + } + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + const singleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - return `:'${newStr}'`; - } else { - return `${newStr}.to_sym`; } - } - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return ''; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `${newStr.replace(/\\([\s\S])/g, '\\$1')}`; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + } + if (code === undefined) { + return '.new' + } + return !scope ? `.new(${singleStringify(code)})` : `WithScope.new(${singleStringify(code)}, ${scope})` + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => { + return 'BSON::ObjectId'; + } + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, id) => { + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return `/${singleStringify(pattern)}/${flags ? singleStringify(flags) : ''}`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'BSON::Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '0' : arg.toString(); - if (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') { - return `.new(${arg})`; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + } + return !id ? '.new' : `(${singleStringify(id)})`; + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: !!js/function &DBRefSymbolTemplate > + () => { + return 'BSON::DBRef' + } + DBRefSymbolArgsTemplate: !!js/function &DBRefSymbolArgsTemplate > + (lhs, coll, id, db) => { + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return `.new('${arg}')`; - } - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => { - return 'BSON::MinKey'; - } - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => { - return '.new'; - } - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => { - return 'BSON::MaxKey'; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => { - return '.new'; - } - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'BSON::Timestamp'; + + let db_string = db ? `,\n '$db' => ${singleStringify(db)}` : '' + return `.new(\n '$ref' => ${singleStringify(coll)},\n '$id' => ${id}${db_string}\n)` + } + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return ''; + } + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_decimal' || type === '_double') { + return arg; } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - return `.new(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + return `${arg}.to_f`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return ''; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long') { + return arg; } - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return ''; + return `${arg}.to_i`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return '' + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long') { + return arg; } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - const str = arg.toString(); + return `${arg}.to_i`; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => { + return ''; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return ''; + } + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '' : arg; + const str = arg.toString(); + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + return `:'${newStr}'`; + } else { + return `${newStr}.to_sym`; + } + } + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return ''; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const singleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - return `'${newStr}'.to_f`; - } else if (type === '_decimal' || type === '_double') { - return newStr; - } else { - return `${newStr}.to_f`; } + return `${newStr.replace(/\\([\s\S])/g, '\\$1')}`; + } + return `/${singleStringify(pattern)}/${flags ? singleStringify(flags) : ''}`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'BSON::Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '0' : arg.toString(); + if (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') { + return `.new(${arg})`; } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'Time'; + return `.new('${arg}')`; + } + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => { + return 'BSON::MinKey'; + } + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => { + return '.new'; + } + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => { + return 'BSON::MaxKey'; + } + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => { + return '.new'; + } + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'BSON::Timestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + return `.new(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + } + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return ''; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + const str = arg.toString(); + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + return `'${newStr}'.to_f`; + } else if (type === '_decimal' || type === '_double') { + return newStr; + } else { + return `${newStr}.to_f`; + } + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'Time'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + const toStr = isString ? '.strftime(\'%a %b %d %Y %H:%M:%S %Z\')' : ''; + + if (date === null) { + return `${lhs}.new.utc${toStr}`; } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - const toStr = isString ? '.strftime(\'%a %b %d %Y %H:%M:%S %Z\')' : ''; - if (date === null) { - return `${lhs}.new.utc${toStr}`; - } + const dateStr = [ + date.getUTCFullYear(), + date.getUTCMonth() + 1, + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds() + ].join(', '); - const dateStr = [ - date.getUTCFullYear(), - date.getUTCMonth() + 1, - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds() - ].join(', '); + return `${lhs}.utc(${dateStr})${toStr}`; + } - return `${lhs}.utc(${dateStr})${toStr}`; - } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return 'Time.now.utc'; + } + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + (args) => { + return ''; + } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return 'Time.now.utc'; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - (args) => { - return ''; - } + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `${lhs}.javascript`; + } + CodeCodeArgsTemplate: !!js/function &CodeCodeArgsTemplate > + () => { + return ''; + } + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => { + return `${lhs}.scope`; + } + CodeScopeArgsTemplate: !!js/function &CodeScopeArgsTemplate > + () => { + return ''; + } + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `${lhs}.to_s`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => { + return ''; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (arg) => { + return `${arg}`; + } + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `${lhs}.to_time`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => { + return ''; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return `${lhs}.legal?` + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: &BinarySubtypeTemplate null + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.database`; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.collection`; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.id`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + (lhs) => { + return ''; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + (lhs) => { + return ''; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + (lhs) => { + return ''; + } + DBRefToStringTemplate: !!js/function &DBRefToStringTemplate > + (lhs) => { + return '${lhs}.to_s'; + } + DBRefToStringArgsTemplate: !!js/function &DBRefToStringArgsTemplate > + () => { + return ''; + } + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: &Int32ToStringTemplate null + Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `${lhs}`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => { + return `${lhs}.to_s`; + } + LongToStringArgsTemplate: !!js/function &LongToStringArgsTemplate > + () => { + return ''; + } + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `${lhs}.to_f`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (arg) => { + return `${arg} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (arg) => { + return `${arg} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => { + return `${lhs} <<`; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => { + return `${lhs} >>`; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} -`; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `(${lhs} % 2) == 1`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ''; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} == 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return lhs; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return lhs; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `${lhs}.to_f`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x0000ffff`; + } + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (lhs) => { + return `${lhs}.to_s`; + } + TimestampToStringArgsTemplate: !!js/function &TimestampToStringArgsTemplate > + () => { + return ''; + } + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.seconds`; + } + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => { + return '' + } + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.increment`; + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => { + return '' + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.seconds`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.increment`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `Time.at(${lhs}.increment).utc`; + } + TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `${lhs} <=> `; + } + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs} != `; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs} > `; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >= `; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs} < `; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <= `; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return lhs; + } + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => { + return ''; + } + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return `${lhs}.inspect`; + } + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => { + return ''; + } + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + let extractRegex = (lhs) => { + let r = /^:'(.*)'$/; + let arr = r.exec(lhs); + return arr ? arr[1] : '' - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `${lhs}.javascript`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate !!js/function > - () => { - return ''; - } - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => { - return `${lhs}.scope`; - } - CodeScopeArgsTemplate: &CodeScopeArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.to_s`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (arg) => { - return `${arg}`; - } - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `${lhs}.to_time`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return `${lhs}.legal?` - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate null - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.database`; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.collection`; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.id`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefToStringTemplate: &DBRefToStringTemplate !!js/function > - (lhs) => { - return '${lhs}.to_s'; - } - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate !!js/function > - () => { - return ''; - } - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate null - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `${lhs}`; } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.to_s`; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate !!js/function > - () => { - return ''; - } - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `${lhs}.to_f`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (arg) => { - return `${arg} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (arg) => { - return `${arg} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => { - return `${lhs} <<`; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => { - return `${lhs} >>`; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} -`; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `(${lhs} % 2) == 1`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ''; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} == 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `${lhs}.to_f`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x0000ffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.to_s`; - } - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate !!js/function > - () => { - return ''; - } - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.seconds`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => { - return '' - } - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.increment`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => { - return '' - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.seconds`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.increment`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `Time.at(${lhs}.increment).utc`; - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `${lhs} <=> `; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} != `; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} > `; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >= `; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} < `; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <= `; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => { - return ''; - } - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return `${lhs}.inspect`; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => { - return ''; - } - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - let extractRegex = (lhs) => { - let r = /^:'(.*)'$/; - let arr = r.exec(lhs); - return arr ? arr[1] : '' + let res = extractRegex(lhs) + return res ? `'${res}'` : `${lhs}.to_s`; + } + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + (lhs) => { + return ''; + } + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + (lhs) => { + return `${lhs}.to_s`; + } + Decimal128ToStringArgsTemplate: + !!js/function &Decimal128ToStringArgsTemplate > + (lhs) => { + return ''; + } - } - let res = extractRegex(lhs) - return res ? `'${res}'` : `${lhs}.to_s`; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - (lhs) => { - return ''; - } - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.to_s`; - } - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate !!js/function > - (lhs) => { - return ''; - } - - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return '9223372036854775807'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return '-9223372036854775808'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => { - return '0'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => { - return '1'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => { - return '-1'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (lhs, arg) => { - return arg; - } - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}.to_i`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - () => { - return 'BSON::Decimal128'; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `.new(${arg})`; - } - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => { - return 'BSON::ObjectId'; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return '9223372036854775807'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return '-9223372036854775808'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => { + return '0'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => { + return '1'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => { + return '-1'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: !!js/function &LongSymbolFromBitsTemplate > + () => { + return ''; + } + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return ''; + } + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (lhs, arg) => { + return arg; + } + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => { + return ''; + } + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (lhs, arg) => { + return `${arg}.to_i`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + () => { + return 'BSON::Decimal128'; + } + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (lhs, arg) => { + return `.new(${arg})`; + } + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => { + return 'BSON::ObjectId'; + } + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return 'BSON::ObjectId.from_time'; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (!isNumber) { return `(${arg})`; } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return 'BSON::ObjectId.from_time'; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (!isNumber) { - return `(${arg})`; - } - return `(Time.at(${arg}))`; - } - # non bson-specific would go here, but there aren't any atm. - - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - let set = new Set(Object.values(args)) - if (set.has(`require 'mongo'`)) return `require 'mongo'` - return [...set].sort().join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return `require 'mongo'` - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate null - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 103ImportTemplate: &103ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 109ImportTemplate: &109ImportTemplate null - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + return `(Time.at(${arg}))`; + } + # non bson-specific would go here, but there aren't any atm. + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + let set = new Set(Object.values(args)) + if (set.has(`require 'mongo'`)) return `require 'mongo'` + return [...set].sort().join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return `require 'mongo'` + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: &8ImportTemplate null + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return `require 'bson'` + } + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return `require 'bson'` + } + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return `require 'bson'` + } + 103ImportTemplate: !!js/function &103ImportTemplate > + () => { + return `require 'bson'` + } + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return `require 'bson'` + } + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return `require 'bson'` + } + 109ImportTemplate: &109ImportTemplate null + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return `require 'bson'` + } + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return `require 'bson'` + } + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/rust/templates.yaml b/packages/bson-transpilers/symbols/rust/templates.yaml index 8aaa18f0f2f..20face66663 100644 --- a/packages/bson-transpilers/symbols/rust/templates.yaml +++ b/packages/bson-transpilers/symbols/rust/templates.yaml @@ -18,843 +18,867 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const comment = `// Requires the MongoDB crate.\n// https://crates.io/crates/mongodb`; - - const options = spec.options; - const filter = spec.filter || 'None'; - const exportMode = spec.exportMode; - delete spec.options; - delete spec.filter; - delete spec.exportMode; + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const comment = `// Requires the MongoDB crate.\n// https://crates.io/crates/mongodb`; + + const options = spec.options; + const filter = spec.filter || 'None'; + const exportMode = spec.exportMode; + delete spec.options; + delete spec.filter; + delete spec.exportMode; - const connect = `let client = Client::with_uri_str("${options.uri}").await?;` - const coll = `client.database("${options.database}").collection::("${options.collection}")`; + const connect = `let client = Client::with_uri_str("${options.uri}").await?;` + const coll = `client.database("${options.database}").collection::("${options.collection}")`; - if ('aggregation' in spec) { - let agg = spec.aggregation; - if (agg.charAt(0) != '[') { - agg = `[${agg}]`; - } - return `${comment}\n\n${connect}\nlet result = ${coll}.aggregate(${agg}, None).await?;`; + if ('aggregation' in spec) { + let agg = spec.aggregation; + if (agg.charAt(0) != '[') { + agg = `[${agg}]`; } + return `${comment}\n\n${connect}\nlet result = ${coll}.aggregate(${agg}, None).await?;`; + } - let driverMethod; - let optionsName; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'delete_many'; - optionsName = 'DeleteOptions'; - break; - case 'Update Query': - driverMethod = 'update_many'; - optionsName = 'UpdateOptions'; + let driverMethod; + let optionsName; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'delete_many'; + optionsName = 'DeleteOptions'; + break; + case 'Update Query': + driverMethod = 'update_many'; + optionsName = 'UpdateOptions'; + break; + default: + driverMethod = 'find'; + optionsName = 'FindOptions'; + break; + } + + const findOpts = []; + for (const k in spec) { + let optName = k; + let optValue = spec[k]; + switch(k) { + case 'project': + optName = 'projection'; break; - default: - driverMethod = 'find'; - optionsName = 'FindOptions'; + case 'maxTimeMS': + optName = 'max_time'; + optValue = `std::time::Duration::from_millis(${optValue})`; break; } - - const findOpts = []; - for (const k in spec) { - let optName = k; - let optValue = spec[k]; - switch(k) { - case 'project': - optName = 'projection'; - break; - case 'maxTimeMS': - optName = 'max_time'; - optValue = `std::time::Duration::from_millis(${optValue})`; - break; - } - findOpts.push(` .${optName}(${optValue})`); - } - let optStr = ''; - if (findOpts.length > 0) { - optStr = `let options = mongodb::options::${optionsName}::builder()\n${findOpts.join('\n')}\n .build();\n`; - } - let optRef = optStr ? 'options' : 'None'; - const cmd = `let result = ${coll}.${driverMethod}(${filter}, ${optRef}).await?;`; - - return `${comment}\n\n${connect}\n${optStr}${cmd}`; + findOpts.push(` .${optName}(${optValue})`); } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; - } - else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; - } - return `${lhs} ${op} ${rhs}`; + let optStr = ''; + if (findOpts.length > 0) { + optStr = `let options = mongodb::options::${optionsName}::builder()\n${findOpts.join('\n')}\n .build();\n`; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let prefix = ''; - if (op.includes('!') || op.includes('not')) { - prefix = '!'; - } - return `${prefix}${rhs}.contains(&${lhs})` + let optRef = optStr ? 'options' : 'None'; + const cmd = `let result = ${coll}.${driverMethod}(${filter}, ${optRef}).await?;`; + + return `${comment}\n\n${connect}\n${optStr}${cmd}`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); + else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let prefix = ''; + if (op.includes('!') || op.includes('not')) { + prefix = '!'; } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; + return `${prefix}${rhs}.contains(&${lhs})` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: !!js/function &UnarySyntaxTemplate > + (op, val) => { + switch(op) { + case '+': + return val; + case '~': + return `!${val}`; + default: + return `${op}${val}`; } - UnarySyntaxTemplate: &UnarySyntaxTemplate !!js/function > - (op, val) => { + return `${op}${val}`; + } + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; + } + const rhs = arr[i + 1]; switch(op) { - case '+': - return val; - case '~': - return `!${val}`; + case '//': + return `${s} / ${rhs}` + case '**': + return `${s}.pow(${rhs})` default: - return `${op}${val}`; - } - return `${op}${val}`; - } - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `${s} / ${rhs}` - case '**': - return `${s}.pow(${rhs})` - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + return `${s} ${op} ${rhs}`; + } + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + // Double-quote stringify + let newPat = pattern; + if ( + (pattern.charAt(0) === '\'' && pattern.charAt(pattern.length - 1) === '\'') || + (pattern.charAt(0) === '"' && pattern.charAt(pattern.length - 1) === '"')) { + newPat = pattern.substr(1, pattern.length - 2); + } + return `Regex { pattern: "${newPat.replace(/\\([\s\S])|(")/g, '\\$1$2')}".to_string(), options: "${flags}".to_string() }`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null + HexTypeTemplate: !!js/function &HexTypeTemplate > + (literal, type) => { + if (literal.charAt(1) === 'X') { + return literal.charAt(0) + 'x' + literal.substring(2); + } + return literal; + } + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal, type) => { + switch(literal.charAt(1)) { + case 'o': + return literal; + case 'O': + case '0': + return literal.charAt(0) + 'o' + literal.substring(2); + default: + return literal.charAt(0) + 'o' + literal.substring(1); } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - // Double-quote stringify - let newPat = pattern; + } + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + if (literal === '') { + return '[]' + } + return `[${literal}]`; + } + ArrayTypeArgsTemplate: !!js/function &ArrayTypeArgsTemplate > + (element, depth, isLast) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = isLast ? '\n' + ' '.repeat(depth - 1) : ','; + return `${indent}${element}${closingIndent}`; + } + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => 'Bson::Null' + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => 'Bson::Undefined' + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => `doc! {${literal}}` + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return ''; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + const doubleStringify = (str) => { + let newStr = str; if ( - (pattern.charAt(0) === '\'' && pattern.charAt(pattern.length - 1) === '\'') || - (pattern.charAt(0) === '"' && pattern.charAt(pattern.length - 1) === '"')) { - newPat = pattern.substr(1, pattern.length - 2); - } - return `Regex { pattern: "${newPat.replace(/\\([\s\S])|(")/g, '\\$1$2')}".to_string(), options: "${flags}".to_string() }`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null - HexTypeTemplate: &HexTypeTemplate !!js/function > - (literal, type) => { - if (literal.charAt(1) === 'X') { - return literal.charAt(0) + 'x' + literal.substring(2); - } - return literal; - } - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal, type) => { - switch(literal.charAt(1)) { - case 'o': - return literal; - case 'O': - case '0': - return literal.charAt(0) + 'o' + literal.substring(2); - default: - return literal.charAt(0) + 'o' + literal.substring(1); + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - if (literal === '') { - return '[]' - } - return `[${literal}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate !!js/function > - (element, depth, isLast) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = isLast ? '\n' + ' '.repeat(depth - 1) : ','; - return `${indent}${element}${closingIndent}`; - } - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => 'Bson::Null' - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => 'Bson::Undefined' - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => `doc! {${literal}}` - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return ''; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - const pairs = args.map((pair) => { - return `${indent}${doubleStringify(pair[0])}: ${pair[1]}`; - }).join(','); + const pairs = args.map((pair) => { + return `${indent}${doubleStringify(pair[0])}: ${pair[1]}`; + }).join(','); - return `${pairs}${closingIndent}`; + return `${pairs}${closingIndent}`; - } + } - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > - () => '' - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - // Double quote stringify - let newStr = code === undefined ? '' : code; - const str = newStr; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}".to_string()`; - if (scope === undefined) { - return `Bson::JavaScriptCode(${code})`; - } else { - return `JavaScriptCodeWithScope { code: ${code}, scope: ${scope} }`; - } + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: !!js/function &CodeSymbolTemplate > + () => '' + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + // Double quote stringify + let newStr = code === undefined ? '' : code; + const str = newStr; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => 'ObjectId' - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, arg) => { - if (arg === undefined || arg === '') { - return '::new()'; - } - // Double quote stringify - let newArg = arg; - if ( - (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') || - (arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"')) { - newArg = arg.substr(1, arg.length - 2); - } - newArg = `"${newArg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return `::parse_str(${newArg})?`; - } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => 'BinarySubtype::Generic' - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => 'BinarySubtype::Function' - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => 'BinarySubtype::BinaryOld' - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => 'BinarySubtype::UuidOld' - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => 'BinarySubtype::Uuid' - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => 'BinarySubtype::Md5' - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - (arg) => `BinarySubtype::UserDefined(${arg})` - DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => '' - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_decimal' || type === '_double') { - return arg; - } - if (type === '_integer' || type === '_long') { - return `${arg}.0`; - } - if (type === '_string') { - return `${arg}.parse::()?`; - } - return `f32::try_from(${arg})?`; - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => '' - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { - return arg; - } - if (type === '_string') { - return `${arg}.parse::()?`; - } - return `i32::try_from(${arg})?`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => '' - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { - return `${arg}i64`; - } - if (type === '_string') { - return `${arg}.parse::()?`; - } - return `i64::try_from(${arg})?`; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => 'Regex' - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => 'Bson::Symbol' - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (_, arg) => `(${arg})` - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => 'Regex' - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (_, pattern, flags) => { - if (flags === null || flags === undefined) { - flags = ''; - } - if ( - (flags.charAt(0) === '\'' && flags.charAt(flags.length - 1) === '\'') || - (flags.charAt(0) === '"' && flags.charAt(flags.length - 1) === '"')) { - flags = flags.substr(1, flags.length - 2); - } - // Double-quote stringify - let newPat = pattern; - if ( - (pattern.charAt(0) === '\'' && pattern.charAt(pattern.length - 1) === '\'') || - (pattern.charAt(0) === '"' && pattern.charAt(pattern.length - 1) === '"')) { - newPat = pattern.substr(1, pattern.length - 2); - } - return ` { pattern: "${newPat.replace(/\\([\s\S])|(")/g, '\\$1$2')}", flags: "${flags}" }`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => 'Bson::MinKey' - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => '' - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => 'Bson::MaxKey' - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => '' - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => 'Timestamp' - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, low, high) => { - if (low === undefined) { - low = 0; - high = 0; - } - return ` { time: ${low}, increment: ${high} }` - } - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => '' - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; + code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}".to_string()`; + if (scope === undefined) { + return `Bson::JavaScriptCode(${code})`; + } else { + return `JavaScriptCodeWithScope { code: ${code}, scope: ${scope} }`; + } + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => 'ObjectId' + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, arg) => { + if (arg === undefined || arg === '') { + return '::new()'; + } + // Double quote stringify + let newArg = arg; + if ( + (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') || + (arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"')) { + newArg = arg.substr(1, arg.length - 2); + } + newArg = `"${newArg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + return `::parse_str(${newArg})?`; + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => 'BinarySubtype::Generic' + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => 'BinarySubtype::Function' + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => 'BinarySubtype::BinaryOld' + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => 'BinarySubtype::UuidOld' + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => 'BinarySubtype::Uuid' + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => 'BinarySubtype::Md5' + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + (arg) => `BinarySubtype::UserDefined(${arg})` + DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => '' + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_decimal' || type === '_double') { + return arg; + } + if (type === '_integer' || type === '_long') { + return `${arg}.0`; + } + if (type === '_string') { + return `${arg}.parse::()?`; + } + return `f32::try_from(${arg})?`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => '' + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { + return arg; + } + if (type === '_string') { + return `${arg}.parse::()?`; + } + return `i32::try_from(${arg})?`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => '' + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { + return `${arg}i64`; + } + if (type === '_string') { + return `${arg}.parse::()?`; + } + return `i64::try_from(${arg})?`; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => 'Regex' + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => 'Bson::Symbol' + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (_, arg) => `(${arg})` + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => 'Regex' + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (_, pattern, flags) => { + if (flags === null || flags === undefined) { + flags = ''; + } + if ( + (flags.charAt(0) === '\'' && flags.charAt(flags.length - 1) === '\'') || + (flags.charAt(0) === '"' && flags.charAt(flags.length - 1) === '"')) { + flags = flags.substr(1, flags.length - 2); + } + // Double-quote stringify + let newPat = pattern; + if ( + (pattern.charAt(0) === '\'' && pattern.charAt(pattern.length - 1) === '\'') || + (pattern.charAt(0) === '"' && pattern.charAt(pattern.length - 1) === '"')) { + newPat = pattern.substr(1, pattern.length - 2); + } + return ` { pattern: "${newPat.replace(/\\([\s\S])|(")/g, '\\$1$2')}", flags: "${flags}" }`; + } + Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args + Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => 'Bson::MinKey' + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => '' + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => 'Bson::MaxKey' + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => '' + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => 'Timestamp' + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, low, high) => { + if (low === undefined) { + low = 0; + high = 0; + } + return ` { time: ${low}, increment: ${high} }` + } + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => '' + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; - switch(type) { - case '_string': - if (arg.indexOf('.') !== -1) { - return `${arg}.parse::()?`; - } - return `${arg}.parse::()?`; - case '_integer': - case '_long': - case '_decimal': - return `${arg}`; - default: - return `f32::try_from(${arg})?`; - } + switch(type) { + case '_string': + if (arg.indexOf('.') !== -1) { + return `${arg}.parse::()?`; + } + return `${arg}.parse::()?`; + case '_integer': + case '_long': + case '_decimal': + return `${arg}`; + default: + return `f32::try_from(${arg})?`; } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => 'DateTime' - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - let toStr = isString ? '.to_rfc3339_string()' : ''; - if (date === null) { - return `${lhs}::now()${toStr}`; - } - return `${lhs}::parse_rfc3339_str("${date.toISOString()}")?${toStr}`; + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => 'DateTime' + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + let toStr = isString ? '.to_rfc3339_string()' : ''; + if (date === null) { + return `${lhs}::now()${toStr}`; } + return `${lhs}::parse_rfc3339_str("${date.toISOString()}")?${toStr}`; + } - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate null - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => `${lhs}.scope` - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => `${lhs}.to_hex()` - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => '' - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => `${lhs} == ` - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (_, arg) => arg - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => `${lhs}.timestamp()` - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => '' - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate null - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - (arg) => `${arg}.bytes` - BinaryValueArgsTemplate: &BinaryValueArgsTemplate !!js/function > - () => '' - BinaryLengthTemplate: &BinaryLengthTemplate !!js/function > - (arg) => `${arg}.bytes.len()` - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate !!js/function > - () => '' - BinaryToStringTemplate: &BinaryToStringTemplate !!js/function > - (arg) => `format!("{}", ${arg})` - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate !!js/function > - () => '' - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (arg) => `${arg}.subtype` - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => '' - DBRefGetDBTemplate: &DBRefGetDBTemplate null - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null - DBRefGetIdTemplate: &DBRefGetIdTemplate null - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null - DBRefToStringTemplate: &DBRefToStringTemplate null - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate null - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => `${lhs} == ` - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - LongToStringTemplate: &LongToStringTemplate !!js/function > - (arg) => arg - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate !!js/function > - (arg) => `${arg} as i32` - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => '' - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (arg) => `${arg} as f64` - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => '' - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => `${lhs} + ` - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (_, rhs) => rhs - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (lhs) => `${lhs} - ` - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (_, rhs) => rhs - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (lhs) => `${lhs} * ` - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (_, rhs) => rhs - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => `${lhs} / ` - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (_, rhs) => rhs - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => `${lhs} % ` - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (_, rhs) => rhs - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => `${lhs} & ` - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (_, rhs) => rhs - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => `${lhs} | ` - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (_, rhs) => rhs - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => `${lhs} ^ ` - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (_, rhs) => rhs - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => `${lhs} << ` - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (_, rhs) => rhs - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => `${lhs} >> ` - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (_, rhs) => rhs - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => `${lhs} - ` - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (_, rhs) => rhs - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (arg) => `${arg} % 2 == 1` - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => '' - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (arg) => `${arg} == 0` - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => '' - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (arg) => `${arg} < 0` - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => '' - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => '-' - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (arg) => arg - LongNotTemplate: &LongNotTemplate !!js/function > - () => '~' - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (arg) => arg - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => `${lhs} != ` - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => `${lhs} > ` - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (_, rhs) => rhs - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} >= ` - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => `${lhs} < ` - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (_, rhs) => rhs - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} <= ` - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (arg) => `${arg} as f32` - LongTopTemplate: &LongTopTemplate !!js/function > - (arg) => `${arg} >> 32` - LongBottomTemplate: &LongBottomTemplate !!js/function > - (arg) => `${arg} & 0x0000ffff` - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (arg) => `${arg}.to_string()` - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate !!js/function > - () => '' - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => `${lhs} == ` - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (arg) => `${arg}.time` - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => '' - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (arg) => `${arg}.increment` - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => '' - TimestampTTemplate: &TimestampTTemplate !!js/function > - (arg) => `${arg}.time` - TimestampITemplate: &TimestampITemplate !!js/function > - (arg) => `${arg}.increment` - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (arg) => `DateTime::from_millis(${arg}.time)` - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => '' - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (arg) => `${arg}.cmp` - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (_, rhs) => `(${rhs})` - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => `${lhs} != ` - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => `${lhs} > ` - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} >= ` - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => `${lhs} < ` - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} <= ` - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (arg) => `${arg}.as_symbol().unwrap()` - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => '' - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (arg) => `format!("{:?}", ${arg})` - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => '' - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (arg) => `${arg}.as_symbol().unwrap()` - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - () => '' - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # non bson-specific - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => 'DateTime::now()' - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - () => '' + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: &CodeCodeTemplate null + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => `${lhs}.scope` + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => `${lhs}.to_hex()` + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => '' + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => `${lhs} == ` + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (_, arg) => arg + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => `${lhs}.timestamp()` + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => '' + ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate null + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + (arg) => `${arg}.bytes` + BinaryValueArgsTemplate: !!js/function &BinaryValueArgsTemplate > + () => '' + BinaryLengthTemplate: !!js/function &BinaryLengthTemplate > + (arg) => `${arg}.bytes.len()` + BinaryLengthArgsTemplate: !!js/function &BinaryLengthArgsTemplate > + () => '' + BinaryToStringTemplate: !!js/function &BinaryToStringTemplate > + (arg) => `format!("{}", ${arg})` + BinaryToStringArgsTemplate: !!js/function &BinaryToStringArgsTemplate > + () => '' + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (arg) => `${arg}.subtype` + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => '' + DBRefGetDBTemplate: &DBRefGetDBTemplate null + DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null + DBRefGetIdTemplate: &DBRefGetIdTemplate null + DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null + DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null + DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null + DBRefToStringTemplate: &DBRefToStringTemplate null + DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: &Int32ToStringTemplate null + Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => `${lhs} == ` + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (_, rhs) => rhs + LongToStringTemplate: !!js/function &LongToStringTemplate > + (arg) => arg + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: !!js/function &LongToIntTemplate > + (arg) => `${arg} as i32` + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => '' + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (arg) => `${arg} as f64` + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => '' + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => `${lhs} + ` + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (_, rhs) => rhs + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (lhs) => `${lhs} - ` + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (_, rhs) => rhs + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (lhs) => `${lhs} * ` + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (_, rhs) => rhs + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => `${lhs} / ` + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (_, rhs) => rhs + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => `${lhs} % ` + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (_, rhs) => rhs + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => `${lhs} & ` + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (_, rhs) => rhs + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => `${lhs} | ` + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (_, rhs) => rhs + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => `${lhs} ^ ` + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (_, rhs) => rhs + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => `${lhs} << ` + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (_, rhs) => rhs + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => `${lhs} >> ` + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (_, rhs) => rhs + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => `${lhs} - ` + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (_, rhs) => rhs + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (arg) => `${arg} % 2 == 1` + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => '' + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (arg) => `${arg} == 0` + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => '' + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (arg) => `${arg} < 0` + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => '' + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => '-' + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (arg) => arg + LongNotTemplate: !!js/function &LongNotTemplate > + () => '~' + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (arg) => arg + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => `${lhs} != ` + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (_, rhs) => rhs + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => `${lhs} > ` + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (_, rhs) => rhs + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => `${lhs} >= ` + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (_, rhs) => rhs + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => `${lhs} < ` + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (_, rhs) => rhs + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => `${lhs} <= ` + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (_, rhs) => rhs + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (arg) => `${arg} as f32` + LongTopTemplate: !!js/function &LongTopTemplate > + (arg) => `${arg} >> 32` + LongBottomTemplate: !!js/function &LongBottomTemplate > + (arg) => `${arg} & 0x0000ffff` + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (arg) => `${arg}.to_string()` + TimestampToStringArgsTemplate: !!js/function &TimestampToStringArgsTemplate > + () => '' + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => `${lhs} == ` + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (_, rhs) => rhs + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (arg) => `${arg}.time` + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => '' + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (arg) => `${arg}.increment` + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => '' + TimestampTTemplate: !!js/function &TimestampTTemplate > + (arg) => `${arg}.time` + TimestampITemplate: !!js/function &TimestampITemplate > + (arg) => `${arg}.increment` + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (arg) => `DateTime::from_millis(${arg}.time)` + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => '' + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (arg) => `${arg}.cmp` + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (_, rhs) => `(${rhs})` + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => `${lhs} != ` + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (_, rhs) => rhs + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => `${lhs} > ` + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (_, rhs) => rhs + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => `${lhs} >= ` + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (_, rhs) => rhs + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => `${lhs} < ` + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (_, rhs) => rhs + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => `${lhs} <= ` + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (_, rhs) => rhs + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (arg) => `${arg}.as_symbol().unwrap()` + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => '' + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (arg) => `format!("{:?}", ${arg})` + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => '' + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (arg) => `${arg}.as_symbol().unwrap()` + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + () => '' + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # non bson-specific + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => 'DateTime::now()' + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + () => '' - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => 'i64::MAX' - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate !!js/function > - () => '' - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => 'i64::MIN' - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate !!js/function > - () => '' - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => '0i64' - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate !!js/function > - () => '' - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => '1i64' - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate !!js/function > - () => '' - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => '-1i64' - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate !!js/function > - () => '' - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > - () => '' - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate !!js/function > - (_, arg) => `${arg}i64` - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => '' - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (_, arg) => `${arg}i64` - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => '' - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate !!js/function > - (_, arg) => `${arg} as i64` - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => '' - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (_, arg, radix) => { - if (radix) { - return `i64::from_str_radix(${arg}, ${radix})?`; - } - return `${arg}.parse::()?`; + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => 'i64::MAX' + LongSymbolMaxArgsTemplate: !!js/function &LongSymbolMaxArgsTemplate > + () => '' + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => 'i64::MIN' + LongSymbolMinArgsTemplate: !!js/function &LongSymbolMinArgsTemplate > + () => '' + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => '0i64' + LongSymbolZeroArgsTemplate: !!js/function &LongSymbolZeroArgsTemplate > + () => '' + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => '1i64' + LongSymbolOneArgsTemplate: !!js/function &LongSymbolOneArgsTemplate > + () => '' + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => '-1i64' + LongSymbolNegOneArgsTemplate: !!js/function &LongSymbolNegOneArgsTemplate > + () => '' + LongSymbolFromBitsTemplate: !!js/function &LongSymbolFromBitsTemplate > + () => '' + LongSymbolFromBitsArgsTemplate: + !!js/function &LongSymbolFromBitsArgsTemplate > + (_, arg) => `${arg}i64` + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => '' + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (_, arg) => `${arg}i64` + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => '' + LongSymbolFromNumberArgsTemplate: + !!js/function &LongSymbolFromNumberArgsTemplate > + (_, arg) => `${arg} as i64` + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => '' + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (_, arg, radix) => { + if (radix) { + return `i64::from_str_radix(${arg}, ${radix})?`; } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - (lhs) => lhs - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { - // Double quote stringify - let newArg = arg; - if ( - (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') || - (arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"')) { - newArg = arg.substr(1, arg.length - 2); - } - newArg = `"${newArg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return `::parse_str(${newArg})?`; + return `${arg}.parse::()?`; + } + Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + (lhs) => lhs + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + // Double quote stringify + let newArg = arg; + if ( + (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') || + (arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"')) { + newArg = arg.substr(1, arg.length - 2); } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate null - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null - # non bson-specific would go here, but there aren't any atm. + newArg = `"${newArg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + return `::parse_str(${newArg})?`; + } + ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate null + ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null + # non bson-specific would go here, but there aren't any atm. - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - let merged = new Set(Object.values(args)); - return [...merged].sort().join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => 'use mongodb::Client;' - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - () => 'use mongodb::bson::Regex;' - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate !!js/function > - () => 'use mongodb::bson::doc;' - # Null - 11ImportTemplate: &11ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - # Undefined - 12ImportTemplate: &12ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - # Code - 100ImportTemplate: &100ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - 101ImportTemplate: &101ImportTemplate !!js/function > - () => 'use mongodb::bson::oid::ObjectId;' - 102ImportTemplate: &102ImportTemplate !!js/function > - () => 'use mongodb::bson::Binary;' - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - # MinKey - 107ImportTemplate: &107ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - # MaxKey - 108ImportTemplate: &108ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - 109ImportTemplate: &109ImportTemplate !!js/function > - () => 'use mongodb::bson::Regex;' - 110ImportTemplate: &110ImportTemplate !!js/function > - () => 'use mongodb::bson::Timestamp;' - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate null - 113ImportTemplate: &113ImportTemplate !!js/function > - () => 'use mongodb::bson::JavaScriptCodeWithScope;' - 114ImportTemplate: &114ImportTemplate !!js/function > - () => 'use mongodb::bson::spec::BinarySubtype;' - 200ImportTemplate: &200ImportTemplate !!js/function > - () => 'use mongodb::bson::DateTime;' - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + let merged = new Set(Object.values(args)); + return [...merged].sort().join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => 'use mongodb::Client;' + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + () => 'use mongodb::bson::Regex;' + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: !!js/function &10ImportTemplate > + () => 'use mongodb::bson::doc;' + # Null + 11ImportTemplate: !!js/function &11ImportTemplate > + () => 'use mongodb::bson::Bson;' + # Undefined + 12ImportTemplate: !!js/function &12ImportTemplate > + () => 'use mongodb::bson::Bson;' + # Code + 100ImportTemplate: !!js/function &100ImportTemplate > + () => 'use mongodb::bson::Bson;' + 101ImportTemplate: !!js/function &101ImportTemplate > + () => 'use mongodb::bson::oid::ObjectId;' + 102ImportTemplate: !!js/function &102ImportTemplate > + () => 'use mongodb::bson::Binary;' + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + # MinKey + 107ImportTemplate: !!js/function &107ImportTemplate > + () => 'use mongodb::bson::Bson;' + # MaxKey + 108ImportTemplate: !!js/function &108ImportTemplate > + () => 'use mongodb::bson::Bson;' + 109ImportTemplate: !!js/function &109ImportTemplate > + () => 'use mongodb::bson::Regex;' + 110ImportTemplate: !!js/function &110ImportTemplate > + () => 'use mongodb::bson::Timestamp;' + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: &112ImportTemplate null + 113ImportTemplate: !!js/function &113ImportTemplate > + () => 'use mongodb::bson::JavaScriptCodeWithScope;' + 114ImportTemplate: !!js/function &114ImportTemplate > + () => 'use mongodb::bson::spec::BinarySubtype;' + 200ImportTemplate: !!js/function &200ImportTemplate > + () => 'use mongodb::bson::DateTime;' + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/sample_template.yaml b/packages/bson-transpilers/symbols/sample_template.yaml index e5cfa1ca2ce..45d3d0d3eea 100644 --- a/packages/bson-transpilers/symbols/sample_template.yaml +++ b/packages/bson-transpilers/symbols/sample_template.yaml @@ -18,358 +18,358 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: 'y' - g: 'g' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: 'y' + g: 'g' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate null - EqualitySyntaxTemplate: &EqualitySyntaxTemplate null # Args: lhs, operation, rhs - InSyntaxTemplate: &InSyntaxTemplate null # Args: lhs, operation, rhs - AndSyntaxTemplate: &AndSyntaxTemplate null # Args: items to compare as an array - OrSyntaxTemplate: &OrSyntaxTemplate null # Args: items to compare as an array - NotSyntaxTemplate: &NotSyntaxTemplate null # Args: item to negate - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate null - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + DriverTemplate: &DriverTemplate null + EqualitySyntaxTemplate: &EqualitySyntaxTemplate null # Args: lhs, operation, rhs + InSyntaxTemplate: &InSyntaxTemplate null # Args: lhs, operation, rhs + AndSyntaxTemplate: &AndSyntaxTemplate null # Args: items to compare as an array + OrSyntaxTemplate: &OrSyntaxTemplate null # Args: items to compare as an array + NotSyntaxTemplate: &NotSyntaxTemplate null # Args: item to negate + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: &BinarySyntaxTemplate null + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate null # Args: literal (can be w/w/out quotes and unescaped interior quotes.) - RegexTypeTemplate: &RegexTypeTemplate null # Args: pattern, flag - BoolTypeTemplate: &BoolTypeTemplate null # Args: literal - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType - HexTypeTemplate: &HexTypeTemplate null # args: literal, argType - OctalTypeTemplate: &OctalTypeTemplate null # args: literal, argType - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate null # Args: the interior of the array (i.e. '1, 2'), nestedness# - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) - NullTypeTemplate: &NullTypeTemplate null # No args - UndefinedTypeTemplate: &UndefinedTypeTemplate null # No args: - ObjectTypeTemplate: &ObjectTypeTemplate null # Args: literal (for empty array, is empty string. Otherwise all set) - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate null # Args: single object element [2] (i.e. array with [key, value]), nestedness# + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: &StringTypeTemplate null # Args: literal (can be w/w/out quotes and unescaped interior quotes.) + RegexTypeTemplate: &RegexTypeTemplate null # Args: pattern, flag + BoolTypeTemplate: &BoolTypeTemplate null # Args: literal + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType + HexTypeTemplate: &HexTypeTemplate null # args: literal, argType + OctalTypeTemplate: &OctalTypeTemplate null # args: literal, argType + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: &ArrayTypeTemplate null # Args: the interior of the array (i.e. '1, 2'), nestedness# + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) + NullTypeTemplate: &NullTypeTemplate null # No args + UndefinedTypeTemplate: &UndefinedTypeTemplate null # No args: + ObjectTypeTemplate: &ObjectTypeTemplate null # Args: literal (for empty array, is empty string. Otherwise all set) + ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate null # Args: single object element [2] (i.e. array with [key, value]), nestedness# - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate null # No args - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate null # Args: code, scope - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null # No args - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate null # Args: lhs, string (can be empty or null for no arg) - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db - DoubleSymbolTemplate: &DoubleSymbolTemplate null # No args - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null # Args: lhs, arg, argType (i.e. '_string', '_double') - Int32SymbolTemplate: &Int32SymbolTemplate null # No args - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate null # Args: lhs, arg, argType - LongSymbolTemplate: &LongSymbolTemplate null # No args - LongSymbolArgsTemplate: &LongSymbolArgsTemplate null # Args: lhs, arg, argType - RegExpSymbolTemplate: &RegExpSymbolTemplate null # No args - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate null # No args - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null # Args: lhs, arg - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate null # No args - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg - MinKeySymbolTemplate: &MinKeySymbolTemplate null # No args - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null # No args - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null # No args - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null # No args - TimestampSymbolTemplate: &TimestampSymbolTemplate null # No args - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate null # Args: lhs, low, high - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate null # No args - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate null # Args: lhs, arg, argType - DateSymbolTemplate: &DateSymbolTemplate null # No args - DateSymbolArgsTemplate: &DateSymbolArgsTemplate null # Args: lhs, date (Date object), isString? (if the result needs to be a date string instead of a date instance) + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: &CodeSymbolTemplate null # No args + CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate null # Args: code, scope + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null # No args + ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate null # Args: lhs, string (can be empty or null for no arg) + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db + DoubleSymbolTemplate: &DoubleSymbolTemplate null # No args + DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null # Args: lhs, arg, argType (i.e. '_string', '_double') + Int32SymbolTemplate: &Int32SymbolTemplate null # No args + Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate null # Args: lhs, arg, argType + LongSymbolTemplate: &LongSymbolTemplate null # No args + LongSymbolArgsTemplate: &LongSymbolArgsTemplate null # Args: lhs, arg, argType + RegExpSymbolTemplate: &RegExpSymbolTemplate null # No args + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: &SymbolSymbolTemplate null # No args + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null # Args: lhs, arg + BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate null # No args + BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args + Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg + MinKeySymbolTemplate: &MinKeySymbolTemplate null # No args + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null # No args + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null # No args + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null # No args + TimestampSymbolTemplate: &TimestampSymbolTemplate null # No args + TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate null # Args: lhs, low, high + # non bson-specific + NumberSymbolTemplate: &NumberSymbolTemplate null # No args + NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate null # Args: lhs, arg, argType + DateSymbolTemplate: &DateSymbolTemplate null # No args + DateSymbolArgsTemplate: &DateSymbolArgsTemplate null # Args: lhs, date (Date object), isString? (if the result needs to be a date string instead of a date instance) - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate null - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate null - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate null - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate null - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate null - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate null - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate null - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate null - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate null - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null - DBRefGetIdTemplate: &DBRefGetIdTemplate null - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null - DBRefToStringTemplate: &DBRefToStringTemplate null - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate null - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null - LongEqualsTemplate: &LongEqualsTemplate null - LongEqualsArgsTemplate: &LongEqualsArgsTemplate null - LongToStringTemplate: &LongToStringTemplate null - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate null - LongToIntArgsTemplate: &LongToIntArgsTemplate null - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate null - LongToNumberArgsTemplate: &LongToNumberArgsTemplate null - LongAddTemplate: &LongAddTemplate null - LongAddArgsTemplate: &LongAddArgsTemplate null - LongSubtractTemplate: &LongSubtractTemplate null - LongSubtractArgsTemplate: &LongSubtractArgsTemplate null - LongMultiplyTemplate: &LongMultiplyTemplate null - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null - LongDivTemplate: &LongDivTemplate null - LongDivArgsTemplate: &LongDivArgsTemplate null - LongModuloTemplate: &LongModuloTemplate null - LongModuloArgsTemplate: &LongModuloArgsTemplate null - LongAndTemplate: &LongAndTemplate null - LongAndArgsTemplate: &LongAndArgsTemplate null - LongOrTemplate: &LongOrTemplate null - LongOrArgsTemplate: &LongOrArgsTemplate null - LongXorTemplate: &LongXorTemplate null - LongXorArgsTemplate: &LongXorArgsTemplate null - LongShiftLeftTemplate: &LongShiftLeftTemplate null - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null - LongShiftRightTemplate: &LongShiftRightTemplate null - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null - LongCompareTemplate: &LongCompareTemplate null - LongCompareArgsTemplate: &LongCompareArgsTemplate null - LongIsOddTemplate: &LongIsOddTemplate null - LongIsOddArgsTemplate: &LongIsOddArgsTemplate null - LongIsZeroTemplate: &LongIsZeroTemplate null - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null - LongIsNegativeTemplate: &LongIsNegativeTemplate null - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null - LongNegateTemplate: &LongNegateTemplate null - LongNegateArgsTemplate: &LongNegateArgsTemplate null - LongNotTemplate: &LongNotTemplate null - LongNotArgsTemplate: &LongNotArgsTemplate null - LongNotEqualsTemplate: &LongNotEqualsTemplate null - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null - LongGreaterThanTemplate: &LongGreaterThanTemplate null - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null - LongLessThanTemplate: &LongLessThanTemplate null - LongLessThanArgsTemplate: &LongLessThanArgsTemplate null - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null - LongFloatApproxTemplate: &LongFloatApproxTemplate null - LongTopTemplate: &LongTopTemplate null - LongBottomTemplate: &LongBottomTemplate null - TimestampToStringTemplate: &TimestampToStringTemplate null - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate null - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate null - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate null - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null - TimestampTTemplate: &TimestampTTemplate null - TimestampITemplate: &TimestampITemplate null - TimestampAsDateTemplate: &TimestampAsDateTemplate null - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null - TimestampCompareTemplate: &TimestampCompareTemplate null - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null - TimestampLessThanTemplate: &TimestampLessThanTemplate null - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null - SymbolValueOfTemplate: &SymbolValueOfTemplate null - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null - SymbolInspectTemplate: &SymbolInspectTemplate null - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null - SymbolToStringTemplate: &SymbolToStringTemplate null - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # non bson-specific - DateSymbolNowTemplate: &DateSymbolNowTemplate null - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: &CodeCodeTemplate null + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: &CodeScopeTemplate null + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: &ObjectIdToStringTemplate null + ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate null + ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null + ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null + ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate null + ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate null + ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate null + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: &BinarySubtypeTemplate null + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: &DBRefGetDBTemplate null + DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null + DBRefGetIdTemplate: &DBRefGetIdTemplate null + DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null + DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null + DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null + DBRefToStringTemplate: &DBRefToStringTemplate null + DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: &Int32ToStringTemplate null + Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null + LongEqualsTemplate: &LongEqualsTemplate null + LongEqualsArgsTemplate: &LongEqualsArgsTemplate null + LongToStringTemplate: &LongToStringTemplate null + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: &LongToIntTemplate null + LongToIntArgsTemplate: &LongToIntArgsTemplate null + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: &LongToNumberTemplate null + LongToNumberArgsTemplate: &LongToNumberArgsTemplate null + LongAddTemplate: &LongAddTemplate null + LongAddArgsTemplate: &LongAddArgsTemplate null + LongSubtractTemplate: &LongSubtractTemplate null + LongSubtractArgsTemplate: &LongSubtractArgsTemplate null + LongMultiplyTemplate: &LongMultiplyTemplate null + LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null + LongDivTemplate: &LongDivTemplate null + LongDivArgsTemplate: &LongDivArgsTemplate null + LongModuloTemplate: &LongModuloTemplate null + LongModuloArgsTemplate: &LongModuloArgsTemplate null + LongAndTemplate: &LongAndTemplate null + LongAndArgsTemplate: &LongAndArgsTemplate null + LongOrTemplate: &LongOrTemplate null + LongOrArgsTemplate: &LongOrArgsTemplate null + LongXorTemplate: &LongXorTemplate null + LongXorArgsTemplate: &LongXorArgsTemplate null + LongShiftLeftTemplate: &LongShiftLeftTemplate null + LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null + LongShiftRightTemplate: &LongShiftRightTemplate null + LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null + LongCompareTemplate: &LongCompareTemplate null + LongCompareArgsTemplate: &LongCompareArgsTemplate null + LongIsOddTemplate: &LongIsOddTemplate null + LongIsOddArgsTemplate: &LongIsOddArgsTemplate null + LongIsZeroTemplate: &LongIsZeroTemplate null + LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null + LongIsNegativeTemplate: &LongIsNegativeTemplate null + LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null + LongNegateTemplate: &LongNegateTemplate null + LongNegateArgsTemplate: &LongNegateArgsTemplate null + LongNotTemplate: &LongNotTemplate null + LongNotArgsTemplate: &LongNotArgsTemplate null + LongNotEqualsTemplate: &LongNotEqualsTemplate null + LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null + LongGreaterThanTemplate: &LongGreaterThanTemplate null + LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null + LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null + LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null + LongLessThanTemplate: &LongLessThanTemplate null + LongLessThanArgsTemplate: &LongLessThanArgsTemplate null + LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null + LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null + LongFloatApproxTemplate: &LongFloatApproxTemplate null + LongTopTemplate: &LongTopTemplate null + LongBottomTemplate: &LongBottomTemplate null + TimestampToStringTemplate: &TimestampToStringTemplate null + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: &TimestampEqualsTemplate null + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate null + TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null + TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate null + TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null + TimestampTTemplate: &TimestampTTemplate null + TimestampITemplate: &TimestampITemplate null + TimestampAsDateTemplate: &TimestampAsDateTemplate null + TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null + TimestampCompareTemplate: &TimestampCompareTemplate null + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null + TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null + TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null + TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null + TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null + TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null + TimestampLessThanTemplate: &TimestampLessThanTemplate null + TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null + TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null + TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null + SymbolValueOfTemplate: &SymbolValueOfTemplate null + SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null + SymbolInspectTemplate: &SymbolInspectTemplate null + SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null + SymbolToStringTemplate: &SymbolToStringTemplate null + SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # non bson-specific + DateSymbolNowTemplate: &DateSymbolNowTemplate null + DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate null - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate null - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate null - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate null - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate null - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null - # non bson-specific would go here, but there aren't any atm. + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: &LongSymbolMaxTemplate null + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: &LongSymbolMinTemplate null + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: &LongSymbolZeroTemplate null + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: &LongSymbolOneTemplate null + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null + LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null + Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null + ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null + ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate null + ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null + # non bson-specific would go here, but there aren't any atm. - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate null - DriverImportTemplate: &DriverImportTemplate null - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate null - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate null - 101ImportTemplate: &101ImportTemplate null - 102ImportTemplate: &102ImportTemplate null - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate null - 108ImportTemplate: &108ImportTemplate null - 109ImportTemplate: &109ImportTemplate null - 110ImportTemplate: &110ImportTemplate null - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate null - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: &ImportTemplate null + DriverImportTemplate: &DriverImportTemplate null + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: &8ImportTemplate null + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: &100ImportTemplate null + 101ImportTemplate: &101ImportTemplate null + 102ImportTemplate: &102ImportTemplate null + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: &107ImportTemplate null + 108ImportTemplate: &108ImportTemplate null + 109ImportTemplate: &109ImportTemplate null + 110ImportTemplate: &110ImportTemplate null + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: &112ImportTemplate null + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/test/casting.test.js b/packages/bson-transpilers/test/casting.test.js index 95bdecd6d30..1dbc97e401c 100644 --- a/packages/bson-transpilers/test/casting.test.js +++ b/packages/bson-transpilers/test/casting.test.js @@ -10,13 +10,13 @@ const yaml = require('js-yaml'); const modes = process.env.MODE ? process.env.MODE.split(',') : []; -const JavascriptANTLRVisitor = require('../lib/antlr/ECMAScriptVisitor').ECMAScriptVisitor; +const JavascriptANTLRVisitor = + require('../lib/antlr/ECMAScriptVisitor').ECMAScriptVisitor; const getCodeGenerationVisitor = require('../codegeneration/CodeGenerationVisitor'); const getJavascriptVisitor = require('../codegeneration/javascript/Visitor'); - const getANTLRVisitor = { - shell: () => ( getJavascriptVisitor(JavascriptANTLRVisitor) ) + shell: () => getJavascriptVisitor(JavascriptANTLRVisitor), }; const readYAML = (filename) => { @@ -30,7 +30,7 @@ const readYAML = (filename) => { return parseResult; }; -describe('Casting tests', function() { +describe('Casting tests', function () { if (modes.length > 0 && modes.indexOf('casting') === -1) { return; } @@ -58,20 +58,27 @@ describe('Casting tests', function() { template: null, argsTemplate: null, id: 'TestFunc', - type: null - } + type: null, + }, }, - doc.BsonSymbols, doc.NativeSymbols); + doc.BsonSymbols, + doc.NativeSymbols + ); transpiler.Syntax = doc.Syntax; transpiler.SYMBOL_TYPE = doc.SymbolTypes; - describe(`from ${input} to ${output}`, function() { - it(test.description, function() { + describe(`from ${input} to ${output}`, function () { + it(test.description, function () { if (test.input[input].args) { - transpiler.Symbols.TestFunc.args = test.input[input].args.map((t) => { - return t.map((k) => ( k !== null ? transpiler.Types[k] : k )); - }); + transpiler.Symbols.TestFunc.args = test.input[input].args.map( + (t) => { + return t.map((k) => (k !== null ? transpiler.Types[k] : k)); + } + ); } - const str = getTree[input](test.input[input].code, transpiler.startRule); + const str = getTree[input]( + test.input[input].code, + transpiler.startRule + ); expect(transpiler.start(str)).to.equal(test.output[output]); }); }); diff --git a/packages/bson-transpilers/test/declaration-store.test.js b/packages/bson-transpilers/test/declaration-store.test.js index c888a555ea6..fb520d84f2d 100644 --- a/packages/bson-transpilers/test/declaration-store.test.js +++ b/packages/bson-transpilers/test/declaration-store.test.js @@ -2,26 +2,34 @@ const assert = require('assert'); const DeclarationStore = require('../codegeneration/DeclarationStore'); -describe('DeclarationStore', function() { - it('adds data using #add', function() { +describe('DeclarationStore', function () { + it('adds data using #add', function () { const ds = new DeclarationStore(); - ds.addVar('Temp', 'objectID', (varName) => { return `objectId${varName}`; }); + ds.addVar('Temp', 'objectID', (varName) => { + return `objectId${varName}`; + }); assert.strictEqual(ds.length(), 1); }); - it('returns incremented variable names given the pre-incremented variable root-name', function() { + it('returns incremented variable names given the pre-incremented variable root-name', function () { const ds = new DeclarationStore(); - ds.addVar('ForTemp', 'objectID', () => { return 1; }); + ds.addVar('ForTemp', 'objectID', () => { + return 1; + }); assert.strictEqual(ds.next('ForTemp', 'objectID'), 'objectIDForTemp1'); - ds.addVar('ForTemp', 'objectID', () => { return 2; }); + ds.addVar('ForTemp', 'objectID', () => { + return 2; + }); assert.strictEqual(ds.next('ForTemp', 'objectID'), 'objectIDForTemp2'); - ds.addVar('ForTemp', 'objectID', () => { return 3; }); + ds.addVar('ForTemp', 'objectID', () => { + return 3; + }); assert.strictEqual(ds.next('ForTemp', 'objectID'), 'objectIDForTemp3'); }); - it('stringifies multiple variables declarations', function() { + it('stringifies multiple variables declarations', function () { const ds = new DeclarationStore(); const declaration1 = (varName) => { return [] @@ -34,7 +42,9 @@ describe('DeclarationStore', function() { const declaration2 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -49,14 +59,16 @@ describe('DeclarationStore', function() { .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('skips defining declarations for multiple of the exact same declaration (1)', function() { + it('skips defining declarations for multiple of the exact same declaration (1)', function () { const ds = new DeclarationStore(); const declaration1 = (varName) => { return [] @@ -69,7 +81,9 @@ describe('DeclarationStore', function() { const declaration2 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -95,14 +109,16 @@ describe('DeclarationStore', function() { .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('skips defining declarations for multiple of the exact same declaration (2)', function() { + it('skips defining declarations for multiple of the exact same declaration (2)', function () { const ds = new DeclarationStore(); const declaration1 = (varName) => { return [] @@ -115,7 +131,9 @@ describe('DeclarationStore', function() { const declaration2 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -124,7 +142,9 @@ describe('DeclarationStore', function() { const declaration3 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -141,14 +161,16 @@ describe('DeclarationStore', function() { .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('ignores duplications over different variables', function() { + it('ignores duplications over different variables', function () { const ds = new DeclarationStore(); const declaration1 = (varName) => { return [] @@ -161,7 +183,9 @@ describe('DeclarationStore', function() { const declaration2 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -170,7 +194,9 @@ describe('DeclarationStore', function() { const declaration3 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -187,19 +213,23 @@ describe('DeclarationStore', function() { .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTempA1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTempA1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTempB, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTempB, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('ignores duplications over different functions', function() { + it('ignores duplications over different functions', function () { const ds = new DeclarationStore(); const declaration1 = 'var x := func() {}'; const declaration2 = 'var x := func() {}'; @@ -216,7 +246,7 @@ describe('DeclarationStore', function() { .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('get length of sets', function() { + it('get length of sets', function () { const ds = new DeclarationStore(); const declaration1 = 'var x := func() {}'; const declaration2 = 'var x := func() {}'; diff --git a/packages/bson-transpilers/test/functions.test.js b/packages/bson-transpilers/test/functions.test.js index fdeda3f98cc..f5792811626 100644 --- a/packages/bson-transpilers/test/functions.test.js +++ b/packages/bson-transpilers/test/functions.test.js @@ -2,26 +2,28 @@ const bsonTranspilers = require('..'); const assert = require('assert'); -const { - BsonTranspilersUnimplementedError -} = require('../helper/error'); +const { BsonTranspilersUnimplementedError } = require('../helper/error'); -describe('function expressions (shell)', function() { - it('compiles functions to javascript', function() { +describe('function expressions (shell)', function () { + it('compiles functions to javascript', function () { assert.strictEqual( - bsonTranspilers.shell.javascript.compile('function(){ return this.x === 1 }'), + bsonTranspilers.shell.javascript.compile( + 'function(){ return this.x === 1 }' + ), 'function(){ return this.x === 1 }' ); }); - it('compiles functions to javascript (takes the right source range)', function() { + it('compiles functions to javascript (takes the right source range)', function () { assert.strictEqual( - bsonTranspilers.shell.javascript.compile('1 + function(){ return this.x === 1 }'), + bsonTranspilers.shell.javascript.compile( + '1 + function(){ return this.x === 1 }' + ), '1 + function(){ return this.x === 1 }' ); }); - it('compiles functions to javascript (preserve new lines)', function() { + it('compiles functions to javascript (preserve new lines)', function () { assert.strictEqual( bsonTranspilers.shell.javascript.compile(`function(){ return this.x === 1 @@ -32,7 +34,7 @@ describe('function expressions (shell)', function() { ); }); - it('allows functions in pipeline stages', function() { + it('allows functions in pipeline stages', function () { assert.strictEqual( bsonTranspilers.shell.javascript.compile(`{ $match: { @@ -47,17 +49,13 @@ describe('function expressions (shell)', function() { ); }); - ['object', 'csharp', 'java', 'python', 'ruby', 'rust', 'php'].forEach((language) => { - it(`throws an unsupported error compiling functions to ${language}`, function() { - assert.throws( - () => { + ['object', 'csharp', 'java', 'python', 'ruby', 'rust', 'php'].forEach( + (language) => { + it(`throws an unsupported error compiling functions to ${language}`, function () { + assert.throws(() => { bsonTranspilers.shell[language].compile('function(){}'); - }, - new BsonTranspilersUnimplementedError( - 'Support for exporting functions to languages other than javascript is not yet available.' - ) - ); - }); - }); + }, new BsonTranspilersUnimplementedError('Support for exporting functions to languages other than javascript is not yet available.')); + }); + } + ); }); - diff --git a/packages/bson-transpilers/test/index.test.js b/packages/bson-transpilers/test/index.test.js index 8013ef43802..d650bb6b4bf 100644 --- a/packages/bson-transpilers/test/index.test.js +++ b/packages/bson-transpilers/test/index.test.js @@ -7,27 +7,27 @@ const SAMPLE = transpilers.shell.java; const VALID_OPTIONS = { uri: 'mongodb://localhost', database: 'test', - collection: 'webscale' + collection: 'webscale', }; const INVALID_JS = '{ ... }'; const VALID_JS = '({ a : 1 })'; -describe('bson transpiler', function() { - describe('#compileWithDriver', function() { - it('does not compile internal options like "options"', function() { +describe('bson transpiler', function () { + describe('#compileWithDriver', function () { + it('does not compile internal options like "options"', function () { const result = SAMPLE.compileWithDriver({ options: VALID_OPTIONS, - filter: VALID_JS + filter: VALID_JS, }); assert.ok(result.includes('webscale')); }); - it('does not compile internal options like "exportMode"', function() { + it('does not compile internal options like "exportMode"', function () { const result = SAMPLE.compileWithDriver({ options: VALID_OPTIONS, exportMode: INVALID_JS, - filter: VALID_JS + filter: VALID_JS, }); assert.ok(result.includes('webscale')); }); diff --git a/packages/bson-transpilers/test/run-yaml.test.js b/packages/bson-transpilers/test/run-yaml.test.js index b48422a6e9c..a6fd85d237d 100644 --- a/packages/bson-transpilers/test/run-yaml.test.js +++ b/packages/bson-transpilers/test/run-yaml.test.js @@ -10,8 +10,23 @@ const bson = require('bson'); const transpiler = require('../index'); -const outputLanguages = process.env.OUTPUT ? process.env.OUTPUT.split(',') : [ 'csharp', 'python', 'java', 'javascript', 'shell', 'object', 'ruby', 'go', 'rust', 'php']; -const inputLanguages = process.env.INPUT ? process.env.INPUT.split(',') : [ 'shell' ]; +const outputLanguages = process.env.OUTPUT + ? process.env.OUTPUT.split(',') + : [ + 'csharp', + 'python', + 'java', + 'javascript', + 'shell', + 'object', + 'ruby', + 'go', + 'rust', + 'php', + ]; +const inputLanguages = process.env.INPUT + ? process.env.INPUT.split(',') + : ['shell']; const modes = process.env.MODE ? process.env.MODE.split(',') : []; const skipType = []; @@ -45,10 +60,10 @@ const executeJavascript = (input) => { ObjectId: bson.ObjectId, BSONSymbol: bson.BSONSymbol, Timestamp: bson.Timestamp, - Code: function(c, s) { + Code: function (c, s) { return new bson.Code(c, s); }, - Date: function(s) { + Date: function (s) { const args = Array.from(arguments); if (args.length === 1) { @@ -58,7 +73,7 @@ const executeJavascript = (input) => { return new Date(Date.UTC(...args)); }, Buffer: Buffer, - __result: {} + __result: {}, }; const res = vm.runInContext('__result = ' + input, vm.createContext(sandbox)); return res; @@ -73,46 +88,71 @@ fs.readdirSync(testpath).map((file) => { if (modes.length > 0 && modes.indexOf(mode) === -1) { return; } - describe(mode, function() { + describe(mode, function () { const tests = readYAML(path.join(testpath, file)); for (const type of Object.keys(tests.tests)) { if (skipType.indexOf(type) !== -1) { continue; } - describe(`${type}`, function() { + describe(`${type}`, function () { for (const test of tests.tests[type]) { const description = test.description ? (d) => { - describe(`${test.description}`, function() { return d(); }); - } - : (d) => (d()); + describe(`${test.description}`, function () { + return d(); + }); + } + : (d) => d(); description(() => { for (const input of Object.keys(test.input)) { if (inputLanguages.indexOf(input) === -1) { continue; } - const outputLang = test.output ? Object.keys(test.output) : outputLanguages; + const outputLang = test.output + ? Object.keys(test.output) + : outputLanguages; for (const output of outputLang) { if (outputLanguages.indexOf(output) === -1) { continue; } - if (test.output && output === 'object') { // Can't import libraries from YAML, so un-stringify it first - it(`${input}: ${test.input[input]} => runnable object`, function() { + if (test.output && output === 'object') { + // Can't import libraries from YAML, so un-stringify it first + it(`${input}: ${test.input[input]} => runnable object`, function () { const expected = executeJavascript(test.output.object); - const actual = transpiler[input].object.compile(test.input[input]); - if (expected && typeof expected === 'object' && '_bsontype' in expected) { + const actual = transpiler[input].object.compile( + test.input[input] + ); + if ( + expected && + typeof expected === 'object' && + '_bsontype' in expected + ) { expect(actual._bsontype).to.equal(expected._bsontype); expect(actual.value).to.equal(expected.value); - } else if (test.description && test.description.includes('now date')) { + } else if ( + test.description && + test.description.includes('now date') + ) { expect(actual instanceof Date).to.equal(true); - } else if (test.description && test.description.includes('date.now')) { + } else if ( + test.description && + test.description.includes('date.now') + ) { expect(typeof actual).to.equal('number'); } else { expect(actual).to.deep.equal(expected); } }); } else if (input !== output) { - tests.runner(it, type, expect, input, output, transpiler, test); + tests.runner( + it, + type, + expect, + input, + output, + transpiler, + test + ); } } } diff --git a/packages/bson-transpilers/test/yaml/bson-methods.yaml b/packages/bson-transpilers/test/yaml/bson-methods.yaml index a550f95b7c8..2629b075a5f 100644 --- a/packages/bson-transpilers/test/yaml/bson-methods.yaml +++ b/packages/bson-transpilers/test/yaml/bson-methods.yaml @@ -12,7 +12,7 @@ runner: ! |- tests: Code-methods: - input: - shell: 'Code(''test code'', {x: 1}).scope' + shell: "Code('test code', {x: 1}).scope" output: javascript: |- new Code('test code', { @@ -26,7 +26,7 @@ tests: csharp: >- new BsonJavaScriptWithScope("test code", new BsonDocument("x", 1)).Scope - php: '(new Javascript(''test code'', [''x'' => 1]))->getScope()' + php: "(new Javascript('test code', ['x' => 1]))->getScope()" ruby: |- BSON::CodeWithScope.new('test code', { 'x' => 1 @@ -46,7 +46,7 @@ tests: java: new Code("test code").getCode() csharp: new BsonJavaScript("test code").Code php: (new Javascript('test code'))->getCode() - ruby: 'BSON::Code.new(''test code'').javascript' + ruby: "BSON::Code.new('test code').javascript" go: 'primitive.CodeWithScope{Code: primitive.JavaScript("test code")}.Code' - input: shell: ObjectId('5ab901c29ee65f5c8550c5b9').toString() @@ -56,7 +56,7 @@ tests: java: new ObjectId("5ab901c29ee65f5c8550c5b9").toHexString() csharp: new ObjectId("5ab901c29ee65f5c8550c5b9").ToString() php: (string) new ObjectId('5ab901c29ee65f5c8550c5b9') - ruby: 'BSON::ObjectId(''5ab901c29ee65f5c8550c5b9'').to_s' + ruby: "BSON::ObjectId('5ab901c29ee65f5c8550c5b9').to_s" go: |- var objectIDFromHex = func(hex string) primitive.ObjectID { objectID, err := primitive.ObjectIDFromHex(hex) @@ -75,7 +75,7 @@ tests: java: new ObjectId("5ab901c29ee65f5c8550c5b9").getTimestamp() csharp: new ObjectId("5ab901c29ee65f5c8550c5b9").Timestamp php: (new ObjectId('5ab901c29ee65f5c8550c5b9'))->getTimestamp() - ruby: 'BSON::ObjectId(''5ab901c29ee65f5c8550c5b9'').to_time' + ruby: "BSON::ObjectId('5ab901c29ee65f5c8550c5b9').to_time" go: |- var objectIDFromHex = func(hex string) primitive.ObjectID { objectID, err := primitive.ObjectIDFromHex(hex) @@ -139,12 +139,12 @@ tests: ObjectId::parse_str("5ab901c29ee65f5c8550c5b9")? DBRef-methods: - input: - shell: 'new DBRef(''coll'', new ObjectId(), ''db'').$db' + shell: "new DBRef('coll', new ObjectId(), 'db').$db" output: - python: 'DBRef(''coll'', ObjectId(), ''db'').database' + python: "DBRef('coll', ObjectId(), 'db').database" java: 'new DBRef("db", "coll", new ObjectId()).getDatabaseName()' csharp: 'new MongoDBRef("coll", new ObjectId(), "db").DatabaseName' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => ''db''][''$db'']' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => 'db']['$db']" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -152,12 +152,12 @@ tests: '$db' => 'db' ).database - input: - shell: 'new DBRef(''coll'', new ObjectId(), ''db'').getDb()' + shell: "new DBRef('coll', new ObjectId(), 'db').getDb()" output: - python: 'DBRef(''coll'', ObjectId(), ''db'').database' + python: "DBRef('coll', ObjectId(), 'db').database" java: 'new DBRef("db", "coll", new ObjectId()).getDatabaseName()' csharp: 'new MongoDBRef("coll", new ObjectId(), "db").DatabaseName' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => ''db''][''$db'']' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => 'db']['$db']" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -165,9 +165,9 @@ tests: '$db' => 'db' ).database - input: - shell: 'new DBRef(''coll'', new ObjectId(''5bfeee5ffa63a31985db9e5e'')).getRef()' + shell: "new DBRef('coll', new ObjectId('5bfeee5ffa63a31985db9e5e')).getRef()" output: - python: 'DBRef(''coll'', ObjectId(''5bfeee5ffa63a31985db9e5e'')).collection' + python: "DBRef('coll', ObjectId('5bfeee5ffa63a31985db9e5e')).collection" java: >- new DBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).getCollectionName() @@ -178,9 +178,9 @@ tests: ['$ref' => 'coll', '$id' => new ObjectId('5bfeee5ffa63a31985db9e5e'), '$db' => null]['$ref'] - input: - shell: 'new DBRef(''coll'', new ObjectId(''5bfeee5ffa63a31985db9e5e'')).$ref' + shell: "new DBRef('coll', new ObjectId('5bfeee5ffa63a31985db9e5e')).$ref" output: - python: 'DBRef(''coll'', ObjectId(''5bfeee5ffa63a31985db9e5e'')).collection' + python: "DBRef('coll', ObjectId('5bfeee5ffa63a31985db9e5e')).collection" java: >- new DBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).getCollectionName() @@ -196,21 +196,21 @@ tests: '$id' => BSON::ObjectId('5bfeee5ffa63a31985db9e5e') ).collection - input: - shell: 'new DBRef(''coll'', new ObjectId()).getCollection()' + shell: "new DBRef('coll', new ObjectId()).getCollection()" output: - python: 'DBRef(''coll'', ObjectId()).collection' + python: "DBRef('coll', ObjectId()).collection" java: 'new DBRef("coll", new ObjectId()).getCollectionName()' csharp: 'new MongoDBRef("coll", new ObjectId()).CollectionName' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => null][''$ref'']' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => null]['$ref']" ruby: |- BSON::DBRef.new( '$ref' => 'coll', '$id' => BSON::ObjectId.new ).collection - input: - shell: 'new DBRef(''coll'', new ObjectId(''5bfeee5ffa63a31985db9e5e'')).$id' + shell: "new DBRef('coll', new ObjectId('5bfeee5ffa63a31985db9e5e')).$id" output: - python: 'DBRef(''coll'', ObjectId(''5bfeee5ffa63a31985db9e5e'')).id' + python: "DBRef('coll', ObjectId('5bfeee5ffa63a31985db9e5e')).id" java: 'new DBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).getId()' csharp: 'new MongoDBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).Id' php: >- @@ -222,9 +222,9 @@ tests: '$id' => BSON::ObjectId('5bfeee5ffa63a31985db9e5e') ).id - input: - shell: 'new DBRef(''coll'', new ObjectId(''5bfeee5ffa63a31985db9e5e'')).getId()' + shell: "new DBRef('coll', new ObjectId('5bfeee5ffa63a31985db9e5e')).getId()" output: - python: 'DBRef(''coll'', ObjectId(''5bfeee5ffa63a31985db9e5e'')).id' + python: "DBRef('coll', ObjectId('5bfeee5ffa63a31985db9e5e')).id" java: 'new DBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).getId()' csharp: 'new MongoDBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).Id' php: >- @@ -239,11 +239,11 @@ tests: - input: shell: NumberLong(429496729601).toString() output: - python: '''429496729601''' + python: "'429496729601'" java: '"429496729601"' csharp: '"429496729601"' - php: '''429496729601''' - ruby: '''429496729601''' + php: "'429496729601'" + ruby: "'429496729601'" go: '"429496729601"' rust: '"429496729601"' Decimal128-methods: [] @@ -260,7 +260,7 @@ tests: Symbol-methods: [] ObjectId-utils: - input: - shell: 'ObjectId.createFromTime(new Date(''Thu, 03 Feb 1972 00:00:00 GMT''))' + shell: "ObjectId.createFromTime(new Date('Thu, 03 Feb 1972 00:00:00 GMT'))" output: javascript: >- ObjectId.createFromTime(new Date('Thu, 03 Feb 1972 00:00:00 diff --git a/packages/bson-transpilers/test/yaml/bson.yaml b/packages/bson-transpilers/test/yaml/bson.yaml index c6cfc447a1b..e308851c862 100644 --- a/packages/bson-transpilers/test/yaml/bson.yaml +++ b/packages/bson-transpilers/test/yaml/bson.yaml @@ -20,7 +20,7 @@ tests: java: new Code("some code") csharp: new BsonJavaScript("some code") php: new Javascript('some code') - ruby: 'BSON::Code.new(''some code'')' + ruby: "BSON::Code.new('some code')" go: 'primitive.CodeWithScope{Code: primitive.JavaScript("some code")}' rust: 'Bson::JavaScriptCode("some code".to_string())' - description: string code @@ -32,12 +32,12 @@ tests: java: new Code("some code") csharp: new BsonJavaScript("some code") php: new Javascript('some code') - ruby: 'BSON::Code.new(''some code'')' + ruby: "BSON::Code.new('some code')" go: 'primitive.CodeWithScope{Code: primitive.JavaScript("some code")}' rust: 'Bson::JavaScriptCode("some code".to_string())' - description: string code and object scope input: - shell: 'Code(''string'', {x: ''1''})' + shell: "Code('string', {x: '1'})" output: javascript: |- new Code('string', { @@ -49,7 +49,7 @@ tests: }) java: 'new CodeWithScope("string", new Document("x", "1"))' csharp: 'new BsonJavaScriptWithScope("string", new BsonDocument("x", "1"))' - php: 'new Javascript(''string'', [''x'' => ''1''])' + php: "new Javascript('string', ['x' => '1'])" ruby: |- BSON::CodeWithScope.new('string', { 'x' => '1' @@ -107,7 +107,7 @@ tests: java: new ObjectId("5a7382114ec1f67ae445f778") csharp: new ObjectId("5a7382114ec1f67ae445f778") php: new ObjectId('5a7382114ec1f67ae445f778') - ruby: 'BSON::ObjectId(''5a7382114ec1f67ae445f778'')' + ruby: "BSON::ObjectId('5a7382114ec1f67ae445f778')" go: |- var objectIDFromHex = func(hex string) primitive.ObjectID { objectID, err := primitive.ObjectIDFromHex(hex) @@ -122,13 +122,13 @@ tests: DBRef: - description: 'NEW (string, ObjectID) args' input: - shell: 'new DBRef(''coll'', new ObjectId())' + shell: "new DBRef('coll', new ObjectId())" output: - javascript: 'new DBRef(''coll'', new ObjectId())' - python: 'DBRef(''coll'', ObjectId())' + javascript: "new DBRef('coll', new ObjectId())" + python: "DBRef('coll', ObjectId())" java: 'new DBRef("coll", new ObjectId())' csharp: 'new MongoDBRef("coll", new ObjectId())' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => null]' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => null]" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -136,13 +136,13 @@ tests: ) - description: '(string, ObjectID) args' input: - shell: 'DBRef(''coll'', new ObjectId())' + shell: "DBRef('coll', new ObjectId())" output: - javascript: 'new DBRef(''coll'', new ObjectId())' - python: 'DBRef(''coll'', ObjectId())' + javascript: "new DBRef('coll', new ObjectId())" + python: "DBRef('coll', ObjectId())" java: 'new DBRef("coll", new ObjectId())' csharp: 'new MongoDBRef("coll", new ObjectId())' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => null]' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => null]" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -150,13 +150,13 @@ tests: ) - description: '(string, ObjectId, string) args' input: - shell: 'new DBRef(''coll'', new ObjectId(), ''db'')' + shell: "new DBRef('coll', new ObjectId(), 'db')" output: - javascript: 'new DBRef(''coll'', new ObjectId(), ''db'')' - python: 'DBRef(''coll'', ObjectId(), ''db'')' + javascript: "new DBRef('coll', new ObjectId(), 'db')" + python: "DBRef('coll', ObjectId(), 'db')" java: 'new DBRef("db", "coll", new ObjectId())' csharp: 'new MongoDBRef("coll", new ObjectId(), "db")' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => ''db'']' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => 'db']" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -197,7 +197,7 @@ tests: java: Integer.parseInt("3") csharp: Convert.ToInt32("3") php: (int) '3' - ruby: '''3''.to_i' + ruby: "'3'.to_i" go: |- var parseInt32 = func(str string) int32 { i64, err := strconv.ParseInt(str, 10, 32) @@ -304,7 +304,7 @@ tests: java: Long.parseLong("9223372036854775807") csharp: Convert.ToInt64("9223372036854775807") php: (int) '9223372036854775807' - ruby: '''9223372036854775807''.to_i' + ruby: "'9223372036854775807'.to_i" go: |- var parseInt = func(str string) int64 { i64, err := strconv.ParseInt(str, 10, 64) @@ -326,7 +326,7 @@ tests: java: Decimal128.parse("5") csharp: Decimal128.Parse("5") php: new Decimal128('5') - ruby: 'BSON::Decimal128.new(''5'')' + ruby: "BSON::Decimal128.new('5')" - description: NEW input: shell: new NumberDecimal('5.3E-6175') @@ -335,7 +335,7 @@ tests: java: Decimal128.parse("5.3E-6175") csharp: Decimal128.Parse("5.3E-6175") php: new Decimal128('5.3E-6175') - ruby: 'BSON::Decimal128.new(''5.3E-6175'')' + ruby: "BSON::Decimal128.new('5.3E-6175')" - description: number arg input: shell: NumberDecimal(5) @@ -345,7 +345,7 @@ tests: java: Decimal128.parse("5") csharp: Decimal128.Parse("5") php: new Decimal128('5') - ruby: 'BSON::Decimal128.new(''5'')' + ruby: "BSON::Decimal128.new('5')" - description: no arg input: shell: NumberDecimal() @@ -355,7 +355,7 @@ tests: java: Decimal128.parse("0") csharp: Decimal128.Parse("0") php: new Decimal128('0') - ruby: 'BSON::Decimal128.new(''0'')' + ruby: "BSON::Decimal128.new('0')" MinKey/MaxKey: - description: MinKey input: @@ -437,11 +437,11 @@ tests: shell: Symbol('abc') output: javascript: new BSONSymbol('abc') - python: '''abc''' + python: "'abc'" java: new Symbol("abc") csharp: '"abc"' - php: '''abc''' - ruby: ':''abc''' + php: "'abc'" + ruby: ":'abc'" go: primitive.Symbol("abc") rust: 'Bson::Symbol("abc")' - description: from shell symbol @@ -449,10 +449,10 @@ tests: shell: Symbol('abc') output: javascript: new BSONSymbol('abc') - python: '''abc''' + python: "'abc'" java: new Symbol("abc") csharp: '"abc"' - php: '''abc''' - ruby: ':''abc''' + php: "'abc'" + ruby: ":'abc'" go: primitive.Symbol("abc") rust: 'Bson::Symbol("abc")' diff --git a/packages/bson-transpilers/test/yaml/builders.yaml b/packages/bson-transpilers/test/yaml/builders.yaml index 08dead32cb7..07db3b15360 100644 --- a/packages/bson-transpilers/test/yaml/builders.yaml +++ b/packages/bson-transpilers/test/yaml/builders.yaml @@ -278,13 +278,13 @@ tests: java: 'where("function(){$x===true}")' imports: import static com.mongodb.client.model.Filters.where; - input: - shell: '{''$where'': ''function() { $x===true }''}' + shell: "{'$where': 'function() { $x===true }'}" output: java: 'where("function() { $x===true }")' imports: import static com.mongodb.client.model.Filters.where; geometry: - input: - shell: '{$geometry: {type: ''Point'', coordinates: [1, 2]}}' + shell: "{$geometry: {type: 'Point', coordinates: [1, 2]}}" output: java: 'new Point(new Position(1L, 2L))' imports: |- @@ -657,7 +657,7 @@ tests: import static com.mongodb.client.model.Sorts.metaTextScore; import static com.mongodb.client.model.Sorts.orderBy; - input: - shell: '{ $sort: { x: 1, y: -1, z: { ''$meta'': ''textScore'' } } }' + shell: "{ $sort: { x: 1, y: -1, z: { '$meta': 'textScore' } } }" output: java: 'sort(orderBy(ascending("x"), descending("y"), metaTextScore("z")))' imports: |- @@ -677,7 +677,7 @@ tests: import static com.mongodb.client.model.Sorts.metaTextScore; import static com.mongodb.client.model.Sorts.orderBy; - input: - shell: '{ $sort: { x: 1, y: -1, z: { $meta: ''textScore'' } } }' + shell: "{ $sort: { x: 1, y: -1, z: { $meta: 'textScore' } } }" output: java: 'sort(orderBy(ascending("x"), descending("y"), metaTextScore("z")))' imports: |- @@ -782,12 +782,12 @@ tests: import com.mongodb.client.model.GraphLookupOptions; sortByCount: - input: - shell: '{ $sortByCount: ''$expr'' }' + shell: "{ $sortByCount: '$expr' }" output: java: sortByCount("$expr") imports: import static com.mongodb.client.model.Aggregates.sortByCount; - input: - shell: '{ $sortByCount: { ''$floor'': ''$x'' } }' + shell: "{ $sortByCount: { '$floor': '$x' } }" output: java: 'sortByCount(eq("$floor", "$x"))' imports: |- @@ -795,7 +795,7 @@ tests: import static com.mongodb.client.model.Aggregates.sortByCount; replaceRoot: - input: - shell: '{ $replaceRoot: { newRoot: { x: ''newDoc'' } } }' + shell: "{ $replaceRoot: { newRoot: { x: 'newDoc' } } }" output: java: 'replaceRoot(new Document("x", "newDoc"))' imports: |- @@ -812,13 +812,13 @@ tests: import com.mongodb.client.model.Field; count: - input: - shell: '{ $count: ''field'' }' + shell: "{ $count: 'field' }" output: java: count("field") imports: import static com.mongodb.client.model.Aggregates.count; bucket: - input: - shell: '{$bucket: { groupBy: ''$expr'', boundaries: [ 0, 10, 20 ],} }' + shell: "{$bucket: { groupBy: '$expr', boundaries: [ 0, 10, 20 ],} }" output: java: 'bucket("$expr", Arrays.asList(0L, 10L, 20L))' imports: |- diff --git a/packages/bson-transpilers/test/yaml/driver-syntax.yaml b/packages/bson-transpilers/test/yaml/driver-syntax.yaml index 027c55fc0d7..1d6f707406b 100644 --- a/packages/bson-transpilers/test/yaml/driver-syntax.yaml +++ b/packages/bson-transpilers/test/yaml/driver-syntax.yaml @@ -373,7 +373,7 @@ tests: skip: '5' limit: '10' maxTimeMS: '100' - collation: '{ locale: ''zh'' }' + collation: "{ locale: 'zh' }" output: python: |- # Requires the PyMongo package. @@ -800,7 +800,7 @@ tests: - description: generate driver syntax with declarations input: shell: - aggregation: '{x: ObjectId(''5a7382114ec1f67ae445f778'')}' + aggregation: "{x: ObjectId('5a7382114ec1f67ae445f778')}" options: uri: 'mongodb://localhost:27017' database: db diff --git a/packages/bson-transpilers/test/yaml/edge-cases/casting.yaml b/packages/bson-transpilers/test/yaml/edge-cases/casting.yaml index 4870620813d..9b56efa0e75 100644 --- a/packages/bson-transpilers/test/yaml/edge-cases/casting.yaml +++ b/packages/bson-transpilers/test/yaml/edge-cases/casting.yaml @@ -34,7 +34,7 @@ tests: - description: does not cast numeric input: shell: - code: 'TestFunc(10, 10.01, 0x6, 0o5, Number(10), Number(''10''), -10)' + code: "TestFunc(10, 10.01, 0x6, 0o5, Number(10), Number('10'), -10)" args: - - _numeric - - _numeric @@ -48,7 +48,7 @@ tests: - description: does not cast Number class input: shell: - code: 'TestFunc(Number(10), Number(''10''), Number(10), Number(''10''))' + code: "TestFunc(Number(10), Number('10'), Number(10), Number('10'))" args: - - _numeric - - _long diff --git a/packages/bson-transpilers/test/yaml/error-builders.yaml b/packages/bson-transpilers/test/yaml/error-builders.yaml index 8485ea4bc2a..7fa4a1d6e63 100644 --- a/packages/bson-transpilers/test/yaml/error-builders.yaml +++ b/packages/bson-transpilers/test/yaml/error-builders.yaml @@ -27,112 +27,112 @@ runner: ! |- tests: wrong type: - input: - shell: '{''$project'': ''invalid''}' + shell: "{'$project': 'invalid'}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$project'': {}}' + shell: "{'$project': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$not'': ''1''}}' + shell: "{'x': {'$not': '1'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$mod'': 1}}' + shell: "{'x': {'$mod': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$mod'': [1]}}' + shell: "{'x': {'$mod': [1]}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$mod'': {}}}' + shell: "{'x': {'$mod': {}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': {}}' + shell: "{'$sort': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': 1}' + shell: "{'$sort': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': {''x'': 1, ''y'': ''not 1/-1''}}' + shell: "{'$sort': {'x': 1, 'y': 'not 1/-1'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': {''x'': 1, ''y'': {}}}' + shell: "{'$sort': {'x': 1, 'y': {}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': {''x'': 1, ''y'': {''$meta'': 1}}}' + shell: "{'$sort': {'x': 1, 'y': {'$meta': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$project'': {}}' + shell: "{'$project': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$project'': 1}' + shell: "{'$project': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$sample'': {}}}' + shell: "{'x': {'$sample': {}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$sample'': {''notSize'': 1}}}' + shell: "{'x': {'$sample': {'notSize': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$sample'': {''size'': 10, ''other'': 1}}}' + shell: "{'x': {'$sample': {'size': 10, 'other': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$replaceRoot'': {}}}' + shell: "{'x': {'$replaceRoot': {}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$replaceRoot'': {''notNewRoot'': 1}}}' + shell: "{'x': {'$replaceRoot': {'notNewRoot': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$replaceRoot'': {''newRoot'': 10, ''other'': 1}}}' + shell: "{'x': {'$replaceRoot': {'newRoot': 10, 'other': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$graphLookup'': {}}' + shell: "{'$graphLookup': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$graphLookup'': 1}' + shell: "{'$graphLookup': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$graphLookup'': {''from'': ''x''}}' + shell: "{'$graphLookup': {'from': 'x'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME @@ -145,12 +145,12 @@ tests: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$lookup'': {}}' + shell: "{'$lookup': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$lookup'': {''from'': ''x''}}' + shell: "{'$lookup': {'from': 'x'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME @@ -162,98 +162,98 @@ tests: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucket'': {}}' + shell: "{'$bucket': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucket'': {''groupBy'': ''x''}}' + shell: "{'$bucket': {'groupBy': 'x'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucket'': {''groupBy'': ''x'', ''boundaries'': 1, ''extra'': 1}}' + shell: "{'$bucket': {'groupBy': 'x', 'boundaries': 1, 'extra': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucketAuto'': {}}' + shell: "{'$bucketAuto': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucketAuto'': {''groupBy'': ''x''}}' + shell: "{'$bucketAuto': {'groupBy': 'x'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucketAuto'': {''groupBy'': ''x'', ''buckets'': 1, ''extra'': 1}}' + shell: "{'$bucketAuto': {'groupBy': 'x', 'buckets': 1, 'extra': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$text'': {}}' + shell: "{'$text': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$text'': {''$search'': ''x'', ''extra'': 1}}' + shell: "{'$text': {'$search': 'x', 'extra': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$unwind'': {}}' + shell: "{'$unwind': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$unwind'': 1}' + shell: "{'$unwind': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$unwind'': {''path'': ''x'', ''extra'': 1}}' + shell: "{'$unwind': {'path': 'x', 'extra': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$group'': {''x'': 1}}' + shell: "{'$group': {'x': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$group'': {}}' + shell: "{'$group': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$group'': 1}' + shell: "{'$group': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$facet'': {}}' + shell: "{'$facet': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$facet'': 1}' + shell: "{'$facet': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$addFields'': {}}' + shell: "{'$addFields': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$addFields'': 1}' + shell: "{'$addFields': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME wrong shape: - input: - shell: '{''$sum'': 1}' + shell: "{'$sum': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME diff --git a/packages/bson-transpilers/test/yaml/imports.yaml b/packages/bson-transpilers/test/yaml/imports.yaml index 31477cd926e..81dd20a6d23 100644 --- a/packages/bson-transpilers/test/yaml/imports.yaml +++ b/packages/bson-transpilers/test/yaml/imports.yaml @@ -25,7 +25,7 @@ tests: all: - description: Single import Code input: - shell: '{x: Code(''code'')}' + shell: "{x: Code('code')}" output: java: |- import org.bson.types.Code; @@ -50,7 +50,7 @@ tests: use mongodb::bson::doc; - description: Single import Code with scope input: - shell: '{x: Code(''code'', {x: 1})}' + shell: "{x: Code('code', {x: 1})}" output: java: |- import org.bson.Document; @@ -128,7 +128,7 @@ tests: use mongodb::bson::doc; - description: Single import DBRef input: - shell: '{x: DBRef(''db'', ObjectId())}' + shell: "{x: DBRef('db', ObjectId())}" output: java: |- import org.bson.types.ObjectId; @@ -263,7 +263,7 @@ tests: use mongodb::bson::doc; - description: Single import RegExp input: - shell: '{x: RegExp(''abc'')}' + shell: "{x: RegExp('abc')}" output: java: |- import java.util.regex.Pattern; @@ -334,7 +334,7 @@ tests: use mongodb::bson::doc; - description: Single import Symbol input: - shell: '{x: Symbol(''a'')}' + shell: "{x: Symbol('a')}" output: java: |- import org.bson.types.Symbol; diff --git a/packages/bson-transpilers/test/yaml/native.yaml b/packages/bson-transpilers/test/yaml/native.yaml index ecbfb30d34a..955d0529985 100644 --- a/packages/bson-transpilers/test/yaml/native.yaml +++ b/packages/bson-transpilers/test/yaml/native.yaml @@ -12,7 +12,7 @@ runner: ! |- tests: Document: - input: - shell: '{x: ''1''}' + shell: "{x: '1'}" output: javascript: |- { @@ -24,7 +24,7 @@ tests: } java: 'eq("x", "1")' csharp: 'new BsonDocument("x", "1")' - php: '[''x'' => ''1'']' + php: "['x' => '1']" ruby: |- { 'x' => '1' @@ -35,7 +35,7 @@ tests: } go: 'bson.D{{"x", "1"}}' - input: - shell: '{x: ''1'',}' + shell: "{x: '1',}" output: javascript: |- { @@ -47,7 +47,7 @@ tests: } java: 'eq("x", "1")' csharp: 'new BsonDocument("x", "1")' - php: '[''x'' => ''1'']' + php: "['x' => '1']" ruby: |- { 'x' => '1' @@ -58,7 +58,7 @@ tests: } go: 'bson.D{{"x", "1"}}' - input: - shell: '{x: [''1'', ''2'']}' + shell: "{x: ['1', '2']}" output: javascript: |- { @@ -79,7 +79,7 @@ tests: "1", "2" }) - php: '[''x'' => [''1'', ''2'']]' + php: "['x' => ['1', '2']]" ruby: |- { 'x' => [ @@ -119,7 +119,7 @@ tests: } java: 'eq("x", eq("y", 2L))' csharp: 'new BsonDocument("x", new BsonDocument("y", 2))' - php: '[''x'' => [''y'' => 2]]' + php: "['x' => ['y' => 2]]" ruby: |- { 'x' => { @@ -145,7 +145,7 @@ tests: rust: 'doc! {}' go: 'bson.D{}' - input: - shell: '{x: ''1'', n: ''4''}' + shell: "{x: '1', n: '4'}" output: javascript: |- { @@ -164,7 +164,7 @@ tests: { "x", "1" }, { "n", "4" } } - php: '[''x'' => ''1'', ''n'' => ''4'']' + php: "['x' => '1', 'n' => '4']" ruby: |- { 'x' => '1', @@ -181,9 +181,9 @@ tests: {"n", "4"}, } - input: - shell: '{0: ''1'', 1: ''2'', 2: ''3''}' + shell: "{0: '1', 1: '2', 2: '3'}" output: - php: '(object) [0 => ''1'', 1 => ''2'', 2 => ''3'']' + php: "(object) [0 => '1', 1 => '2', 2 => '3']" - input: shell: >- { graphLookup : { "from" : "raw_data", "startWith" : "$_id", @@ -355,7 +355,7 @@ tests: } Array: - input: - shell: '[''1'', ''2'']' + shell: "['1', '2']" output: javascript: |- [ @@ -372,7 +372,7 @@ tests: [ '1', '2' ] - php: '[''1'', ''2'']' + php: "['1', '2']" ruby: |- [ '1', '2' @@ -388,7 +388,7 @@ tests: "2", } - input: - shell: '[''1'', ''2'',]' + shell: "['1', '2',]" output: javascript: |- [ @@ -405,7 +405,7 @@ tests: [ '1', '2' ] - php: '[''1'', ''2'']' + php: "['1', '2']" ruby: |- [ '1', '2' @@ -421,7 +421,7 @@ tests: "2", } - input: - shell: '[''1'', { settings: ''http2'' }]' + shell: "['1', { settings: 'http2' }]" output: javascript: |- [ @@ -442,7 +442,7 @@ tests: 'settings': 'http2' } ] - php: '[''1'', [''settings'' => ''http2'']]' + php: "['1', ['settings' => 'http2']]" ruby: |- [ '1', { @@ -630,7 +630,7 @@ tests: }, } - input: - shell: '[''1'', [''2'', ''3'']]' + shell: "['1', ['2', '3']]" output: javascript: |- [ @@ -655,7 +655,7 @@ tests: '2', '3' ] ] - php: '[''1'', [''2'', ''3'']]' + php: "['1', ['2', '3']]" ruby: |- [ '1', [ @@ -691,7 +691,7 @@ tests: go: 'bson.A{}' ArrayElision: - input: - shell: '[,''1'', ''2'',]' + shell: "[,'1', '2',]" output: python: |- [ @@ -709,7 +709,7 @@ tests: [ undefined, '1', '2' ] - php: '[null, ''1'', ''2'']' + php: "[null, '1', '2']" ruby: |- [ nil, '1', '2' @@ -792,7 +792,7 @@ tests: primitive.Undefined{}, } - input: - shell: '[''1'',,,,''2'']' + shell: "['1',,,,'2']" output: python: |- [ @@ -816,7 +816,7 @@ tests: [ '1', undefined, undefined, undefined, '2' ] - php: '[''1'', null, null, null, ''2'']' + php: "['1', null, null, null, '2']" ruby: |- [ '1', nil, nil, nil, '2' @@ -947,7 +947,7 @@ tests: java: Double.parseDouble("2") csharp: int.Parse("2") php: (int) '2' - ruby: '''2''.to_f' + ruby: "'2'.to_f" rust: '"2".parse::()?' go: |- var parseInt = func(str string) int64 { @@ -1116,25 +1116,25 @@ tests: go: 'primitive.Undefined{}' string_literals: - input: - shell: '''string''' + shell: "'string'" output: - javascript: '''string''' - python: '''string''' + javascript: "'string'" + python: "'string'" java: '"string"' csharp: '"string"' - php: '''string''' - ruby: '''string''' + php: "'string'" + ruby: "'string'" rust: '"string"' go: '"string"' - input: shell: '"string"' output: - javascript: '''string''' - python: '''string''' + javascript: "'string'" + python: "'string'" java: '"string"' csharp: '"string"' - php: '''string''' - ruby: '''string''' + php: "'string'" + ruby: "'string'" rust: '"string"' go: '"string"' python_strings: [] @@ -1167,7 +1167,7 @@ tests: - input: shell: 'new Date(1995, 11, 17)' output: - javascript: 'new Date(''Sun, 17 Dec 1995 00:00:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 00:00:00 GMT')" python: 'datetime(1995, 12, 17, 0, 0, 0, tzinfo=timezone.utc)' java: new java.util.Date(819158400000L) csharp: 'new DateTime(1995, 12, 17, 0, 0, 0)' @@ -1178,7 +1178,7 @@ tests: - input: shell: 'new Date(1995, 11, 17, 3, 24)' output: - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" python: 'datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819170640000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 0)' @@ -1189,7 +1189,7 @@ tests: - input: shell: 'new Date(1995, 11, 17, 3, 24, 55)' output: - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:55 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:55 GMT')" python: 'datetime(1995, 12, 17, 3, 24, 55, tzinfo=timezone.utc)' java: new java.util.Date(819170695000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 55)' @@ -1198,12 +1198,12 @@ tests: rust: 'DateTime::parse_rfc3339_str("1995-12-17T03:24:55.000Z")?' go: 'time.Date(1995, 12, 17, 3, 24, 55, 0, time.UTC)' - input: - shell: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + shell: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" output: python: 'datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819170640000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 0)' - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" php: new UTCDateTime(819170640000) ruby: 'Time.utc(1995, 12, 17, 3, 24, 0)' rust: 'DateTime::parse_rfc3339_str("1995-12-17T03:24:00.000Z")?' @@ -1211,7 +1211,7 @@ tests: - input: shell: new Date(819167040000) output: - javascript: 'new Date(''Sun, 17 Dec 1995 02:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 02:24:00 GMT')" python: 'datetime(1995, 12, 17, 2, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819167040000L) csharp: 'new DateTime(1995, 12, 17, 2, 24, 0)' @@ -1221,7 +1221,7 @@ tests: go: 'time.Date(1995, 12, 17, 2, 24, 0, 0, time.UTC)' date_string: - input: - shell: 'Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + shell: "Date('Sun, 17 Dec 1995 03:24:00 GMT')" output: python: >- datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc).strftime('%a %b @@ -1232,18 +1232,18 @@ tests: csharp: >- new DateTime(1995, 12, 17, 3, 24, 0).ToString("ddd MMM dd yyyy HH':'mm':'ss UTC") - javascript: 'Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "Date('Sun, 17 Dec 1995 03:24:00 GMT')" php: >- (new UTCDateTime(819170640000))->toDateTime()->format(\DateTimeInterface::RFC3339_EXTENDED) - ruby: 'Time.utc(1995, 12, 17, 3, 24, 0).strftime(''%a %b %d %Y %H:%M:%S %Z'')' + ruby: "Time.utc(1995, 12, 17, 3, 24, 0).strftime('%a %b %d %Y %H:%M:%S %Z')" rust: >- DateTime::parse_rfc3339_str("1995-12-17T03:24:00.000Z")?.to_rfc3339_string() go: 'time.Date(1995, 12, 17, 3, 24, 0, 0, time.UTC)' - input: shell: Date(819167040000) output: - javascript: 'Date(''Sun, 17 Dec 1995 02:24:00 GMT'')' + javascript: "Date('Sun, 17 Dec 1995 02:24:00 GMT')" python: >- datetime(1995, 12, 17, 2, 24, 0, tzinfo=timezone.utc).strftime('%a %b %d %Y %H:%M:%S %Z') @@ -1256,14 +1256,14 @@ tests: php: >- (new UTCDateTime(819167040000))->toDateTime()->format(\DateTimeInterface::RFC3339_EXTENDED) - ruby: 'Time.utc(1995, 12, 17, 2, 24, 0).strftime(''%a %b %d %Y %H:%M:%S %Z'')' + ruby: "Time.utc(1995, 12, 17, 2, 24, 0).strftime('%a %b %d %Y %H:%M:%S %Z')" rust: >- DateTime::parse_rfc3339_str("1995-12-17T02:24:00.000Z")?.to_rfc3339_string() go: 'time.Date(1995, 12, 17, 2, 24, 0, 0, time.UTC)' - input: shell: 'Date(1995, 11, 17)' output: - javascript: 'Date(''Sun, 17 Dec 1995 00:00:00 GMT'')' + javascript: "Date('Sun, 17 Dec 1995 00:00:00 GMT')" python: >- datetime(1995, 12, 17, 0, 0, 0, tzinfo=timezone.utc).strftime('%a %b %d %Y %H:%M:%S %Z') @@ -1276,29 +1276,29 @@ tests: php: >- (new UTCDateTime(819158400000))->toDateTime()->format(\DateTimeInterface::RFC3339_EXTENDED) - ruby: 'Time.utc(1995, 12, 17, 0, 0, 0).strftime(''%a %b %d %Y %H:%M:%S %Z'')' + ruby: "Time.utc(1995, 12, 17, 0, 0, 0).strftime('%a %b %d %Y %H:%M:%S %Z')" rust: >- DateTime::parse_rfc3339_str("1995-12-17T00:00:00.000Z")?.to_rfc3339_string() go: 'time.Date(1995, 12, 17, 0, 0, 0, 0, time.UTC)' ISODate: - input: - shell: 'new ISODate(''1995-12-17T03:24:00.000Z'')' + shell: "new ISODate('1995-12-17T03:24:00.000Z')" output: python: 'datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819170640000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 0)' - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" php: new UTCDateTime(819170640000) ruby: 'Time.utc(1995, 12, 17, 3, 24, 0)' rust: 'DateTime::parse_rfc3339_str("1995-12-17T03:24:00.000Z")?' go: 'time.Date(1995, 12, 17, 3, 24, 0, 0, time.UTC)' - input: - shell: 'ISODate(''1995-12-17T03:24:00.000Z'')' + shell: "ISODate('1995-12-17T03:24:00.000Z')" output: python: 'datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819170640000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 0)' - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" php: new UTCDateTime(819170640000) ruby: 'Time.utc(1995, 12, 17, 3, 24, 0)' rust: 'DateTime::parse_rfc3339_str("1995-12-17T03:24:00.000Z")?' @@ -1332,7 +1332,7 @@ tests: input: shell: RegExp('') output: - javascript: 'new RegExp(''(?:)'')' + javascript: "new RegExp('(?:)')" python: 're.compile(r"(?:)")' java: 'Pattern.compile("(?:)")' csharp: 'new Regex("(?:)")' @@ -1354,9 +1354,9 @@ tests: go: 'primitive.Regex{Pattern: "abc"}' - description: regex object with im flags as args input: - shell: 'new RegExp(''ab+c'', ''im'')' + shell: "new RegExp('ab+c', 'im')" output: - javascript: 'new RegExp(''ab+c'', ''im'')' + javascript: "new RegExp('ab+c', 'im')" python: re.compile(r"ab+c(?im)") java: Pattern.compile("ab+c(?im)") csharp: new Regex("(?im)ab+c") @@ -1366,9 +1366,9 @@ tests: go: 'primitive.Regex{Pattern: "ab+c", Options: "im"}' - description: regex object with ig flags as args input: - shell: 'new RegExp(''ab+c'', ''ig'')' + shell: "new RegExp('ab+c', 'ig')" output: - javascript: 'new RegExp(''ab+c'', ''gi'')' + javascript: "new RegExp('ab+c', 'gi')" python: re.compile(r"ab+c(?is)") java: Pattern.compile("ab+c(?i)") csharp: new Regex("(?i)ab+c") @@ -1452,7 +1452,7 @@ tests: input: shell: /ab+c/ig output: - javascript: 'new RegExp(''ab+c'', ''gi'')' + javascript: "new RegExp('ab+c', 'gi')" python: re.compile(r"ab+c(?is)") java: Pattern.compile("ab+c(?i)") csharp: new Regex("(?i)ab+c") @@ -1462,9 +1462,9 @@ tests: go: 'primitive.Regex{Pattern: "ab+c", Options: "gi"}' - description: regex object with regex literal arg input: - shell: 'new RegExp(/ab+c/, ''i'')' + shell: "new RegExp(/ab+c/, 'i')" output: - javascript: 'new RegExp(''ab+c'', ''i'')' + javascript: "new RegExp('ab+c', 'i')" python: re.compile(r"ab+c(?i)") java: Pattern.compile("ab+c(?i)") csharp: new Regex("(?i)ab+c") diff --git a/packages/bson-transpilers/test/yaml/non-idiomatic.yaml b/packages/bson-transpilers/test/yaml/non-idiomatic.yaml index 19f2217b02a..acd4da6879c 100644 --- a/packages/bson-transpilers/test/yaml/non-idiomatic.yaml +++ b/packages/bson-transpilers/test/yaml/non-idiomatic.yaml @@ -19,13 +19,13 @@ tests: go: 'bson.D{{"x", 1}}' - description: Doc with trailing comma input: - shell: '{x: ''x''}' + shell: "{x: 'x'}" output: java: 'new Document("x", "x")' go: 'bson.D{{"x", "x"}}' - description: Doc with array input: - shell: '{x: [''x'', ''y'']}' + shell: "{x: ['x', 'y']}" output: java: 'new Document("x", Arrays.asList("x", "y"))' go: |- @@ -39,7 +39,7 @@ tests: } - description: Doc with subdoc input: - shell: '{x: {y: ''x''}}' + shell: "{x: {y: 'x'}}" output: java: 'new Document("x", new Document("y", "x"))' go: 'bson.D{{"x", bson.D{{"y", "x"}}}}' @@ -51,7 +51,7 @@ tests: go: 'bson.D{}' - description: Doc with declaration input: - shell: '{x: ObjectId(''5ab901c29ee65f5c8550c5b9'')}' + shell: "{x: ObjectId('5ab901c29ee65f5c8550c5b9')}" output: go: |- var objectIDFromHex = func(hex string) primitive.ObjectID { @@ -65,7 +65,7 @@ tests: bson.D{{"x", objectIDFromHex("5ab901c29ee65f5c8550c5b9")}} - description: Two items in document input: - shell: '{x: ''x'', n: ''4''}' + shell: "{x: 'x', n: '4'}" output: java: |- new Document("x", "x") @@ -124,7 +124,7 @@ tests: } - description: Array with subdoc input: - shell: '[''x'', { settings: ''http2'' }]' + shell: "['x', { settings: 'http2' }]" output: java: |- Arrays.asList("x", diff --git a/packages/bson-transpilers/test/yaml/partial.yaml b/packages/bson-transpilers/test/yaml/partial.yaml index 5d7876eee65..8f1f92fa9e4 100644 --- a/packages/bson-transpilers/test/yaml/partial.yaml +++ b/packages/bson-transpilers/test/yaml/partial.yaml @@ -521,7 +521,7 @@ tests: java: Decimal128.parse("5.3E-6175").toString csharp: Decimal128.Parse("5.3E-6175").ToString php: (string) new Decimal128('5.3E-6175') - ruby: 'BSON::Decimal128.new(''5.3E-6175'').to_s' + ruby: "BSON::Decimal128.new('5.3E-6175').to_s" go: |- var parseDecimal128 = func(str string) primitive.Decimal128 { d128, err := primitive.ParseDecimal128(str) @@ -646,32 +646,32 @@ tests: shell: BSONSymbol('2').valueOf output: javascript: new BSONSymbol('2').valueOf - python: '''2''' + python: "'2'" java: new Symbol("2").getSymbol csharp: '"2"' - php: '''2''' - ruby: ':''2''' + php: "'2'" + ruby: ":'2'" go: '' rust: 'Bson::Symbol("2").as_symbol().unwrap()' - input: shell: BSONSymbol('2').toString output: javascript: new BSONSymbol('2').toString - python: '''2''' + python: "'2'" java: new Symbol("2").toString csharp: '"2"' - php: '''2''' - ruby: '''2''' + php: "'2'" + ruby: "'2'" go: '' rust: 'Bson::Symbol("2").as_symbol().unwrap()' - input: shell: BSONSymbol('2').inspect output: javascript: new BSONSymbol('2').inspect - python: '''2''' + python: "'2'" java: new Symbol("2").getSymbol csharp: '"2"' - php: '''2''' - ruby: ':''2''.inspect' + php: "'2'" + ruby: ":'2'.inspect" go: '' rust: 'format!("{:?}", Bson::Symbol("2"))' diff --git a/packages/compass-e2e-tests/.prettierignore b/packages/compass-e2e-tests/.prettierignore index 104b57fc109..3f0e8eed2a2 100644 --- a/packages/compass-e2e-tests/.prettierignore +++ b/packages/compass-e2e-tests/.prettierignore @@ -3,3 +3,7 @@ fixtures .nyc_output coverage + +# Generated files +electron-versions.json +write-electron-versions.js diff --git a/packages/compass/.prettierignore b/packages/compass/.prettierignore index 7a1718f5dc6..57051100119 100644 --- a/packages/compass/.prettierignore +++ b/packages/compass/.prettierignore @@ -3,3 +3,6 @@ dist coverage build src/deps + +# Generated +THIRD-PARTY-NOTICES.md diff --git a/packages/hadron-build/.eslintrc b/packages/hadron-build/.eslintrc index 7365f2aeaa1..367578bba00 100644 --- a/packages/hadron-build/.eslintrc +++ b/packages/hadron-build/.eslintrc @@ -7,9 +7,7 @@ "ecmaVersion": 2020 }, "extends": ["@mongodb-js/eslint-config-compass/plugin"], - "plugins": [ - "mocha" - ], + "plugins": ["mocha"], "rules": { "mocha/no-mocha-arrows": 0, "mocha/no-setup-in-describe": 0, diff --git a/packages/hadron-build/.prettierignore b/packages/hadron-build/.prettierignore new file mode 100644 index 00000000000..fce9904de74 --- /dev/null +++ b/packages/hadron-build/.prettierignore @@ -0,0 +1 @@ +test/fixtures/ \ No newline at end of file diff --git a/packages/hadron-build/.prettierrc.json b/packages/hadron-build/.prettierrc.json new file mode 100644 index 00000000000..18853d1532e --- /dev/null +++ b/packages/hadron-build/.prettierrc.json @@ -0,0 +1 @@ +"@mongodb-js/prettier-config-compass" diff --git a/packages/hadron-build/README.md b/packages/hadron-build/README.md index 7394ed59470..82a0fd19b65 100644 --- a/packages/hadron-build/README.md +++ b/packages/hadron-build/README.md @@ -38,7 +38,6 @@ Options: --help Show help [boolean] ``` - ## Configuration ```json @@ -69,12 +68,11 @@ Options: "test-check-ci": "npm run test", "compile-ui": "hadron-build ui", "fmt": "hadron-build fmt", - "release": "hadron-build release", + "release": "hadron-build release" } } ``` - ### build.win32 #### build.win32.icon @@ -117,7 +115,7 @@ var appBundleId = 'com.mongodb.hadron'; ### Windows -- `C:\Users\${username}\AppData\Local\${_.titlecase(productName)}`: App installation path. Why in a temp dir? Allows installation and auto update without requiring Administrator. +- `C:\Users\${username}\AppData\Local\${_.titlecase(productName)}`: App installation path. Why in a temp dir? Allows installation and auto update without requiring Administrator. - `C:\Users\${username}\AppData\Roaming\${productName}`: The `[userData][electron-app-getPath]` directory - `C:\Users\${username}\AppData\Local\SquirrelTemp\SquirrelSetup.log`: Squirrel.Windows installation log. Global for any app installation that's using Squirrel.Windows. - `C:\Users\${username}\AppData\Local\${_.titlecase(productName)}\SquirrelSetup.log`: Application level Squirrel.Windows log @@ -135,6 +133,7 @@ What you can expect from a successful installation: ``` The following exception might be scary, but it's purely informational and ok to ignore. + ``` 2016-06-24 09:46:12> CheckForUpdateImpl: Couldn't write out staging user ID, this user probably shouldn't get beta anything: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\${username}\AppData\Local\${_.titlecase(productName)}\packages\.betaId'. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) @@ -191,6 +190,7 @@ The actual installation: ``` Another exception that might be scary, but it's purely informational and ok to ignore. + ``` 2016-06-24 09:46:18> ApplyReleasesImpl: Couldn't rewrite shim RegKey, most likely no apps are shimmed: System.NullReferenceException: Object reference not set to an instance of an object. at Squirrel.UpdateManager.ApplyReleasesImpl.b__ee(RegistryView view) @@ -199,6 +199,7 @@ Another exception that might be scary, but it's purely informational and ok to i ``` And then finally + ``` 2016-06-24 09:46:18> ApplyReleasesImpl: cleanDeadVersions: for version ${version} 2016-06-24 09:46:18> ApplyReleasesImpl: cleanDeadVersions: exclude folder app-${version} @@ -289,6 +290,6 @@ Which assets are generated depends on the target platform. [npm_url]: https://npmjs.org/package/hadron-build [npm-scripts]: https://docs.npmjs.com/misc/scripts [electron-mocha]: https://github.com/jprichardson/electron-mocha -[electron-app-getPath]: https://github.com/electron/electron/blob/78193a0608b5fa55161e95b7b3845b6bd85af377/docs/api/app.md#appgetpathname +[electron-app-getpath]: https://github.com/electron/electron/blob/78193a0608b5fa55161e95b7b3845b6bd85af377/docs/api/app.md#appgetpathname [appveyor_img]: https://ci.appveyor.com/api/projects/status/n9yqrfsf17s4g1ss?svg=true [appveyor_url]: https://ci.appveyor.com/project/imlucas/hadron-build diff --git a/packages/hadron-build/cli.js b/packages/hadron-build/cli.js index b2018ad4cbc..00f494c1a9b 100755 --- a/packages/hadron-build/cli.js +++ b/packages/hadron-build/cli.js @@ -15,7 +15,7 @@ const yargs = require('yargs') .strict() .env() .help('help') - .fail(function(msg, err) { + .fail(function (msg, err) { cli.abortIfError(err); cli.error(`${msg}\n\n`); yargs.showHelp(); diff --git a/packages/hadron-build/commands/download.js b/packages/hadron-build/commands/download.js index 0caf486e424..fd0468f4657 100644 --- a/packages/hadron-build/commands/download.js +++ b/packages/hadron-build/commands/download.js @@ -15,12 +15,12 @@ const describe = 'Download all `release` assets from evergreen bucket'; const builder = { dir: { description: 'Project root directory', - default: process.cwd() + default: process.cwd(), }, version: { description: 'Target version', - default: require(path.join(process.cwd(), 'package.json')).version - } + default: require(path.join(process.cwd(), 'package.json')).version, + }, }; const handler = function handler(argv) { @@ -34,7 +34,7 @@ const handler = function handler(argv) { return assets; }); - const downloads = assetsToDownload.map(async(asset) => { + const downloads = assetsToDownload.map(async (asset) => { const shortPath = path.relative(root, asset.path); cli.info( `${asset.name}: download from evg bucket started (path: ${shortPath})` @@ -50,5 +50,5 @@ module.exports = { command, describe, builder, - handler + handler, }; diff --git a/packages/hadron-build/commands/info.js b/packages/hadron-build/commands/info.js index 7465ca13519..52ec0afb105 100644 --- a/packages/hadron-build/commands/info.js +++ b/packages/hadron-build/commands/info.js @@ -14,44 +14,45 @@ exports.describe = 'Display project info.'; exports.builder = { verbose: { - describe: 'Confused or trying to track down a bug and want lots of debug output?', + describe: + 'Confused or trying to track down a bug and want lots of debug output?', type: 'boolean', - default: false + default: false, }, format: { choices: ['table', 'yaml', 'json'], description: 'What output format would you like?', - default: 'table' + default: 'table', }, flatten: { description: 'Flatten the config object into dot notation', type: 'boolean', - default: false + default: false, }, dir: { description: 'Project root directory', - default: process.cwd() + default: process.cwd(), }, version: { description: 'Target version', - default: undefined + default: undefined, }, platform: { description: 'Target platform', - default: undefined + default: undefined, }, arch: { description: 'Target arch', - default: undefined + default: undefined, }, out: { description: 'Output file path', - default: undefined - } + default: undefined, + }, }; const serialize = (target) => { - return _.omitBy(target, function(value) { + return _.omitBy(target, function (value) { return _.isFunction(value) || _.isRegExp(value) || _.isUndefined(value); }); }; @@ -61,13 +62,16 @@ const toTable = (target) => { * Print the assembled `CONFIG` data as a nice table. */ var configTable = new Table({ - head: ['Key', 'Value'] + head: ['Key', 'Value'], }); - _.forIn(target, function(value, key) { - configTable.push([key, inspect(value, { - depth: null, - colors: true - })]); + _.forIn(target, function (value, key) { + configTable.push([ + key, + inspect(value, { + depth: null, + colors: true, + }), + ]); }); return configTable.toString(); }; @@ -76,7 +80,7 @@ exports.handler = (argv) => { let target = new Target(argv.dir, { version: argv.version, platform: argv.platform, - arch: argv.arch + arch: argv.arch, }); if (argv.flatten) { diff --git a/packages/hadron-build/commands/release.d.ts b/packages/hadron-build/commands/release.d.ts index b93f8d7b484..480c335ffc8 100644 --- a/packages/hadron-build/commands/release.d.ts +++ b/packages/hadron-build/commands/release.d.ts @@ -1,2 +1,2 @@ export function run(argv: any, done: any): void; -export function compileAssets(CONFIG: any, done: any): void; \ No newline at end of file +export function compileAssets(CONFIG: any, done: any): void; diff --git a/packages/hadron-build/commands/release.js b/packages/hadron-build/commands/release.js index 567e9377f6e..d13d19b8684 100644 --- a/packages/hadron-build/commands/release.js +++ b/packages/hadron-build/commands/release.js @@ -43,32 +43,34 @@ exports.describe = ':shipit:'; */ const createBrandedApplication = (CONFIG, done) => { cli.debug('running electron-packager'); - packager(CONFIG.packagerOptions).then((res) => { - cli.debug('Packager result is: ' + JSON.stringify(res, null, 2)); + packager(CONFIG.packagerOptions) + .then((res) => { + cli.debug('Packager result is: ' + JSON.stringify(res, null, 2)); - if (CONFIG.platform !== 'darwin') { - return done(null, true); - } - - /** - * @see https://jira.mongodb.org/browse/INT-1836 - */ - const atomIcns = path.join(CONFIG.resources, 'atom.icns'); - const electronIcns = path.join(CONFIG.resources, 'electron.icns'); - fs.exists(atomIcns, function(exists) { - if (!exists) { + if (CONFIG.platform !== 'darwin') { return done(null, true); } - fs.remove(electronIcns, function(_err) { - if (_err) { - return done(_err); + + /** + * @see https://jira.mongodb.org/browse/INT-1836 + */ + const atomIcns = path.join(CONFIG.resources, 'atom.icns'); + const electronIcns = path.join(CONFIG.resources, 'electron.icns'); + fs.exists(atomIcns, function (exists) { + if (!exists) { + return done(null, true); } - fs.move(atomIcns, electronIcns, done); + fs.remove(electronIcns, function (_err) { + if (_err) { + return done(_err); + } + fs.move(atomIcns, electronIcns, done); + }); }); + }) + .catch((err) => { + return done(err); }); - }).catch((err) => { - return done(err); - }); }; /** @@ -85,7 +87,7 @@ const symlinkExecutable = (CONFIG, done) => { const newPath = path.join(CONFIG.appPath, 'Contents', 'MacOS'); cli.debug('chdir', newPath); process.chdir(newPath); - fs.ensureSymlink(CONFIG.productName, 'Electron', function(_err) { + fs.ensureSymlink(CONFIG.productName, 'Electron', function (_err) { process.chdir(cwd); if (_err) { return done(_err); @@ -116,8 +118,8 @@ const cleanupBrandedApplicationScaffold = (CONFIG, done) => { cli.debug('cleaning up extraneous files from template'); del(globsToDelete, { - force: true - }).then(function(paths) { + force: true, + }).then(function (paths) { cli.debug(format('%d extraneous files removed', paths.length)); done(null, true); }, done); @@ -130,9 +132,11 @@ const cleanupBrandedApplicationScaffold = (CONFIG, done) => { const writeLicenseFile = (CONFIG, done) => { try { const contents = fs.readFileSync(path.join(CONFIG.dir, 'LICENSE')); - CONFIG.write('LICENSE', contents).then(() => { - cli.debug(format('LICENSE written')); - }).then(() => done(null, true)); + CONFIG.write('LICENSE', contents) + .then(() => { + cli.debug(format('LICENSE written')); + }) + .then(() => done(null, true)); } catch (err) { done(err); } @@ -148,9 +152,11 @@ const copy3rdPartyNoticesFile = (CONFIG, done) => { try { const noticesPath = path.join(CONFIG.dir, 'THIRD-PARTY-NOTICES.md'); const contents = fs.readFileSync(noticesPath); - CONFIG.write('THIRD-PARTY-NOTICES.md', contents).then(() => { - cli.debug(format('THIRD-PARTY-NOTICES.md written')); - }).then(() => done(null, true)); + CONFIG.write('THIRD-PARTY-NOTICES.md', contents) + .then(() => { + cli.debug(format('THIRD-PARTY-NOTICES.md written')); + }) + .then(() => done(null, true)); } catch (err) { done(err); } @@ -164,12 +170,19 @@ const copySBOMFile = (CONFIG, done) => { try { const sbomPath = path.join(CONFIG.dir, '..', '..', '.sbom', 'sbom.json'); const contents = fs.readFileSync(sbomPath); - CONFIG.write('.sbom.json', contents).then(() => { - cli.debug(format('.sbom.json written')); - }).then(() => done(null, true)); + CONFIG.write('.sbom.json', contents) + .then(() => { + cli.debug(format('.sbom.json written')); + }) + .then(() => done(null, true)); } catch (err) { - if (err.code === 'ENOENT' && !process.env.COMPASS_WAS_COMPILED_AND_HAS_SBOM) { - cli.debug(format('Skipping sbom.json writing because the file is missing')); + if ( + err.code === 'ENOENT' && + !process.env.COMPASS_WAS_COMPILED_AND_HAS_SBOM + ) { + cli.debug( + format('Skipping sbom.json writing because the file is missing') + ); return done(null, true); } done(err); @@ -179,7 +192,10 @@ const copySBOMFile = (CONFIG, done) => { // Remove a malicious link from chromium license // See: COMPASS-5333 const fixCompass5333 = (CONFIG, done) => { - const chromiumLicensePath = path.join(CONFIG.distRoot(), 'LICENSES.chromium.html'); + const chromiumLicensePath = path.join( + CONFIG.distRoot(), + 'LICENSES.chromium.html' + ); const chromiumLicense = fs.readFileSync(chromiumLicensePath, 'utf8'); @@ -191,7 +207,6 @@ const fixCompass5333 = (CONFIG, done) => { done(); }; - /** * Replace the version file `electron-packager` creates w/ a version * file specific to the project. @@ -208,13 +223,13 @@ const writeVersionFile = (CONFIG, done) => { const version = CONFIG.packagerOptions.electronVersion; return CONFIG.write('version', version) - .then(dest => { + .then((dest) => { cli.debug(format('version `%s` written to `%s`', version, dest)); if (done) { done(null, true); } }) - .catch(err => { + .catch((err) => { if (done) { return done(err); } @@ -231,14 +246,14 @@ const writeVersionFile = (CONFIG, done) => { * @param {Function} done * @api public */ -const transformPackageJson = async(CONFIG, done) => { +const transformPackageJson = async (CONFIG, done) => { const PACKAGE_JSON_DEST = path.join(CONFIG.resourcesAppDir, 'package.json'); const packageKeysToRemove = [ 'devDependencies', 'dependency-check', 'repository', 'check', - 'config.hadron.build' + 'config.hadron.build', ]; let contents = _.omit(CONFIG.pkg, packageKeysToRemove); @@ -246,7 +261,7 @@ const transformPackageJson = async(CONFIG, done) => { _.assign(contents, { channel: CONFIG.channel, version: CONFIG.version, - distribution: CONFIG.distribution + distribution: CONFIG.distribution, }); /** @@ -255,7 +270,7 @@ const transformPackageJson = async(CONFIG, done) => { */ const distributions = contents.config.hadron.distributions; _.assign(contents, { - productName: CONFIG.productName + productName: CONFIG.productName, }); distributions[contents.distribution].productName = CONFIG.productName; distributions[contents.distribution].metrics_intercom_app_id = @@ -282,7 +297,7 @@ const transformPackageJson = async(CONFIG, done) => { for (const depType of [ 'dependencies', 'peerDependencies', - 'optionalDependencies' + 'optionalDependencies', ]) { for (const depName of Object.keys(contents[depType] || {})) { const depEdge = packageNode.edgesOut.get(depName); @@ -320,7 +335,7 @@ const transformPackageJson = async(CONFIG, done) => { * @param {Function} done * @api public */ -const installDependencies = util.callbackify(async(CONFIG) => { +const installDependencies = util.callbackify(async (CONFIG) => { let originalPackagePath = CONFIG.resourcesAppDir; let appPackagePath = originalPackagePath; @@ -333,8 +348,11 @@ const installDependencies = util.callbackify(async(CONFIG) => { appPackagePath = path.join( process.env.EVERGREEN_WORKDIR.replace(/^\/cygdrive\/(\w)\//, '$1:\\'), 'src', - 'app'); - cli.debug(`Moving app package path from ${originalPackagePath} to ${appPackagePath}`); + 'app' + ); + cli.debug( + `Moving app package path from ${originalPackagePath} to ${appPackagePath}` + ); await fs.promises.rename(originalPackagePath, appPackagePath); } @@ -342,7 +360,7 @@ const installDependencies = util.callbackify(async(CONFIG) => { const opts = { cwd: appPackagePath, - shell: true + shell: true, }; await run.async('npm', ['install', '--production'], opts); @@ -369,7 +387,7 @@ const installDependencies = util.callbackify(async(CONFIG) => { // --build-from-source flag to rebuild-install package, but we can force // rebuild by providing a tag prefix that will make prebuild think that // prebuilt files don't exist - prebuildTagPrefix: 'totally-not-a-real-prefix-to-force-rebuild' + prebuildTagPrefix: 'totally-not-a-real-prefix-to-force-rebuild', }; // We can not force rebuild mongodb-client-encryption locally, but we need to @@ -377,9 +395,7 @@ const installDependencies = util.callbackify(async(CONFIG) => { // so let's run rebuild again. const clientEncryptionRebuildConfig = { ...sharedRebuildConfig, - onlyModules: [ - 'mongodb-client-encryption', - ], + onlyModules: ['mongodb-client-encryption'], }; await rebuild(allModulesRebuildConfig); @@ -387,8 +403,10 @@ const installDependencies = util.callbackify(async(CONFIG) => { cli.debug('Native modules rebuilt against Electron.'); if (originalPackagePath !== appPackagePath) { - cli.debug(`Moving app package back to ${originalPackagePath} from ${appPackagePath}`); - await fs.promises.rename(appPackagePath, originalPackagePath) + cli.debug( + `Moving app package back to ${originalPackagePath} from ${appPackagePath}` + ); + await fs.promises.rename(appPackagePath, originalPackagePath); } }); @@ -415,7 +433,7 @@ const removeDevelopmentFiles = (CONFIG, done) => { '.jsfmt*', '.git*', 'report*', - '*.less' + '*.less', ]; var globsToDelete = [ @@ -428,13 +446,15 @@ const removeDevelopmentFiles = (CONFIG, done) => { path.join(CONFIG.resourcesAppDir, '{' + DOT_FILES.join(',') + '}'), // node-gyp creates symlinks for build purposes, but doesn't clean them up // afterwards https://github.com/nodejs/node-gyp/issues/2713 - path.join(CONFIG.resourcesAppDir, '**', 'node_gyp_bins') + path.join(CONFIG.resourcesAppDir, '**', 'node_gyp_bins'), ]; - cli.debug('Checking for extraneous files to remove:\n' + - JSON.stringify(globsToDelete, null, 2)); + cli.debug( + 'Checking for extraneous files to remove:\n' + + JSON.stringify(globsToDelete, null, 2) + ); - del(globsToDelete).then(function(paths) { + del(globsToDelete).then(function (paths) { if (paths.length === 0) { cli.debug('No extraneous files to remove'); } else { @@ -465,22 +485,25 @@ const createApplicationAsar = (CONFIG, done) => { ...CONFIG.asar, unpack: `{${['*.node', '**/vendor/**'] .concat(CONFIG.asar.unpack) - .join(',')}}` + .join(',')}}`, }; var src = CONFIG.resourcesAppDir; var dest = `${CONFIG.resourcesAppDir}.asar`; - asar.createPackageWithOptions(src, dest, opts).then(() => { - del(src, { force: true }).then(() => { + asar + .createPackageWithOptions(src, dest, opts) + .then(() => { + del(src, { force: true }).then(() => { + done(); + }, done); + }) + .catch((err) => { + if (err) { + cli.error(err); + } done(); - }, done); - }).catch((err) => { - if (err) { - cli.error(err); - } - done(); - }); + }); }; /** @@ -492,7 +515,9 @@ const createApplicationAsar = (CONFIG, done) => { */ const createBrandedInstaller = (CONFIG, done) => { cli.debug('Creating installer'); - CONFIG.createInstaller().then(() => done()).catch(done); + CONFIG.createInstaller() + .then(() => done()) + .catch(done); }; const writeConfigToJson = (CONFIG, done) => { @@ -506,19 +531,18 @@ const writeConfigToJson = (CONFIG, done) => { exports.builder = { dir: { description: 'Project root directory', - default: process.cwd() + default: process.cwd(), }, skip_installer: { description: 'Skip installer generation', - default: false + default: false, }, no_asar: { description: 'Do not package application source to .asar bundle', - default: false - } + default: false, + }, }; - /** * @param {any} argv Parsed command arguments * @param {Function} done Callback @@ -532,17 +556,18 @@ exports.run = async (argv, done) => { cli.debug(`Building distribution: ${target.distribution}`); const task = (name, fn) => { - return () => new Promise((resolve, reject) => { - cli.debug(`start: ${name}`); - fn(target, (err) => { - if (err) { - cli.error(err); - return reject(err); - } - cli.debug(`completed: ${name}`); - return resolve(); + return () => + new Promise((resolve, reject) => { + cli.debug(`start: ${name}`); + fn(target, (err) => { + if (err) { + cli.error(err); + return reject(err); + } + cli.debug(`completed: ${name}`); + return resolve(); + }); }); - }); }; const skipInstaller = @@ -550,31 +575,37 @@ exports.run = async (argv, done) => { const noAsar = process.env.NO_ASAR === 'true' || argv.no_asar; - const tasks = _.flatten([ - task('copy npmrc from root', ({ dir }, done) => { - fs.cp( - path.resolve(dir, '..', '..', '.npmrc'), - path.resolve(dir, '.npmrc'), - done - ); - }), - task('create branded application', createBrandedApplication), - task('create executable symlink', symlinkExecutable), - task('cleanup branded application scaffold', cleanupBrandedApplicationScaffold), - task('write version file', writeVersionFile), - task('transform package.json', transformPackageJson), - task('install dependencies', installDependencies), - task('fix COMPASS-5333', fixCompass5333), - task('write license file', writeLicenseFile), - task('write 3rd party notices file', copy3rdPartyNoticesFile), - task('write sbom file', copySBOMFile), - task('remove development files', removeDevelopmentFiles), - !noAsar && task('create application asar', createApplicationAsar), - !skipInstaller && task('create branded installer', createBrandedInstaller), - task('create application zip', createApplicationZip), - task('sign zip', signArchive), - task('store build configuration as json', writeConfigToJson) - ].filter(Boolean)); + const tasks = _.flatten( + [ + task('copy npmrc from root', ({ dir }, done) => { + fs.cp( + path.resolve(dir, '..', '..', '.npmrc'), + path.resolve(dir, '.npmrc'), + done + ); + }), + task('create branded application', createBrandedApplication), + task('create executable symlink', symlinkExecutable), + task( + 'cleanup branded application scaffold', + cleanupBrandedApplicationScaffold + ), + task('write version file', writeVersionFile), + task('transform package.json', transformPackageJson), + task('install dependencies', installDependencies), + task('fix COMPASS-5333', fixCompass5333), + task('write license file', writeLicenseFile), + task('write 3rd party notices file', copy3rdPartyNoticesFile), + task('write sbom file', copySBOMFile), + task('remove development files', removeDevelopmentFiles), + !noAsar && task('create application asar', createApplicationAsar), + !skipInstaller && + task('create branded installer', createBrandedInstaller), + task('create application zip', createApplicationZip), + task('sign zip', signArchive), + task('store build configuration as json', writeConfigToJson), + ].filter(Boolean) + ); try { for (const task of tasks) { @@ -597,7 +628,7 @@ exports.handler = (argv) => { exports.run(argv, (_err, CONFIG) => { cli.abortIfError(_err); cli.ok(`${CONFIG.assets.length} assets successfully built`); - CONFIG.assets.map(function(asset) { + CONFIG.assets.map(function (asset) { cli.info(asset.path); }); }); diff --git a/packages/hadron-build/commands/upload.js b/packages/hadron-build/commands/upload.js index 1a1789749e5..340847b6637 100644 --- a/packages/hadron-build/commands/upload.js +++ b/packages/hadron-build/commands/upload.js @@ -19,7 +19,7 @@ const { getKeyPrefix, downloadManifest, uploadAsset, - uploadManifest + uploadManifest, } = require('../lib/download-center'); const cli = require('mongodb-js-cli')('hadron-build:upload'); @@ -28,7 +28,7 @@ const root = path.resolve(__dirname, '..', '..', '..'); async function checkAssetsExist(paths) { await Promise.all( - paths.map(async(assetPath) => { + paths.map(async (assetPath) => { const stats = await fs.stat(assetPath); if (!stats.isFile()) { throw new TypeError(`Not a file at path ${assetPath}`); @@ -48,12 +48,12 @@ function isStable(id) { const distributionLabel = { 'compass-readonly': 'Readonly Edition', - 'compass-isolated': 'Isolated Edition' + 'compass-isolated': 'Isolated Edition', }; const channelLabel = { stable: 'Stable', - beta: 'Beta' + beta: 'Beta', }; function versionId(version, distribution = '') { @@ -129,10 +129,10 @@ function generateVersionsForAssets(assets, version, channel) { config.platform, asset.name ), - download_link: link + download_link: link, }; }); - }) + }), }; }); } @@ -145,13 +145,13 @@ async function publishGitHubRelease(assets, version, channel, dryRun) { } const octokit = new Octokit({ - auth: process.env.GITHUB_TOKEN + auth: process.env.GITHUB_TOKEN, }); const repo = new GithubRepo( { owner: 'mongodb-js', - repo: 'compass' + repo: 'compass', }, octokit ); @@ -161,7 +161,7 @@ async function publishGitHubRelease(assets, version, channel, dryRun) { const release = { name: version, tag: releaseTag, - notes: `Release v${version}` + notes: `Release v${version}`, }; cli.info('Updating draft release…'); @@ -214,10 +214,9 @@ async function publishGitHubRelease(assets, version, channel, dryRun) { } async function uploadAssetsToDownloadCenter(assets, channel, dryRun) { - const assetsToUpload = assets - .flatMap((item) => { - return item.assets; - }); + const assetsToUpload = assets.flatMap((item) => { + return item.assets; + }); cli.info('Uploading assets to download center…'); @@ -227,7 +226,7 @@ async function uploadAssetsToDownloadCenter(assets, channel, dryRun) { }) ); - const uploads = assetsToUpload.map(async(asset) => { + const uploads = assetsToUpload.map(async (asset) => { cli.info( `${asset.name}: upload to download center started (path: ${path.relative( root, @@ -249,7 +248,7 @@ async function uploadAssetsToDownloadCenter(assets, channel, dryRun) { */ async function getLatestRelease(channel = 'stable') { const octokit = new Octokit({ - auth: process.env.GITHUB_TOKEN + auth: process.env.GITHUB_TOKEN, }); const page = 1; @@ -265,7 +264,7 @@ async function getLatestRelease(channel = 'stable') { owner: 'mongodb-js', repo: 'compass', per_page: 100, - page + page, } ); releases = data; @@ -341,7 +340,7 @@ async function updateManifest(dryRun) { previous_releases_link: '', development_releases_link: '', supported_browsers_link: '', - tutorial_link: '' + tutorial_link: '', }; if (isDeepStrictEqual(currentManifest, newManifest)) { @@ -371,22 +370,22 @@ const describe = 'Upload assets from `release`.'; const builder = { dir: { description: 'Project root directory', - default: process.cwd() + default: process.cwd(), }, version: { description: 'Target version', - default: require(path.join(process.cwd(), 'package.json')).version + default: require(path.join(process.cwd(), 'package.json')).version, }, manifest: { description: 'Upload download center manifest update for the target version (NOTE: This will will replace existing version for the channel with the provided one for all existing and newly added assets)', - default: false + default: false, }, ['dry-run']: { description: 'Does everything the real script will do without actually publishing assets to GH / download center', - default: process.env.npm_config_dry_run === 'true' - } + default: process.env.npm_config_dry_run === 'true', + }, }; const handler = function handler(argv) { @@ -430,7 +429,7 @@ const handler = function handler(argv) { return; } const channelToProjectMap = { - testing: 'beta' + testing: 'beta', }; const mappedChannel = channelToProjectMap[projectChannel] || projectChannel; if (channel !== mappedChannel) { @@ -461,5 +460,5 @@ module.exports = { uploadAssetsToDownloadCenter, getLatestRelease, getLatestReleaseVersions, - updateManifest + updateManifest, }; diff --git a/packages/hadron-build/index.js b/packages/hadron-build/index.js index e76cf08e3d4..dd1acfe43ab 100644 --- a/packages/hadron-build/index.js +++ b/packages/hadron-build/index.js @@ -1,5 +1,5 @@ 'use strict'; -exports = function() {}; +exports = function () {}; exports.release = require('./commands/release'); exports.upload = require('./commands/upload'); diff --git a/packages/hadron-build/lib/download-center.js b/packages/hadron-build/lib/download-center.js index 320e96518bd..b68ed07b3d1 100644 --- a/packages/hadron-build/lib/download-center.js +++ b/packages/hadron-build/lib/download-center.js @@ -22,13 +22,13 @@ const requireEnvironmentVariables = (keys) => { const getDownloadCenter = (bucketConfig) => { requireEnvironmentVariables([ 'DOWNLOAD_CENTER_AWS_ACCESS_KEY_ID', - 'DOWNLOAD_CENTER_AWS_SECRET_ACCESS_KEY' + 'DOWNLOAD_CENTER_AWS_SECRET_ACCESS_KEY', ]); return new DownloadCenter({ ...bucketConfig, accessKeyId: process.env.DOWNLOAD_CENTER_AWS_ACCESS_KEY_ID, - secretAccessKey: process.env.DOWNLOAD_CENTER_AWS_SECRET_ACCESS_KEY + secretAccessKey: process.env.DOWNLOAD_CENTER_AWS_SECRET_ACCESS_KEY, }); }; @@ -36,28 +36,28 @@ const getKeyPrefix = (channel) => { return channel && channel !== 'stable' ? `compass/${channel}` : 'compass'; }; -const uploadAsset = async(channel, asset) => { +const uploadAsset = async (channel, asset) => { const dlCenter = getDownloadCenter({ bucket: DOWNLOADS_BUCKET }); const objectKey = `${getKeyPrefix(channel)}/${asset.name}`; return dlCenter.uploadAsset(objectKey, fs.createReadStream(asset.path)); }; -const downloadManifest = async(key = MANIFEST_OBJECT_KEY) => { +const downloadManifest = async (key = MANIFEST_OBJECT_KEY) => { const dlCenter = getDownloadCenter({ bucket: MANIFEST_BUCKET }); return dlCenter.downloadConfig(key); }; -const uploadManifest = async(manifest) => { +const uploadManifest = async (manifest) => { const dlCenter = getDownloadCenter({ bucket: MANIFEST_BUCKET }); return dlCenter.uploadConfig(MANIFEST_OBJECT_KEY, manifest); }; const downloadAssetFromEvergreen = ({ name, path: dest }) => { // eslint-disable-next-line no-async-promise-executor - return new Promise(async(resolve, reject) => { + return new Promise(async (resolve, reject) => { requireEnvironmentVariables([ 'EVERGREEN_BUCKET_NAME', - 'EVERGREEN_BUCKET_KEY_PREFIX' + 'EVERGREEN_BUCKET_KEY_PREFIX', ]); const bucket = process.env.EVERGREEN_BUCKET_NAME; const key = `${process.env.EVERGREEN_BUCKET_KEY_PREFIX}/${name}`; @@ -77,5 +77,5 @@ module.exports = { uploadAsset, downloadManifest, uploadManifest, - downloadAssetFromEvergreen + downloadAssetFromEvergreen, }; diff --git a/packages/hadron-build/lib/mac-notary-service.js b/packages/hadron-build/lib/mac-notary-service.js index 9122024189d..a36198f3307 100644 --- a/packages/hadron-build/lib/mac-notary-service.js +++ b/packages/hadron-build/lib/mac-notary-service.js @@ -16,7 +16,7 @@ async function setupMacosNotary() { debug('downloading macnotary'); await download(process.env.MACOS_NOTARY_CLIENT_URL, 'macnotary', { extract: true, - strip: 1 // remove leading platform + arch directory + strip: 1, // remove leading platform + arch directory }); await fs.chmod('macnotary/macnotary', 0o755); // ensure +x is set } @@ -58,17 +58,31 @@ async function notarize(src, notarizeOptions) { try { // Step:2 - send the zip to notary service and save the result to signedArchive - debug(`sending file to notary service (bundle id = ${notarizeOptions.bundleId})`); - const macnotaryResult = await execFile(path.resolve('macnotary/macnotary'), [ - '-t', 'app', - '-m', 'notarizeAndSign', - '-u', process.env.MACOS_NOTARY_API_URL, - '-b', notarizeOptions.bundleId, - '-f', unsignedArchive, - '-o', signedArchive, - '--verify', - ...(notarizeOptions.macosEntitlements ? ['-e', notarizeOptions.macosEntitlements] : []) - ], execOpts); + debug( + `sending file to notary service (bundle id = ${notarizeOptions.bundleId})` + ); + const macnotaryResult = await execFile( + path.resolve('macnotary/macnotary'), + [ + '-t', + 'app', + '-m', + 'notarizeAndSign', + '-u', + process.env.MACOS_NOTARY_API_URL, + '-b', + notarizeOptions.bundleId, + '-f', + unsignedArchive, + '-o', + signedArchive, + '--verify', + ...(notarizeOptions.macosEntitlements + ? ['-e', notarizeOptions.macosEntitlements] + : []), + ], + execOpts + ); debug('macnotary result:', macnotaryResult.stdout, macnotaryResult.stderr); debug('ls', (await execFile('ls', ['-lh'], execOpts)).stdout); @@ -78,16 +92,23 @@ async function notarize(src, notarizeOptions) { debug(`unzipping with "unzip -u ${signedArchive}"`); await execFile('unzip', ['-u', signedArchive], execOpts); } catch (err) { - debug('full macnotary error output', inspect(err, { - maxArrayLength: Infinity, - maxStringLength: Infinity - })); + debug( + 'full macnotary error output', + inspect(err, { + maxArrayLength: Infinity, + maxStringLength: Infinity, + }) + ); throw err; } finally { // cleanup - remove signedArchive and unsignedArchive debug('ls', (await execFile('ls', ['-lh'], execOpts)).stdout); debug(`removing ${signedArchive} and ${unsignedArchive}`); - await execFile('rm', ['-r', signedArchive, unsignedArchive], execOpts).catch(err => { + await execFile( + 'rm', + ['-r', signedArchive, unsignedArchive], + execOpts + ).catch((err) => { debug('error cleaning up', err); }); } diff --git a/packages/hadron-build/lib/run.js b/packages/hadron-build/lib/run.js index 303cbc73c08..f2249aa178e 100644 --- a/packages/hadron-build/lib/run.js +++ b/packages/hadron-build/lib/run.js @@ -41,33 +41,45 @@ function run(cmd, args, opts, fn) { var output = []; var proc = spawn(cmd, args, opts); - proc.stdout.on('data', function(buf) { - buf.toString('utf-8').split('\n').map(function(line) { - debug(' %s> %s', cmd, line); - }); + proc.stdout.on('data', function (buf) { + buf + .toString('utf-8') + .split('\n') + .map(function (line) { + debug(' %s> %s', cmd, line); + }); output.push(buf); }); - proc.stderr.on('data', function(buf) { - buf.toString('utf-8').split('\n').map(function(line) { - debug(' %s> %s', cmd, line); - }); + proc.stderr.on('data', function (buf) { + buf + .toString('utf-8') + .split('\n') + .map(function (line) { + debug(' %s> %s', cmd, line); + }); output.push(buf); }); - proc.on('exit', function(code) { + proc.on('exit', function (code) { const _output = Buffer.concat(output).toString('utf-8'); if (code !== 0) { debug('command failed!', { cmd, output: _output }); - const error = new Error(`Command failed with exit code ${code}: ${cmd} ${args.join(' ')} [enable line-by-line output via 'DEBUG=hadron*']`); + const error = new Error( + `Command failed with exit code ${code}: ${cmd} ${args.join( + ' ' + )} [enable line-by-line output via 'DEBUG=hadron*']` + ); error.output = { output: _output, - [util.inspect.custom]() { return util.inspect(_output, { maxStringLength: Infinity }); } + [util.inspect.custom]() { + return util.inspect(_output, { maxStringLength: Infinity }); + }, }; fn(error); return; } debug('completed! %j', { - cmd: cmd + cmd: cmd, }); fn(null, _output); diff --git a/packages/hadron-build/lib/signtool.js b/packages/hadron-build/lib/signtool.js index 4966dc2689e..092029ad155 100644 --- a/packages/hadron-build/lib/signtool.js +++ b/packages/hadron-build/lib/signtool.js @@ -3,12 +3,11 @@ const path = require('path'); const debug = require('debug')('hadron-build:target'); const { sign: _garasign } = require('@mongodb-js/signing-utils'); -const canSign = () => ( +const canSign = () => process.env.GARASIGN_USERNAME && process.env.GARASIGN_PASSWORD && process.env.ARTIFACTORY_USERNAME && - process.env.ARTIFACTORY_PASSWORD -); + process.env.ARTIFACTORY_PASSWORD; /** * When using gpg to sign a file, it creates a signature file diff --git a/packages/hadron-build/lib/target.js b/packages/hadron-build/lib/target.js index e716adc35b8..873ba6c302c 100644 --- a/packages/hadron-build/lib/target.js +++ b/packages/hadron-build/lib/target.js @@ -7,7 +7,8 @@ const semver = require('semver'); const path = require('path'); const normalizePkg = require('normalize-package-data'); const parseGitHubRepoURL = require('parse-github-repo-url'); -const ffmpegAfterExtract = require('electron-packager-plugin-non-proprietary-codecs-ffmpeg').default; +const ffmpegAfterExtract = + require('electron-packager-plugin-non-proprietary-codecs-ffmpeg').default; const windowsInstallerVersion = require('./windows-installer-version'); const debug = require('debug')('hadron-build:target'); const which = require('which'); @@ -49,7 +50,7 @@ function _canBuildInstaller(ext) { function ifEnvironmentCanBuild(ext, fn) { debug('checking if environment can build installer for %s', ext); - return _canBuildInstaller(ext).then(function(can) { + return _canBuildInstaller(ext).then(function (can) { debug('can build installer for %s?', ext, true); if (!can) return false; return fn(); @@ -72,7 +73,7 @@ function getPkg(directory) { _.defaults(pkg, { productName: pkg.name, author: pkg.authors, - electronVersion: require('electron/package.json').version + electronVersion: require('electron/package.json').version, }); return pkg; @@ -82,13 +83,13 @@ const supportedPlatforms = [ { platform: 'darwin', arch: 'x64' }, { platform: 'darwin', arch: 'arm64' }, { platform: 'linux', arch: 'x64' }, - { platform: 'win32', arch: 'x64' } + { platform: 'win32', arch: 'x64' }, ]; const supportedDistributions = [ 'compass', 'compass-readonly', - 'compass-isolated' + 'compass-isolated', ]; class Target { @@ -137,7 +138,7 @@ class Target { isolated: typeof process.env.HADRON_ISOLATED !== 'undefined' ? ['1', 'true'].includes(process.env.HADRON_ISOLATED) - : undefined + : undefined, }, distributions[this.distribution] ); @@ -211,10 +212,13 @@ class Target { arch: this.arch, electronVersion: this.electronVersion, sign: null, - afterExtract: [ffmpegAfterExtract] + afterExtract: [ffmpegAfterExtract], }; - validateBuildConfig(this.platform, this.pkg.config.hadron.build[this.platform]); + validateBuildConfig( + this.platform, + this.pkg.config.hadron.build[this.platform] + ); if (this.platform === 'win32') { this.configureForWin32(); @@ -239,7 +243,7 @@ class Target { 'channel', 'assets', 'packagerOptions', - 'installerOptions' + 'installerOptions', ]) ); } @@ -315,8 +319,8 @@ class Target { CompanyName: this.author, FileDescription: this.description, ProductName: this.productName, - InternalName: this.name - } + InternalName: this.name, + }, }); this.appPath = this.dest( @@ -345,26 +349,26 @@ class Target { this.windows_nupkg_full_label = this.windows_nupkg_full_filename = `${this.packagerOptions.name}-${nuggetVersion}-full.nupkg`; - this.windows_zip_sign_label = - this.windows_zip_sign_filename = getSignedFilename(this.windows_zip_filename); - this.windows_nupkg_full_sign_label = - this.windows_nupkg_full_sign_filename = getSignedFilename(this.windows_nupkg_full_filename); + this.windows_zip_sign_label = this.windows_zip_sign_filename = + getSignedFilename(this.windows_zip_filename); + this.windows_nupkg_full_sign_label = this.windows_nupkg_full_sign_filename = + getSignedFilename(this.windows_nupkg_full_filename); this.assets = [ { name: this.windows_setup_label, path: this.dest(this.windows_setup_label), - downloadCenter: true + downloadCenter: true, }, { name: this.windows_msi_label, path: this.dest(this.windows_msi_label), - downloadCenter: true + downloadCenter: true, }, { name: this.windows_zip_label, path: this.dest(this.windows_zip_label), - downloadCenter: true + downloadCenter: true, }, { name: this.windows_zip_sign_label, @@ -372,16 +376,16 @@ class Target { }, { name: this.windows_releases_label, - path: this.dest(this.windows_releases_label) + path: this.dest(this.windows_releases_label), }, { name: this.windows_nupkg_full_label, - path: this.dest(this.windows_nupkg_full_label) + path: this.dest(this.windows_nupkg_full_label), }, { name: this.windows_nupkg_full_sign_label, - path: this.dest(this.windows_nupkg_full_sign_label) - } + path: this.dest(this.windows_nupkg_full_sign_label), + }, ]; this.installerOptions = { @@ -411,7 +415,7 @@ class Target { productName: this.productName, description: this.description, name: this.packagerOptions.name, - noMsi: true + noMsi: true, }; /** @@ -425,16 +429,18 @@ class Target { this.installerOptions.setupIcon = this.src(platformSettings.setup_icon); } - this.createInstaller = async() => { + this.createInstaller = async () => { // sign the main application .exe - await sign(path.join(this.installerOptions.appDirectory, this.installerOptions.exe)); + await sign( + path.join(this.installerOptions.appDirectory, this.installerOptions.exe) + ); const electronWinstaller = require('electron-winstaller'); await electronWinstaller.createWindowsInstaller(this.installerOptions); await fs.promises.rename( this.dest('RELEASES'), - this.dest(this.windows_releases_label), + this.dest(this.windows_releases_label) ); const { MSICreator } = require('@mongodb-js/electron-wix-msi'); @@ -457,9 +463,9 @@ class Target { chooseDirectory: true, images: { background: this.src(platformSettings.background), - banner: this.src(platformSettings.banner) - } - } + banner: this.src(platformSettings.banner), + }, + }, }); await msiCreator.create(); @@ -470,7 +476,7 @@ class Target { await fs.promises.rename( this.dest(this.packagerOptions.name + '.msi'), - this.dest(this.windows_msi_label), + this.dest(this.windows_msi_label) ); // sign the nupkg @@ -502,7 +508,7 @@ class Target { icon: this.src(platformSettings.icon), appBundleId: this.bundleId, appCategoryType: platformSettings.app_category_type, - protocols: _.get(this, 'config.hadron.protocols', []) + protocols: _.get(this, 'config.hadron.protocols', []), }); if (this.channel !== 'stable') { @@ -513,8 +519,9 @@ class Target { this.osx_dmg_filename = `${this.id}-${this.version}-${this.platform}-${this.arch}.dmg`; this.osx_zip_label = this.osx_zip_filename = `${this.id}-${this.version}-${this.platform}-${this.arch}.zip`; - this.osx_zip_sign_label = - this.osx_zip_sign_filename = getSignedFilename(this.osx_zip_filename); + this.osx_zip_sign_label = this.osx_zip_sign_filename = getSignedFilename( + this.osx_zip_filename + ); this.assets = [ { @@ -524,12 +531,12 @@ class Target { }, { name: this.osx_zip_label, - path: this.dest(this.osx_zip_label) + path: this.dest(this.osx_zip_label), }, { name: this.osx_zip_sign_label, - path: this.dest(this.osx_zip_sign_label) - } + path: this.dest(this.osx_zip_sign_label), + }, ]; this.installerOptions = { @@ -559,7 +566,7 @@ class Target { x: 322, y: 243, type: 'link', - path: '/Applications' + path: '/Applications', }, /** * Show a shortcut on the left for the application icon. @@ -568,44 +575,52 @@ class Target { x: 93, y: 243, type: 'file', - path: this.appPath - } - ] + path: this.appPath, + }, + ], }; - this.createInstaller = async() => { + this.createInstaller = async () => { const appPath = this.appPath; { const plistFilePath = path.join(appPath, 'Contents', 'Info.plist'); - const plistContents = plist.parse(await fs.promises.readFile(plistFilePath, 'utf8')); - - plistContents.CFBundleURLTypes = - _.get(this.pkg, 'config.hadron.protocols', []) - .map(protocol => ({ - CFBundleTypeRole: 'Editor', - CFBundleURLIconFile: platformSettings.icon, - CFBundleURLName: protocol.name, - CFBundleURLSchemes: protocol.schemes - })); + const plistContents = plist.parse( + await fs.promises.readFile(plistFilePath, 'utf8') + ); + + plistContents.CFBundleURLTypes = _.get( + this.pkg, + 'config.hadron.protocols', + [] + ).map((protocol) => ({ + CFBundleTypeRole: 'Editor', + CFBundleURLIconFile: platformSettings.icon, + CFBundleURLName: protocol.name, + CFBundleURLSchemes: protocol.schemes, + })); await fs.promises.writeFile(plistFilePath, plist.build(plistContents)); } - const isNotarizationPossible = process.env.MACOS_NOTARY_KEY && + const isNotarizationPossible = + process.env.MACOS_NOTARY_KEY && process.env.MACOS_NOTARY_SECRET && process.env.MACOS_NOTARY_CLIENT_URL && process.env.MACOS_NOTARY_API_URL; const notarizationOptions = { bundleId: this.bundleId, - macosEntitlements: this.macosEntitlements + macosEntitlements: this.macosEntitlements, }; if (isNotarizationPossible) { await notarize(appPath, notarizationOptions); } else { - console.error(chalk.yellow.bold( - 'WARNING: macos notary service credentials not set -- skipping signing and notarization of .app!')); + console.error( + chalk.yellow.bold( + 'WARNING: macos notary service credentials not set -- skipping signing and notarization of .app!' + ) + ); } const createDMG = require('electron-installer-dmg'); @@ -614,8 +629,11 @@ class Target { if (isNotarizationPossible) { await notarize(this.installerOptions.dmgPath, notarizationOptions); } else { - console.error(chalk.yellow.bold( - 'WARNING: macos notary service credentials not set -- skipping signing and notarization of .dmg!')); + console.error( + chalk.yellow.bold( + 'WARNING: macos notary service credentials not set -- skipping signing and notarization of .dmg!' + ) + ); } }; } @@ -633,7 +651,7 @@ class Target { this.resources = path.join(this.appPath, 'resources'); Object.assign(this.packagerOptions, { - name: this.productName + name: this.productName, }); const debianVersion = this.version; @@ -647,7 +665,7 @@ class Target { const rhelVersion = [ this.semver.major, this.semver.minor, - this.semver.patch + this.semver.patch, ].join('.'); const rhelRevision = this.semver.prerelease.join('.') || '1'; const rhelArch = this.arch === 'x64' ? 'x86_64' : 'i386'; @@ -661,7 +679,7 @@ class Target { { name: this.linux_deb_filename, path: this.dest(this.linux_deb_filename), - downloadCenter: true + downloadCenter: true, }, { name: this.linux_deb_sign_filename, @@ -670,24 +688,24 @@ class Target { { name: this.linux_rpm_filename, path: this.dest(this.linux_rpm_filename), - downloadCenter: true + downloadCenter: true, }, { name: this.linux_tar_filename, - path: this.dest(this.linux_tar_filename) + path: this.dest(this.linux_tar_filename), }, { name: this.linux_tar_sign_filename, - path: this.dest(this.linux_tar_sign_filename) + path: this.dest(this.linux_tar_sign_filename), }, { name: this.rhel_tar_filename, - path: this.dest(this.rhel_tar_filename) + path: this.dest(this.rhel_tar_filename), }, { name: this.rhel_tar_sign_filename, - path: this.dest(this.rhel_tar_sign_filename) - } + path: this.dest(this.rhel_tar_sign_filename), + }, ]; var license = this.pkg.license; @@ -697,10 +715,9 @@ class Target { }. All Rights Reserved.`; } - const mimeType = - _.get(this.pkg, 'config.hadron.protocols', []) - .flatMap(protocol => protocol.schemes) - .map(scheme => `x-scheme-handler/${scheme}`); + const mimeType = _.get(this.pkg, 'config.hadron.protocols', []) + .flatMap((protocol) => protocol.schemes) + .map((scheme) => `x-scheme-handler/${scheme}`); this.installerOptions = { deb: { src: this.appPath, @@ -712,7 +729,7 @@ class Target { bin: this.productName, section: debianSection, depends: ['libsecret-1-0', 'gnome-keyring'], - mimeType + mimeType, }, rpm: { src: this.appPath, @@ -726,14 +743,11 @@ class Target { return path.join(dest, this.linux_rpm_filename); }, bin: this.productName, - requires: [ - 'gnome-keyring', - 'libsecret', - ], + requires: ['gnome-keyring', 'libsecret'], categories: rhelCategories, license: license, - mimeType - } + mimeType, + }, }; const createRpmInstaller = () => { @@ -772,7 +786,7 @@ class Target { return Promise.all([ createRpmInstaller(), createDebInstaller(), - createTarball() + createTarball(), ]); }; } @@ -788,7 +802,7 @@ class Target { * >>> null */ getAssetWithExtension(extname) { - const res = this.assets.filter(function(asset) { + const res = this.assets.filter(function (asset) { return path.extname(asset.path) === extname; }); debug('%s -> ', extname, res); @@ -807,7 +821,7 @@ class Target { const target = new Target(dir, { ...config, version }); return { config: { ...config, version: target.version, channel: target.channel }, - assets: target.assets + assets: target.assets, }; }); diff --git a/packages/hadron-build/lib/validate-build-config.js b/packages/hadron-build/lib/validate-build-config.js index 9c758f076c0..22ec79fefb8 100644 --- a/packages/hadron-build/lib/validate-build-config.js +++ b/packages/hadron-build/lib/validate-build-config.js @@ -1,14 +1,10 @@ - const platformRequiredKeys = { darwin: ['dmg_background', 'app_category_type', 'icon'], linux: ['deb_section', 'rpm_categories', 'icon'], - win32: ['icon', 'favicon_url', 'loading_gif', 'background', 'banner'] + win32: ['icon', 'favicon_url', 'loading_gif', 'background', 'banner'], }; -const validateBuildConfig = ( - platform, - config -) => { +const validateBuildConfig = (platform, config) => { const requiredKeys = platformRequiredKeys[platform]; if (!requiredKeys) { throw new Error(`Unsupported platform: ${platform}`); @@ -27,5 +23,5 @@ const validateBuildConfig = ( }; module.exports = { - validateBuildConfig -}; \ No newline at end of file + validateBuildConfig, +}; diff --git a/packages/hadron-build/lib/windows-installer-version.js b/packages/hadron-build/lib/windows-installer-version.js index 756b8eb94da..2b4adc56839 100644 --- a/packages/hadron-build/lib/windows-installer-version.js +++ b/packages/hadron-build/lib/windows-installer-version.js @@ -1,6 +1,8 @@ 'use strict'; function windowsInstallerVersion(version) { - const versionComponents = (version || '').match(/^(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?/); + const versionComponents = (version || '').match( + /^(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?/ + ); if (versionComponents) { const [, major, minor, patch, pre] = versionComponents; diff --git a/packages/hadron-build/lib/zip.js b/packages/hadron-build/lib/zip.js index 6dd42d8c0b5..63c720405e1 100644 --- a/packages/hadron-build/lib/zip.js +++ b/packages/hadron-build/lib/zip.js @@ -16,7 +16,8 @@ async function zip(_opts, done) { opts.outPath = opts.out; opts.out = path.dirname(opts.out); } else { - opts.outPath = path.resolve(opts.out, path.basename(opts.dir, '.app')) + '.zip'; + opts.outPath = + path.resolve(opts.out, path.basename(opts.dir, '.app')) + '.zip'; } const runZip = async () => { @@ -27,16 +28,21 @@ async function zip(_opts, done) { execFileSync('zip', args, { env: process.env, cwd: path.join(opts.dir, '..'), - stdio: 'inherit' + stdio: 'inherit', }); } - } + }; const removeZipIfExists = async () => { try { const stats = await fs.stat(opts.outPath); if (!stats.isFile()) { - throw new Error('Refusing to wipe path "' + opts.outPath + '" as it is ' + (stats.isDirectory() ? 'a directory' : 'not a file')); + throw new Error( + 'Refusing to wipe path "' + + opts.outPath + + '" as it is ' + + (stats.isDirectory() ? 'a directory' : 'not a file') + ); } await fs.unlink(opts.outPath); } catch (err) { @@ -44,7 +50,7 @@ async function zip(_opts, done) { throw err; } } - } + }; debug('creating zip', opts); @@ -70,7 +76,7 @@ async function zip(_opts, done) { * @param {Function} done * @return {void} */ -module.exports = function(target, done) { +module.exports = function (target, done) { if (target.platform === 'linux') { debug('.zip releases assets for linux disabled'); return done(); @@ -78,7 +84,7 @@ module.exports = function(target, done) { zip(module.exports.getOptions(target), done); }; -module.exports.getOptions = function(target) { +module.exports.getOptions = function (target) { const asset = target.getAssetWithExtension('.zip'); if (!asset) { debug('no asset w extension .zip!'); @@ -88,7 +94,7 @@ module.exports.getOptions = function(target) { const res = { dir: target.appPath, out: asset.path, - platform: target.platform + platform: target.platform, }; debug('options', res); diff --git a/packages/hadron-build/signtool/install.js b/packages/hadron-build/signtool/install.js index 1a228bf91ce..2aff04c6197 100644 --- a/packages/hadron-build/signtool/install.js +++ b/packages/hadron-build/signtool/install.js @@ -13,7 +13,9 @@ if (process.platform !== 'win32') { process.exit(0); } -const originalSigntool = require.resolve('electron-winstaller/vendor/signtool.exe'); +const originalSigntool = require.resolve( + 'electron-winstaller/vendor/signtool.exe' +); if (!fs.existsSync(originalSigntool)) { throw new Error('Original signtool.exe to be replaced not found'); diff --git a/packages/hadron-build/test/config.test.js b/packages/hadron-build/test/config.test.js index 6e75580d6a4..b6ae9825312 100644 --- a/packages/hadron-build/test/config.test.js +++ b/packages/hadron-build/test/config.test.js @@ -9,14 +9,14 @@ describe('hadron-build::config', () => { describe('Release channel support', () => { const channels = { stable: getConfig({ - version: '1.2.0' + version: '1.2.0', }), beta: getConfig({ - version: '1.2.0-beta.1' + version: '1.2.0-beta.1', }), custom: getConfig({ - version: '1.2.0-custom.5' - }) + version: '1.2.0-custom.5', + }), }; it('should have the right versions', () => { @@ -32,7 +32,9 @@ describe('hadron-build::config', () => { }); it('should not include channel in the product name on stable', () => { - expect(channels.stable.productName).to.equal('MongoDB Compass Enterprise super long test name'); + expect(channels.stable.productName).to.equal( + 'MongoDB Compass Enterprise super long test name' + ); }); it('should not include channel in the slug on stable', () => { @@ -41,8 +43,12 @@ describe('hadron-build::config', () => { describe('For releases *not* on the stable channel', () => { it('should add the channel as a suffix to the product name', () => { - expect(channels.beta.productName).to.equal('MongoDB Compass Enterprise super long test name Beta'); - expect(channels.custom.productName).to.equal('MongoDB Compass Enterprise super long test name Custom'); + expect(channels.beta.productName).to.equal( + 'MongoDB Compass Enterprise super long test name Beta' + ); + expect(channels.custom.productName).to.equal( + 'MongoDB Compass Enterprise super long test name Custom' + ); }); it('should add the channel as a suffix to the slug', () => { expect(channels.beta.slug).to.equal('compass-beta'); @@ -55,7 +61,7 @@ describe('hadron-build::config', () => { const moment = require('moment'); const dev = getConfig({ - version: '1.2.0-dev' + version: '1.2.0-dev', }); const version = `1.2.0-alpha.${moment().format('YYYYMMDDHHmm')}`; @@ -79,7 +85,7 @@ describe('hadron-build::config', () => { name: 'hadron-app', version: '1.2.0', product_name: 'Hadron', - platform: 'linux' + platform: 'linux', }; const c = getConfig(linux); @@ -103,11 +109,11 @@ describe('hadron-build::config', () => { product_name: 'Hadron', platform: 'win32', author: 'MongoDB Inc', - arch: 'x64' + arch: 'x64', }; let res; - before( () => { + before(() => { res = getConfig(windows); }); it.skip('should have the platform specific packager options', () => { @@ -121,10 +127,16 @@ describe('hadron-build::config', () => { it('should have the platform specific evergreen expansions', () => { expect(res.windows_msi_filename).to.equal('compass-1.2.0-win32-x64.msi'); - expect(res.windows_setup_filename).to.equal('compass-1.2.0-win32-x64.exe'); + expect(res.windows_setup_filename).to.equal( + 'compass-1.2.0-win32-x64.exe' + ); expect(res.windows_zip_filename).to.equal('compass-1.2.0-win32-x64.zip'); - expect(res.windows_nupkg_full_filename).to.equal('MongoDBCompassEnterprisesuperlongtestname-1.2.0-full.nupkg'); - expect(res.windows_nupkg_full_label).to.equal('MongoDBCompassEnterprisesuperlongtestname-1.2.0-full.nupkg'); + expect(res.windows_nupkg_full_filename).to.equal( + 'MongoDBCompassEnterprisesuperlongtestname-1.2.0-full.nupkg' + ); + expect(res.windows_nupkg_full_label).to.equal( + 'MongoDBCompassEnterprisesuperlongtestname-1.2.0-full.nupkg' + ); }); it('should have the platform specific installer options', () => { @@ -146,27 +158,37 @@ describe('hadron-build::config', () => { describe('For non-stable channel releases', () => { let custom; - before( () => { + before(() => { custom = getConfig({ version: '1.2.0-custom.5', name: 'hadron', product_name: 'Hadron', platform: 'win32', author: 'MongoDB Inc', - arch: 'x64' + arch: 'x64', }); }); it('should append the channel name to the product name', () => { let versionString = custom.packagerOptions['version-string']; - expect(versionString.ProductName).to.equal('MongoDB Compass Enterprise super long test name Custom'); + expect(versionString.ProductName).to.equal( + 'MongoDB Compass Enterprise super long test name Custom' + ); }); it('should include the channel name in asset filenames', () => { - expect(custom.windows_msi_filename).to.equal('compass-1.2.0-custom.5-win32-x64.msi'); - expect(custom.windows_setup_filename).to.equal('compass-1.2.0-custom.5-win32-x64.exe'); - expect(custom.windows_zip_filename).to.equal('compass-1.2.0-custom.5-win32-x64.zip'); - expect(custom.windows_nupkg_full_filename).to.equal('MongoDBCompassEnterprisesuperlongtestnameCustom-1.2.0-custom5-full.nupkg'); + expect(custom.windows_msi_filename).to.equal( + 'compass-1.2.0-custom.5-win32-x64.msi' + ); + expect(custom.windows_setup_filename).to.equal( + 'compass-1.2.0-custom.5-win32-x64.exe' + ); + expect(custom.windows_zip_filename).to.equal( + 'compass-1.2.0-custom.5-win32-x64.zip' + ); + expect(custom.windows_nupkg_full_filename).to.equal( + 'MongoDBCompassEnterprisesuperlongtestnameCustom-1.2.0-custom5-full.nupkg' + ); }); }); }); diff --git a/packages/hadron-build/test/download-center.test.js b/packages/hadron-build/test/download-center.test.js index 6f3abfd0a83..da496c37667 100644 --- a/packages/hadron-build/test/download-center.test.js +++ b/packages/hadron-build/test/download-center.test.js @@ -2,39 +2,39 @@ const { expect } = require('chai'); const { getKeyPrefix, - requireEnvironmentVariables + requireEnvironmentVariables, } = require('../lib/download-center'); -describe('download-center', function() { - describe('getKeyPrefix', function() { - it('should return compass for stable channel', function() { +describe('download-center', function () { + describe('getKeyPrefix', function () { + it('should return compass for stable channel', function () { expect(getKeyPrefix('stable')).to.eq('compass'); }); - it('should return compass when no channel is passed', function() { + it('should return compass when no channel is passed', function () { expect(getKeyPrefix()).to.eq('compass'); }); - it('should return prefix with channel when channel is not stable', function() { + it('should return prefix with channel when channel is not stable', function () { expect(getKeyPrefix('beta')).to.eq('compass/beta'); }); }); - describe('requireEnvironmentVariables', function() { - it('should throw if variable is missing', function() { + describe('requireEnvironmentVariables', function () { + it('should throw if variable is missing', function () { expect(() => { requireEnvironmentVariables([ - 'I_WOULD_BE_REALLY_SURPRISED_IF_THIS_ACTUALLY_EXISTS' + 'I_WOULD_BE_REALLY_SURPRISED_IF_THIS_ACTUALLY_EXISTS', ]); }).to.throw(); }); - it('should return true if variable is set', function() { + it('should return true if variable is set', function () { try { process.env.THIS_IS_HERE_TO_TEST_REQUIRE_ENV_VARIABLES_METHOD = '1'; expect( requireEnvironmentVariables([ - 'THIS_IS_HERE_TO_TEST_REQUIRE_ENV_VARIABLES_METHOD' + 'THIS_IS_HERE_TO_TEST_REQUIRE_ENV_VARIABLES_METHOD', ]) ).to.eq(true); } finally { diff --git a/packages/hadron-build/test/fixtures/hadron-app/main.js b/packages/hadron-build/test/fixtures/hadron-app/main.js index 8fce97e07de..f1f37d61913 100644 --- a/packages/hadron-build/test/fixtures/hadron-app/main.js +++ b/packages/hadron-build/test/fixtures/hadron-app/main.js @@ -5,11 +5,15 @@ const dialog = electron.dialog; const nativeImage = electron.nativeImage; app.on('ready', () => { - dialog.showMessageBox({ - type: 'info', - title: 'Test Fixture App for hadron-build', - message: 'Showing this message is all this app does and is only for testing.', - buttons: ['OK'], - icon: nativeImage.createFromPath('./hadron-app.png') - }, () => app.quit()); + dialog.showMessageBox( + { + type: 'info', + title: 'Test Fixture App for hadron-build', + message: + 'Showing this message is all this app does and is only for testing.', + buttons: ['OK'], + icon: nativeImage.createFromPath('./hadron-app.png'), + }, + () => app.quit() + ); }); diff --git a/packages/hadron-build/test/fixtures/hadron-app/package.json b/packages/hadron-build/test/fixtures/hadron-app/package.json index ae56155f2c6..742552721bd 100644 --- a/packages/hadron-build/test/fixtures/hadron-app/package.json +++ b/packages/hadron-build/test/fixtures/hadron-app/package.json @@ -30,7 +30,9 @@ "dev": "resources/linux/Icon.png" }, "deb_section": "productivity", - "rpm_categories": ["IDE"] + "rpm_categories": [ + "IDE" + ] } }, "distributions": { @@ -41,7 +43,9 @@ "bundleId": "com.mongodb.hadron-testing", "productName": "MongoDB Compass Enterprise super long test name", "plugins": [], - "styles": [ "index" ] + "styles": [ + "index" + ] }, "foo-bar": { "name": "foo-bar" diff --git a/packages/hadron-build/test/helpers.js b/packages/hadron-build/test/helpers.js index c415f82ab3f..890526b07a5 100644 --- a/packages/hadron-build/test/helpers.js +++ b/packages/hadron-build/test/helpers.js @@ -2,7 +2,7 @@ const Target = require('../lib/target'); const path = require('path'); -exports.getConfig = argv => { +exports.getConfig = (argv) => { const src = path.join(__dirname, 'fixtures', 'hadron-app'); process.env.HADRON_DISTRIBUTION = 'compass'; return new Target(src, argv); diff --git a/packages/hadron-build/test/index.test.js b/packages/hadron-build/test/index.test.js index 14af4320d14..3ea29171c65 100644 --- a/packages/hadron-build/test/index.test.js +++ b/packages/hadron-build/test/index.test.js @@ -24,7 +24,7 @@ describe('hadron-build', () => { main: false, renderer: false, functional: false, - release: false + release: false, }; const cwd = process.cwd(); @@ -40,31 +40,39 @@ describe('hadron-build', () => { describe('::getSpawnJobs', () => { it.skip('should return arguments for requested suite jobs', () => { - const argv = _.defaults({ - unit: true, - enzyme: true, - main: true, - renderer: true, - functional: true - }, DEFAULT_ARGS); + const argv = _.defaults( + { + unit: true, + enzyme: true, + main: true, + renderer: true, + functional: true, + }, + DEFAULT_ARGS + ); expect(commands.test.getSpawnJobs(argv)).to.deep.equal({ unit: ['--sort', '--recursive', './test/unit'], enzyme: ['--sort', '--recursive', './test/enzyme'], main: ['--sort', '--recursive', './test/main'], renderer: ['--sort', '--renderer', '--recursive', './test/renderer'], - functional: ['--sort', './test/functional'] + functional: ['--sort', './test/functional'], }); }); }); describe('::getMochaArgs', () => { context('when the arguments are default', () => { it.skip('should allow pass through of mocha cli options', () => { - var argv = _.defaults({ - grep: '#spectron' - }, DEFAULT_ARGS); + var argv = _.defaults( + { + grep: '#spectron', + }, + DEFAULT_ARGS + ); expect(commands.test.getMochaArgs(argv)).to.deep.equal([ - '--sort', '--grep', '#spectron' + '--sort', + '--grep', + '#spectron', ]); }); }); @@ -72,7 +80,9 @@ describe('hadron-build', () => { describe('::handler', () => { it('should set `NODE_ENV` to testing'); - it('should set the TEST_WITH_PREBUILT environment variable if --release specified'); + it( + 'should set the TEST_WITH_PREBUILT environment variable if --release specified' + ); it('should remove the user-data directory'); it('should spawn electron-mocha'); }); diff --git a/packages/hadron-build/test/release.test.js b/packages/hadron-build/test/release.test.js index 94cb8bc16ed..564f3a60b1b 100644 --- a/packages/hadron-build/test/release.test.js +++ b/packages/hadron-build/test/release.test.js @@ -9,7 +9,7 @@ const path = require('path'); const getConfig = require('./helpers').getConfig; // TODO: Investigate why it's failing in GitHub Actions CI -describe.skip('hadron-build::release', function() { +describe.skip('hadron-build::release', function () { if ( // Functional tests on appveyor too slow. Skipping. process.platform === 'win32' || @@ -22,36 +22,53 @@ describe.skip('hadron-build::release', function() { this.timeout(300000); let target = null; - before(function(done) { - fs.remove(path.join(__dirname, 'fixtures', 'hadron-app', 'dist'), (_err) => { - if (_err) { - return done(_err); + before(function (done) { + fs.remove( + path.join(__dirname, 'fixtures', 'hadron-app', 'dist'), + (_err) => { + if (_err) { + return done(_err); + } + target = getConfig(); + commands.release.run(target, done); } - target = getConfig(); - commands.release.run(target, done); - }); + ); }); - it('should symlink `Electron` to the app binary on OS X', function(done) { + it('should symlink `Electron` to the app binary on OS X', function (done) { if (target.platform !== 'darwin') { return this.skip(); } - const bin = target.dest(`${target.productName}-darwin-${target.arch}`, `${target.productName}.app`, 'Contents', 'MacOS', 'Electron'); - fs.exists(bin, function(exists) { + const bin = target.dest( + `${target.productName}-darwin-${target.arch}`, + `${target.productName}.app`, + 'Contents', + 'MacOS', + 'Electron' + ); + fs.exists(bin, function (exists) { assert(exists, `Expected ${bin} to exist`); done(); }); }); it('has the correct product name', () => { - assert.equal(target.productName, 'MongoDB Compass Enterprise super long test name Beta'); + assert.equal( + target.productName, + 'MongoDB Compass Enterprise super long test name Beta' + ); }); - it('sets the correct CFBundleIdentifier', function() { + it('sets the correct CFBundleIdentifier', function () { if (target.platform !== 'darwin') { return this.skip(); } - const info = target.dest(`${target.productName}-darwin-${target.arch}`, `${target.productName}.app`, 'Contents', 'Info.plist'); + const info = target.dest( + `${target.productName}-darwin-${target.arch}`, + `${target.productName}.app`, + 'Contents', + 'Info.plist' + ); // eslint-disable-next-line no-sync const config = plist.parse(fs.readFileSync(info, 'utf8')); assert.equal(config.CFBundleIdentifier, 'com.mongodb.hadron-testing.beta'); @@ -65,10 +82,11 @@ describe.skip('hadron-build::release', function() { it('should have the correct application icon', () => {}); it.skip('should have all assets specified in the manifest', () => { - const missing = target.assets.map(function(asset) { - // eslint-disable-next-line no-sync - return [asset.path, fs.existsSync(asset.path)]; - }) + const missing = target.assets + .map(function (asset) { + // eslint-disable-next-line no-sync + return [asset.path, fs.existsSync(asset.path)]; + }) .filter(([, existing]) => !existing) .map(([assetPath]) => assetPath); diff --git a/packages/hadron-build/test/signtool.test.js b/packages/hadron-build/test/signtool.test.js index c3a4e04f615..6292a9099dd 100644 --- a/packages/hadron-build/test/signtool.test.js +++ b/packages/hadron-build/test/signtool.test.js @@ -23,79 +23,96 @@ describe('hadron-build::signtool', () => { describe('sign', () => { let garasign; - beforeEach(function() { + beforeEach(function () { garasign = spy(); }); - context('when credentials are not set', function() { - beforeEach(function() { - setEnvVars(Object.fromEntries(Object.keys(CURRENT_SIGING_VARS).map((key) => [key, false]))); + context('when credentials are not set', function () { + beforeEach(function () { + setEnvVars( + Object.fromEntries( + Object.keys(CURRENT_SIGING_VARS).map((key) => [key, false]) + ) + ); }); - afterEach(function() { + afterEach(function () { setEnvVars(CURRENT_SIGING_VARS); }); - it('does not sign when credentials are not set', async() => { + it('does not sign when credentials are not set', async () => { await sign('test/fixtures/foo', garasign); expect(garasign.called).to.be.false; }); }); - context('when credentials are set', function() { - beforeEach(function() { + context('when credentials are set', function () { + beforeEach(function () { // Set all the signing vars to a defined value - setEnvVars(Object.fromEntries(Object.keys(CURRENT_SIGING_VARS).map((key) => [key, key]))); + setEnvVars( + Object.fromEntries( + Object.keys(CURRENT_SIGING_VARS).map((key) => [key, key]) + ) + ); }); - afterEach(function() { + afterEach(function () { setEnvVars(CURRENT_SIGING_VARS); }); - it('signs windows exe remotely using jsign', async() => { + it('signs windows exe remotely using jsign', async () => { await sign('test/fixtures/foo.exe', garasign); expect(garasign.calledOnce).to.be.true; - expect(garasign.firstCall.args).to.deep.equal(['test/fixtures/foo.exe', { - client: 'remote', - signingMethod: 'jsign', - // These are the signing server creds - host: undefined, - port: undefined, - privateKey: undefined, - username: undefined, - }]); + expect(garasign.firstCall.args).to.deep.equal([ + 'test/fixtures/foo.exe', + { + client: 'remote', + signingMethod: 'jsign', + // These are the signing server creds + host: undefined, + port: undefined, + privateKey: undefined, + username: undefined, + }, + ]); }); - it('signs windows msi remotely using jsign', async() => { + it('signs windows msi remotely using jsign', async () => { await sign('test/fixtures/foo.msi', garasign); expect(garasign.calledOnce).to.be.true; - expect(garasign.firstCall.args).to.deep.equal(['test/fixtures/foo.msi', { - client: 'remote', - signingMethod: 'jsign', - // These are the signing server creds - host: undefined, - port: undefined, - privateKey: undefined, - username: undefined, - }]); + expect(garasign.firstCall.args).to.deep.equal([ + 'test/fixtures/foo.msi', + { + client: 'remote', + signingMethod: 'jsign', + // These are the signing server creds + host: undefined, + port: undefined, + privateKey: undefined, + username: undefined, + }, + ]); }); - it('signs everything remotely using gpg', async() => { + it('signs everything remotely using gpg', async () => { await sign('test/fixtures/foo', garasign); expect(garasign.calledOnce).to.be.true; - expect(garasign.firstCall.args).to.deep.equal(['test/fixtures/foo', { - client: 'remote', - signingMethod: 'gpg', - // These are the signing server creds - host: undefined, - port: undefined, - privateKey: undefined, - username: undefined, - }]); + expect(garasign.firstCall.args).to.deep.equal([ + 'test/fixtures/foo', + { + client: 'remote', + signingMethod: 'gpg', + // These are the signing server creds + host: undefined, + port: undefined, + privateKey: undefined, + username: undefined, + }, + ]); }); }); }); - describe('getSignedFilename', function() { - it('adds .sig to the file name', function() { + describe('getSignedFilename', function () { + it('adds .sig to the file name', function () { ['.zip', '.gz', '.deb', '.rpm'].map((ext) => { expect(getSignedFilename(`foo${ext}`)).to.equal(`foo${ext}.sig`); }); diff --git a/packages/hadron-build/test/tar-gz.test.js b/packages/hadron-build/test/tar-gz.test.js index ea740b30342..a0827a76c6f 100644 --- a/packages/hadron-build/test/tar-gz.test.js +++ b/packages/hadron-build/test/tar-gz.test.js @@ -7,15 +7,15 @@ const util = require('util'); const execFile = util.promisify(execFileCb); const tar = require('../lib/tar-gz'); -describe('tar', function() { - before(function() { +describe('tar', function () { + before(function () { if (!['linux', 'darwin'].includes(process.platform)) { this.skip(); } }); let tmpdir; - beforeEach(async function() { + beforeEach(async function () { tmpdir = path.join( os.tmpdir(), 'hadron-build-tar-test', @@ -25,11 +25,11 @@ describe('tar', function() { await fs.mkdir(tmpdir, { recursive: true }); }); - afterEach(async function() { + afterEach(async function () { await fs.rm(tmpdir, { recursive: true }); }); - it('creates a tar archive from a directory, preserves the root and the permissions', async function() { + it('creates a tar archive from a directory, preserves the root and the permissions', async function () { const src = path.join(tmpdir, 'src'); const extracted = path.join(tmpdir, 'extracted'); await fs.mkdir(src, { recursive: true }); diff --git a/packages/hadron-build/test/target.test.js b/packages/hadron-build/test/target.test.js index 666d4cd0086..56d4741a52d 100644 --- a/packages/hadron-build/test/target.test.js +++ b/packages/hadron-build/test/target.test.js @@ -44,7 +44,7 @@ describe('target', () => { HADRON_PRODUCT_NAME: 'MongoDB Compass My Awesome Edition', HADRON_READONLY: 'true', HADRON_ISOLATED: 'true', - HADRON_APP_VERSION: '1.2.3' + HADRON_APP_VERSION: '1.2.3', }); const target = new Target(path.join(__dirname, 'fixtures', 'hadron-app')); diff --git a/packages/hadron-build/test/upload.test.js b/packages/hadron-build/test/upload.test.js index c5bce2e284c..f4c21ce9eef 100644 --- a/packages/hadron-build/test/upload.test.js +++ b/packages/hadron-build/test/upload.test.js @@ -5,55 +5,55 @@ const { versionId, readableVersionName, readablePlatformName, - generateVersionsForAssets + generateVersionsForAssets, } = require('../commands/upload'); const Target = require('../lib/target'); -describe('upload', function() { - describe('versionId', function() { - it('returns a version number', function() { +describe('upload', function () { + describe('versionId', function () { + it('returns a version number', function () { expect(versionId('1.2.3')).to.eq('1.2.3'); }); - it('returns a version number when dist is just compass', function() { + it('returns a version number when dist is just compass', function () { expect(versionId('1.2.3', 'compass')).to.eq('1.2.3'); }); - it('returns a version number with dist when dist is custom', function() { + it('returns a version number with dist when dist is custom', function () { expect(versionId('1.2.3', 'compass-isolated')).to.eq('1.2.3-isolated'); }); }); - describe('readableVersionName', function() { - it('returns version number', function() { + describe('readableVersionName', function () { + it('returns version number', function () { expect(readableVersionName('1.0.0')).to.eq('1.0.0'); }); - it('returns version number with channel pretty-printed', function() { + it('returns version number with channel pretty-printed', function () { expect(readableVersionName('1.0.0', 'stable')).to.eq('1.0.0 (Stable)'); }); - it('returns version number with channel and distribution pretty-printed', function() { + it('returns version number with channel and distribution pretty-printed', function () { expect(readableVersionName('1.0.0', 'beta', 'compass-readonly')).to.eq( '1.0.0 (Readonly Edition Beta)' ); }); }); - describe('readablePlatformName', function() { - it('returns a pretty-printed platform / arch label', function() { + describe('readablePlatformName', function () { + it('returns a pretty-printed platform / arch label', function () { expect(readablePlatformName('x64', 'darwin')).to.eq( 'macOS 64-bit (10.15+)' ); }); - it('throws for unsupported values', function() { + it('throws for unsupported values', function () { expect(() => readablePlatformName('linux', 'arm64')).to.throw(); }); }); - describe('generateVersionsForAssets', function() { - it('returns a versions list for provided assets / version / channel combo', function() { + describe('generateVersionsForAssets', function () { + it('returns a versions list for provided assets / version / channel combo', function () { const version = '1.0.0'; const assets = Target.getAssetsForVersion( // /packages/compass @@ -70,52 +70,52 @@ describe('upload', function() { download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-1.0.0-darwin-x64.dmg', name: 'macOS 64-bit (10.15+)', - os: 'darwin' + os: 'darwin', }, { arch: 'arm64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-1.0.0-darwin-arm64.dmg', name: 'macOS arm64 (M1) (11.0+)', - os: 'darwin' + os: 'darwin', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass_1.0.0_amd64.deb', name: 'Ubuntu 64-bit (16.04+)', - os: 'linux' + os: 'linux', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-1.0.0.x86_64.rpm', name: 'RedHat 64-bit (8+)', - os: 'linux' + os: 'linux', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-1.0.0-win32-x64.exe', name: 'Windows 64-bit (10+)', - os: 'win32' + os: 'win32', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-1.0.0-win32-x64.msi', name: 'Windows 64-bit (10+) (MSI)', - os: 'win32' + os: 'win32', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-1.0.0-win32-x64.zip', name: 'Windows 64-bit (10+) (Zip)', - os: 'win32' - } + os: 'win32', + }, ], - version: '1.0.0 (Stable)' + version: '1.0.0 (Stable)', }, { _id: '1.0.0-readonly', @@ -125,52 +125,52 @@ describe('upload', function() { download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-readonly-1.0.0-darwin-x64.dmg', name: 'macOS 64-bit (10.15+)', - os: 'darwin' + os: 'darwin', }, { arch: 'arm64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-readonly-1.0.0-darwin-arm64.dmg', name: 'macOS arm64 (M1) (11.0+)', - os: 'darwin' + os: 'darwin', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-readonly_1.0.0_amd64.deb', name: 'Ubuntu 64-bit (16.04+)', - os: 'linux' + os: 'linux', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-readonly-1.0.0.x86_64.rpm', name: 'RedHat 64-bit (8+)', - os: 'linux' + os: 'linux', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-readonly-1.0.0-win32-x64.exe', name: 'Windows 64-bit (10+)', - os: 'win32' + os: 'win32', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-readonly-1.0.0-win32-x64.msi', name: 'Windows 64-bit (10+) (MSI)', - os: 'win32' + os: 'win32', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-readonly-1.0.0-win32-x64.zip', name: 'Windows 64-bit (10+) (Zip)', - os: 'win32' - } + os: 'win32', + }, ], - version: '1.0.0 (Readonly Edition Stable)' + version: '1.0.0 (Readonly Edition Stable)', }, { _id: '1.0.0-isolated', @@ -180,53 +180,53 @@ describe('upload', function() { download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-isolated-1.0.0-darwin-x64.dmg', name: 'macOS 64-bit (10.15+)', - os: 'darwin' + os: 'darwin', }, { arch: 'arm64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-isolated-1.0.0-darwin-arm64.dmg', name: 'macOS arm64 (M1) (11.0+)', - os: 'darwin' + os: 'darwin', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-isolated_1.0.0_amd64.deb', name: 'Ubuntu 64-bit (16.04+)', - os: 'linux' + os: 'linux', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-isolated-1.0.0.x86_64.rpm', name: 'RedHat 64-bit (8+)', - os: 'linux' + os: 'linux', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-isolated-1.0.0-win32-x64.exe', name: 'Windows 64-bit (10+)', - os: 'win32' + os: 'win32', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-isolated-1.0.0-win32-x64.msi', name: 'Windows 64-bit (10+) (MSI)', - os: 'win32' + os: 'win32', }, { arch: 'x64', download_link: 'https://downloads.mongodb.com/compass/mongodb-compass-isolated-1.0.0-win32-x64.zip', name: 'Windows 64-bit (10+) (Zip)', - os: 'win32' - } + os: 'win32', + }, ], - version: '1.0.0 (Isolated Edition Stable)' - } + version: '1.0.0 (Isolated Edition Stable)', + }, ]); }); }); diff --git a/packages/hadron-build/test/zip.test.js b/packages/hadron-build/test/zip.test.js index b9e65493d86..e67e1360058 100644 --- a/packages/hadron-build/test/zip.test.js +++ b/packages/hadron-build/test/zip.test.js @@ -12,7 +12,7 @@ const chai = require('chai'); const expect = chai.expect; function skipUnlessRunningOn(platform) { - before(function() { + before(function () { if (process.platform !== platform) { this.skip(); } @@ -44,18 +44,18 @@ async function getTargetZipEntries(target) { const file = fsExtra.readFileSync(getTargetZipPath(target)); const zipContent = await JSZip.loadAsync(file); - return Object.values(zipContent.files).map(entry => _.pick(entry, [ - 'name', 'dir' - ])); + return Object.values(zipContent.files).map((entry) => + _.pick(entry, ['name', 'dir']) + ); } -describe('zip', function() { +describe('zip', function () { context('on linux', () => { skipUnlessRunningOn('linux'); const target = getTarget({ version: '1.2.0', - platform: 'linux' + platform: 'linux', }); setupAndZipFakeTarget(target); @@ -78,22 +78,22 @@ describe('zip', function() { const target = getTarget({ version: '1.2.0', - platform: 'darwin' + platform: 'darwin', }); setupAndZipFakeTarget(target); - it('creates a zip with the right entries', async() => { + it('creates a zip with the right entries', async () => { const entries = await getTargetZipEntries(target); expect(entries).to.deep.equal([ { name: 'MongoDB Compass Enterprise super long test name.app/', - dir: true + dir: true, }, { name: 'MongoDB Compass Enterprise super long test name.app/file', - dir: false - } + dir: false, + }, ]); }); }); @@ -103,18 +103,18 @@ describe('zip', function() { const target = getTarget({ version: '1.2.0', - platform: 'win32' + platform: 'win32', }); setupAndZipFakeTarget(target); - it('creates a zip with the right entries', async() => { + it('creates a zip with the right entries', async () => { const entries = await getTargetZipEntries(target); expect(entries).to.deep.equal([ { name: 'file', - dir: false - } + dir: false, + }, ]); }); }); diff --git a/packages/hadron-type-checker/.eslintrc b/packages/hadron-type-checker/.eslintrc index b53acc369ea..3024abad4f1 100644 --- a/packages/hadron-type-checker/.eslintrc +++ b/packages/hadron-type-checker/.eslintrc @@ -1,14 +1,4 @@ { - "ecmaFeatures": { - "blockBindings": true, - }, - "env": { - "mocha": true, - "node": true, - "es6": true - }, - "rules": { - "strict": 0 - }, - "extends": ["mongodb-js/node"] + "root": true, + "extends": ["@mongodb-js/eslint-config-compass"] } diff --git a/packages/hadron-type-checker/.prettierrc.json b/packages/hadron-type-checker/.prettierrc.json new file mode 100644 index 00000000000..18853d1532e --- /dev/null +++ b/packages/hadron-type-checker/.prettierrc.json @@ -0,0 +1 @@ +"@mongodb-js/prettier-config-compass" diff --git a/packages/hadron-type-checker/index.d.ts b/packages/hadron-type-checker/index.d.ts index 0b11e590d21..9bded75e150 100644 --- a/packages/hadron-type-checker/index.d.ts +++ b/packages/hadron-type-checker/index.d.ts @@ -10,7 +10,7 @@ import type { BSONRegExp, Code, BSONSymbol, - Timestamp + Timestamp, } from 'bson'; export type TypeCastMap = { diff --git a/packages/hadron-type-checker/package.json b/packages/hadron-type-checker/package.json index 547729e6673..40a94fbff8f 100644 --- a/packages/hadron-type-checker/package.json +++ b/packages/hadron-type-checker/package.json @@ -31,10 +31,10 @@ "lodash": "^4.17.21" }, "devDependencies": { + "@mongodb-js/eslint-config-compass": "^1.1.7", "chai": "^4.2.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "eslint-config-mongodb-js": "^5.0.3", "mocha": "^10.2.0" } } diff --git a/packages/hadron-type-checker/src/type-checker.js b/packages/hadron-type-checker/src/type-checker.js index 01fc8346058..5a52a6ef105 100644 --- a/packages/hadron-type-checker/src/type-checker.js +++ b/packages/hadron-type-checker/src/type-checker.js @@ -24,7 +24,6 @@ const { Code, BSONSymbol, Timestamp, - Map } = require('bson'); /** * The object string. @@ -177,7 +176,9 @@ const toInt64 = (object) => { return Long.fromString(object); } - throw new Error(`Value ${object.toString()} is outside the valid Int64 range`); + throw new Error( + `Value ${object.toString()} is outside the valid Int64 range` + ); }; const toDouble = (object) => { @@ -209,7 +210,9 @@ const toObjectID = (object) => { }; const toBinary = (object) => { - const buffer = ArrayBuffer.isView(object) ? Buffer.from(object) : Buffer.from(toString(object), 'utf8'); + const buffer = ArrayBuffer.isView(object) + ? Buffer.from(object) + : Buffer.from(toString(object), 'utf8'); return new Binary(buffer, Binary.SUBTYPE_DEFAULT); }; @@ -252,7 +255,7 @@ const CASTERS = { String: toString, BSONSymbol: toSymbol, Timestamp: toTimestamp, - Undefined: toUndefined + Undefined: toUndefined, }; /** diff --git a/packages/hadron-type-checker/test/type-checker.test.js b/packages/hadron-type-checker/test/type-checker.test.js index 7eec0d535f1..33516429ccd 100644 --- a/packages/hadron-type-checker/test/type-checker.test.js +++ b/packages/hadron-type-checker/test/type-checker.test.js @@ -15,140 +15,159 @@ const Int32 = bson.Int32; const Decimal128 = bson.Decimal128; const TypeChecker = require('../'); -describe('TypeChecker', function() { - describe('#cast', function() { - context('when the object is a string', function() { - context('when the string is empty', function() { - context('when casting to min key', function() { +describe('TypeChecker', function () { + describe('#cast', function () { + context('when the object is a string', function () { + context('when the string is empty', function () { + context('when casting to min key', function () { var value = ''; - it('returns the min key', function() { - expect(TypeChecker.cast(value, 'MinKey')).to.deep.equal(new MinKey()); + it('returns the min key', function () { + expect(TypeChecker.cast(value, 'MinKey')).to.deep.equal( + new MinKey() + ); }); }); - context('when casting to max key', function() { + context('when casting to max key', function () { var value = ''; - it('returns the max key', function() { - expect(TypeChecker.cast(value, 'MaxKey')).to.deep.equal(new MaxKey()); + it('returns the max key', function () { + expect(TypeChecker.cast(value, 'MaxKey')).to.deep.equal( + new MaxKey() + ); }); }); - context('when casting to ObjectId', function() { + context('when casting to ObjectId', function () { var value = ''; - it('returns a new ObjectId()', function() { - expect(TypeChecker.cast(value, 'ObjectId')).to.be.an.instanceof(bson.ObjectId); + it('returns a new ObjectId()', function () { + expect(TypeChecker.cast(value, 'ObjectId')).to.be.an.instanceof( + bson.ObjectId + ); }); }); - context('when casting to a binary', function() { - it('returns a corresponding binary object', function() { + context('when casting to a binary', function () { + it('returns a corresponding binary object', function () { const value = 'yay 🎉'; - expect(TypeChecker.cast(value, 'Binary')._bsontype).to.equal('Binary'); - expect(TypeChecker.cast(value, 'Binary').toString()).to.equal(value); + expect(TypeChecker.cast(value, 'Binary')._bsontype).to.equal( + 'Binary' + ); + expect(TypeChecker.cast(value, 'Binary').toString()).to.equal( + value + ); }); }); }); - context('when the string is an integer', function() { - context('when the integer is 32 bits', function() { - context('when casting to an int32', function() { + context('when the string is an integer', function () { + context('when the integer is 32 bits', function () { + context('when casting to an int32', function () { var value = '23'; - it('returns the number', function() { - expect(TypeChecker.cast(value, 'Int32')).to.deep.equal(new Int32(23)); + it('returns the number', function () { + expect(TypeChecker.cast(value, 'Int32')).to.deep.equal( + new Int32(23) + ); }); }); - context('when casting to a boolean', function() { - context('when the int is 0', function() { - it('returns false', function() { + context('when casting to a boolean', function () { + context('when the int is 0', function () { + it('returns false', function () { expect(TypeChecker.cast(0, 'Boolean')).to.equal(false); }); }); - context('when the int is 1', function() { - it('returns true', function() { + context('when the int is 1', function () { + it('returns true', function () { expect(TypeChecker.cast(1, 'Boolean')).to.equal(true); }); }); - context('when the int is > 1', function() { - it('returns true', function() { + context('when the int is > 1', function () { + it('returns true', function () { expect(TypeChecker.cast(2, 'Boolean')).to.equal(true); }); }); - context('when the int is < 0', function() { - it('returns true', function() { + context('when the int is < 0', function () { + it('returns true', function () { expect(TypeChecker.cast(-2, 'Boolean')).to.equal(true); }); }); }); - context('when the int is partially valid', function() { - context('when the int is a -', function() { + context('when the int is partially valid', function () { + context('when the int is a -', function () { var value = '-'; - it('raises an error', function() { - expect(function() { + it('raises an error', function () { + expect(function () { TypeChecker.cast(value, 'Int32'); }).to.throw('is not a valid Int32 value'); }); }); - context('when the int is a ""', function() { + context('when the int is a ""', function () { var value = ''; - it('raises an error', function() { - expect(function() { + it('raises an error', function () { + expect(function () { TypeChecker.cast(value, 'Int32'); }).to.throw('is not a valid Int32 value'); }); }); }); - context('when the int64 is very large', function() { - context('when the int is larger than max js number', function() { + context('when the int64 is very large', function () { + context('when the int is larger than max js number', function () { // js max safe integer is 9007199254740991 var value = '9007199254740991238'; - it('returns int64', function() { - expect(TypeChecker.cast(value, 'Int64')).to.deep.equal(Long.fromString('9007199254740991238')); + it('returns int64', function () { + expect(TypeChecker.cast(value, 'Int64')).to.deep.equal( + Long.fromString('9007199254740991238') + ); }); }); - context('when the int is larger than max int64 number', function() { - // max int64 number is 9223372036854775807 - var value = '10223372036854775810'; - - it('raises an error', function() { - expect(function() { - TypeChecker.cast(value, 'Int64'); - }).to.throw('Value 10223372036854775810 is outside the valid Int64 range'); - }); - }); + context( + 'when the int is larger than max int64 number', + function () { + // max int64 number is 9223372036854775807 + var value = '10223372036854775810'; + + it('raises an error', function () { + expect(function () { + TypeChecker.cast(value, 'Int64'); + }).to.throw( + 'Value 10223372036854775810 is outside the valid Int64 range' + ); + }); + } + ); }); - context('when the int64 is partially valid', function() { - context('when the int is a -', function() { + context('when the int64 is partially valid', function () { + context('when the int is a -', function () { var value = '-'; - it('raises an error', function() { - expect(function() { + it('raises an error', function () { + expect(function () { TypeChecker.cast(value, 'Int64'); }).to.throw('is not a valid Int64 value'); }); }); - context('when the int is a ""', function() { + context('when the int is a ""', function () { var value = ''; - it('raises an error', function() { - expect(function() { + it('raises an error', function () { + expect(function () { TypeChecker.cast(value, 'Int64'); }).to.throw('is not a valid Int64 value'); }); @@ -156,572 +175,613 @@ describe('TypeChecker', function() { }); }); - context('when the integer is 64 bit', function() { - context('when casting to an int64', function() { + context('when the integer is 64 bit', function () { + context('when casting to an int64', function () { var value = '42000000000000'; - it('returns the int64', function() { - expect(TypeChecker.cast(value, 'Int64')).to.deep.equal(Long.fromNumber(42000000000000)); + it('returns the int64', function () { + expect(TypeChecker.cast(value, 'Int64')).to.deep.equal( + Long.fromNumber(42000000000000) + ); }); }); }); - context('when casting to a decimal 128', function() { + context('when casting to a decimal 128', function () { var value = '9223372036854775808'; - it('returns the number', function() { - expect(TypeChecker.cast(value, 'Decimal128').toString()).to.equal(value); + it('returns the number', function () { + expect(TypeChecker.cast(value, 'Decimal128').toString()).to.equal( + value + ); }); }); }); - context('when the string is a double', function() { - context('when casting to a double', function() { - context('when the double is valid', function() { + context('when the string is a double', function () { + context('when casting to a double', function () { + context('when the double is valid', function () { var value = '23.45'; - it('returns the number', function() { - expect(TypeChecker.cast(value, 'Double')).to.deep.equal(new Double(23.45)); + it('returns the number', function () { + expect(TypeChecker.cast(value, 'Double')).to.deep.equal( + new Double(23.45) + ); }); }); - context('when the doule is partially valid', function() { - context('when the double is a -', function() { + context('when the doule is partially valid', function () { + context('when the double is a -', function () { var value = '-'; - it('raises an error', function() { - expect(function() { + it('raises an error', function () { + expect(function () { TypeChecker.cast(value, 'Double'); }).to.throw('is not a valid Double value'); }); }); - context('when the double is a ""', function() { + context('when the double is a ""', function () { var value = ''; - it('raises an error', function() { - expect(function() { + it('raises an error', function () { + expect(function () { TypeChecker.cast(value, 'Double'); }).to.throw('is not a valid Double value'); }); }); - context('when the double ends with decimal', function() { + context('when the double ends with decimal', function () { var value = '12.'; - it('raises an error', function() { - expect(function() { + it('raises an error', function () { + expect(function () { TypeChecker.cast(value, 'Double'); - }).to.throw('Please enter at least one digit after the decimal'); + }).to.throw( + 'Please enter at least one digit after the decimal' + ); }); }); }); }); }); - context('when the string is a decimal 128', function() { - context('when casting to a decimal 128', function() { + context('when the string is a decimal 128', function () { + context('when casting to a decimal 128', function () { var value = '23.45'; - it('returns the number', function() { - expect(TypeChecker.cast(value, 'Decimal128').toString()).to.equal('23.45'); + it('returns the number', function () { + expect(TypeChecker.cast(value, 'Decimal128').toString()).to.equal( + '23.45' + ); }); }); }); - context('when the string is a plain string', function() { - context('when casting to a string', function() { + context('when the string is a plain string', function () { + context('when casting to a string', function () { var value = 'test'; - it('returns the string', function() { + it('returns the string', function () { expect(TypeChecker.cast(value, 'String')).to.equal(value); }); }); - context('when casting to a boolean', function() { + context('when casting to a boolean', function () { var value = 'fal'; - it('raises an exception', function() { - expect(TypeChecker.cast.bind(null, value, 'Boolean')).to.throw('not a valid boolean'); + it('raises an exception', function () { + expect(TypeChecker.cast.bind(null, value, 'Boolean')).to.throw( + 'not a valid boolean' + ); }); }); - context('when casting to an object', function() { + context('when casting to an object', function () { var value = 'test'; - it('returns an empty object', function() { + it('returns an empty object', function () { expect(TypeChecker.cast(value, 'Object')).to.deep.equal({}); }); }); - context('when casting to an array', function() { - context('when the value is a string', function() { + context('when casting to an array', function () { + context('when the value is a string', function () { var value = 'test'; - it('returns the string wrapped in an array', function() { - expect(TypeChecker.cast(value, 'Array')).to.deep.equal([ value ]); + it('returns the string wrapped in an array', function () { + expect(TypeChecker.cast(value, 'Array')).to.deep.equal([value]); }); }); - context('when the value is an object', function() { - it('returns an empty array', function() { + context('when the value is an object', function () { + it('returns an empty array', function () { expect(TypeChecker.cast({}, 'Array')).to.deep.equal([]); }); }); }); - context('when casting to a date', function() { + context('when casting to a date', function () { var value = '2016-10-10'; var date = new Date(value); - it('returns the date', function() { + it('returns the date', function () { expect(TypeChecker.cast(value, 'Date')).to.deep.equal(date); }); }); }); - context('when the string is a 12-byte hex string', function() { - context('when casting to an ObjectId', function() { + context('when the string is a 12-byte hex string', function () { + context('when casting to an ObjectId', function () { var value = '58cbf2318ecfb65b8cee6556'; var oid = new ObjectId(value); - it('returns a new ObjectId', function() { + it('returns a new ObjectId', function () { expect(TypeChecker.cast(value, 'ObjectId')).to.deep.equal(oid); }); }); - context('when casting to a string', function() { + context('when casting to a string', function () { var value = '58cbf2318ecfb65b8cee6556'; - it('returns a string', function() { + it('returns a string', function () { expect(TypeChecker.cast(value, 'String')).to.deep.equal(value); }); }); }); }); - context('when the object is a primitive double', function() { - context('when casting to a string', function() { - it('returns the number as a string', function() { + context('when the object is a primitive double', function () { + context('when casting to a string', function () { + it('returns the number as a string', function () { expect(TypeChecker.cast(2.45, 'String')).to.equal('2.45'); }); }); - context('when casting to an object id', function() { - it('returns a new ObjectId()', function() { - expect(TypeChecker.cast(2.45, 'ObjectId')).to.be.an.instanceof(bson.ObjectId); + context('when casting to an object id', function () { + it('returns a new ObjectId()', function () { + expect(TypeChecker.cast(2.45, 'ObjectId')).to.be.an.instanceof( + bson.ObjectId + ); }); }); }); - context('when the object is a double', function() { - context('when casting to a string', function() { - it('returns the number as a string', function() { + context('when the object is a double', function () { + context('when casting to a string', function () { + it('returns the number as a string', function () { expect(TypeChecker.cast(new Double(2.45), 'String')).to.equal('2.45'); }); }); - context('when casting to decimal-128', function() { - it('returns the number as decimal-128', function() { - expect(TypeChecker.cast(new Double(2.45), 'Decimal128').toString()).to.equal('2.45'); + context('when casting to decimal-128', function () { + it('returns the number as decimal-128', function () { + expect( + TypeChecker.cast(new Double(2.45), 'Decimal128').toString() + ).to.equal('2.45'); }); }); }); - context('when the object is a long', function() { - context('when casting to a string', function() { - it('returns the number as a string', function() { + context('when the object is a long', function () { + context('when casting to a string', function () { + it('returns the number as a string', function () { expect(TypeChecker.cast(new Long(245), 'String')).to.equal('245'); }); }); - context('when casting to an int32', function() { - it('returns the number as an int32', function() { - expect(TypeChecker.cast(new Long(245), 'Int32')).to.deep.equal(new Int32(245)); + context('when casting to an int32', function () { + it('returns the number as an int32', function () { + expect(TypeChecker.cast(new Long(245), 'Int32')).to.deep.equal( + new Int32(245) + ); }); }); - context('when casting to a double', function() { - it('returns the number as a double', function() { - expect(TypeChecker.cast(new Long(245), 'Double')).to.deep.equal(new Double(245)); + context('when casting to a double', function () { + it('returns the number as a double', function () { + expect(TypeChecker.cast(new Long(245), 'Double')).to.deep.equal( + new Double(245) + ); }); }); - context('when casting to decimal-128', function() { - it('returns the number as decimal-128', function() { - expect(TypeChecker.cast(new Long(245), 'Decimal128').toString()).to.equal('245'); + context('when casting to decimal-128', function () { + it('returns the number as decimal-128', function () { + expect( + TypeChecker.cast(new Long(245), 'Decimal128').toString() + ).to.equal('245'); }); }); }); - context('when the object is an int32', function() { - context('when casting to a string', function() { - it('returns the number as a string', function() { + context('when the object is an int32', function () { + context('when casting to a string', function () { + it('returns the number as a string', function () { expect(TypeChecker.cast(new Int32(245), 'String')).to.equal('245'); }); }); - context('when casting to an int64', function() { - it('returns the number as an int64 from int32', function() { - expect(TypeChecker.cast(new Int32(245), 'Int64')).to.deep.equal(new Long(245)); + context('when casting to an int64', function () { + it('returns the number as an int64 from int32', function () { + expect(TypeChecker.cast(new Int32(245), 'Int64')).to.deep.equal( + new Long(245) + ); }); - it('returns the number as an int64 from decimal', function() { - expect(TypeChecker.cast(Decimal128.fromString('245'), 'Int64')).to.deep.equal(new Long(245)); + it('returns the number as an int64 from decimal', function () { + expect( + TypeChecker.cast(Decimal128.fromString('245'), 'Int64') + ).to.deep.equal(new Long(245)); }); - it('returns the number as an int64 from double', function() { - expect(TypeChecker.cast(new Double('245'), 'Int64')).to.deep.equal(new Long(245)); + it('returns the number as an int64 from double', function () { + expect(TypeChecker.cast(new Double('245'), 'Int64')).to.deep.equal( + new Long(245) + ); }); }); - context('when casting to a double', function() { - it('returns the number as a double', function() { - expect(TypeChecker.cast(new Int32(245), 'Double')).to.deep.equal(new Double(245)); + context('when casting to a double', function () { + it('returns the number as a double', function () { + expect(TypeChecker.cast(new Int32(245), 'Double')).to.deep.equal( + new Double(245) + ); }); }); - context('when casting to decimal-128', function() { - it('returns the number as decimal-128', function() { - expect(TypeChecker.cast(new Int32(245), 'Decimal128').toString()).to.equal('245'); + context('when casting to decimal-128', function () { + it('returns the number as decimal-128', function () { + expect( + TypeChecker.cast(new Int32(245), 'Decimal128').toString() + ).to.equal('245'); }); }); }); - context('when the object is an int64', function() { - context('when casting to an int64', function() { - it('returns the number as an int64', function() { - expect(TypeChecker.cast(new Long(245), 'Int64')).to.deep.equal(new Long(245)); + context('when the object is an int64', function () { + context('when casting to an int64', function () { + it('returns the number as an int64', function () { + expect(TypeChecker.cast(new Long(245), 'Int64')).to.deep.equal( + new Long(245) + ); }); }); }); - context('when the object is an int32 literal', function() { - context('when casting to a string', function() { - it('returns the number as a string', function() { + context('when the object is an int32 literal', function () { + context('when casting to a string', function () { + it('returns the number as a string', function () { expect(TypeChecker.cast(245, 'String')).to.equal('245'); }); }); - context('when casting to an int64', function() { - it('returns the number as an int64', function() { + context('when casting to an int64', function () { + it('returns the number as an int64', function () { expect(TypeChecker.cast(245, 'Int64')).to.deep.equal(new Long(245)); }); }); - context('when casting to a double', function() { - it('returns the number as a double', function() { - expect(TypeChecker.cast(245, 'Double')).to.deep.equal(new Double(245)); + context('when casting to a double', function () { + it('returns the number as a double', function () { + expect(TypeChecker.cast(245, 'Double')).to.deep.equal( + new Double(245) + ); }); }); }); - context('when the object is a binary', function() { - context('when casting to a string', function() { + context('when the object is a binary', function () { + context('when casting to a string', function () { var binary = new Binary(Buffer.from('test'), 0); - it('returns the binary as a string', function() { + it('returns the binary as a string', function () { expect(TypeChecker.cast(binary, 'String')).to.equal('test'); }); }); }); - context('when the object is an undefined', function() { - context('when casting to a string', function() { - it('returns an empty string', function() { + context('when the object is an undefined', function () { + context('when casting to a string', function () { + it('returns an empty string', function () { expect(TypeChecker.cast(undefined, 'String')).to.equal(''); }); }); }); - context('when the object is an object id', function() { - context('when casting to a string', function() { + context('when the object is an object id', function () { + context('when casting to a string', function () { var objectId = new ObjectId(); - it('returns the string id', function() { + it('returns the string id', function () { expect(TypeChecker.cast(objectId, 'String').length).to.equal(24); }); }); }); - context('when the object is a boolean false', function() { - context('when casting to a string', function() { - it('returns the string false', function() { + context('when the object is a boolean false', function () { + context('when casting to a string', function () { + it('returns the string false', function () { expect(TypeChecker.cast(false, 'String')).to.equal('false'); }); }); }); - context('when the object is a boolean true', function() { - context('when casting to a string', function() { - it('returns the string true', function() { + context('when the object is a boolean true', function () { + context('when casting to a string', function () { + it('returns the string true', function () { expect(TypeChecker.cast(true, 'String')).to.equal('true'); }); }); }); - context('when the object is a utc date time', function() { - context('when casting to a string', function() { + context('when the object is a utc date time', function () { + context('when casting to a string', function () { var date = new Date(2016, 1, 1); - it('returns the date as a string', function() { + it('returns the date as a string', function () { expect(TypeChecker.cast(date, 'String')).to.not.equal(''); }); }); }); - context('when the object is a null', function() { - context('when casting to a string', function() { - it('returns an empty string', function() { + context('when the object is a null', function () { + context('when casting to a string', function () { + it('returns an empty string', function () { expect(TypeChecker.cast(null, 'String')).to.equal(''); }); }); }); - context('when the object is a regex', function() { - context('when casting to a string', function() { + context('when the object is a regex', function () { + context('when casting to a string', function () { var regex = new BSONRegExp('+w', 'i'); - it('returns the string regex', function() { + it('returns the string regex', function () { expect(TypeChecker.cast(regex, 'String')).to.equal(''); }); }); }); - context('when the object is a min key', function() { - context('when casting to a string', function() { + context('when the object is a min key', function () { + context('when casting to a string', function () { var minKey = new MinKey(); - it('returns an empty string', function() { + it('returns an empty string', function () { expect(TypeChecker.cast(minKey, 'String')).to.equal(''); }); }); }); - context('when the object is a max key', function() { - context('when casting to a string', function() { + context('when the object is a max key', function () { + context('when casting to a string', function () { var maxKey = new MaxKey(); - it('returns an empty string', function() { + it('returns an empty string', function () { expect(TypeChecker.cast(maxKey, 'String')).to.equal(''); }); }); }); - context('when the object is an object', function() { - context('when casting to a string', function() { - it('returns an empty string', function() { + context('when the object is an object', function () { + context('when casting to a string', function () { + it('returns an empty string', function () { expect(TypeChecker.cast({}, 'String')).to.equal(''); }); }); - context('when casting to a string and the string is [object Object] does not return empty', function() { - it('returns an empty string', function() { - expect(TypeChecker.cast('[object Object]', 'String')).to.equal('[object Object]'); - }); - }); + context( + 'when casting to a string and the string is [object Object] does not return empty', + function () { + it('returns an empty string', function () { + expect(TypeChecker.cast('[object Object]', 'String')).to.equal( + '[object Object]' + ); + }); + } + ); - context('when casting to an array', function() { - it('returns an empty array', function() { - expect(TypeChecker.cast({ test: 'value' }, 'Array')).to.deep.equal([]); + context('when casting to an array', function () { + it('returns an empty array', function () { + expect(TypeChecker.cast({ test: 'value' }, 'Array')).to.deep.equal( + [] + ); }); }); - context('when casting to a binary', function() { - it('returns an empty binary', function() { - expect(TypeChecker.cast({ test: 'value' }, 'Binary')._bsontype).to.equal('Binary'); + context('when casting to a binary', function () { + it('returns an empty binary', function () { + expect( + TypeChecker.cast({ test: 'value' }, 'Binary')._bsontype + ).to.equal('Binary'); }); }); - context('when casting to a boolean', function() { - it('returns true', function() { + context('when casting to a boolean', function () { + it('returns true', function () { expect(TypeChecker.cast({ test: 'value' }, 'Boolean')).to.equal(true); }); }); - context('when casting to a code', function() { - it('returns an empty code', function() { - expect(TypeChecker.cast({ test: 'value' }, 'Code').code).to.equal('[object Object]'); + context('when casting to a code', function () { + it('returns an empty code', function () { + expect(TypeChecker.cast({ test: 'value' }, 'Code').code).to.equal( + '[object Object]' + ); }); }); - context('when casting to a date', function() { - it('returns the invalid date', function() { - expect(TypeChecker.cast({ test: 'value' }, 'Date').toString()).to.equal('Invalid Date'); + context('when casting to a date', function () { + it('returns the invalid date', function () { + expect( + TypeChecker.cast({ test: 'value' }, 'Date').toString() + ).to.equal('Invalid Date'); }); }); }); - context('when the object is an Array', function() { - context('when casting to a string', function() { - var value = [ 'test', 'test2' ]; - it('returns Array', function() { + context('when the object is an Array', function () { + context('when casting to a string', function () { + var value = ['test', 'test2']; + it('returns Array', function () { expect(TypeChecker.cast(value, 'String')).to.deep.equal('test,test2'); }); }); }); }); - describe('#type', function() { - context('when the object is a string', function() { - it('returns String', function() { + describe('#type', function () { + context('when the object is a string', function () { + it('returns String', function () { expect(TypeChecker.type('testing')).to.equal('String'); }); }); - context('when the object is a double', function() { - it('returns Double', function() { + context('when the object is a double', function () { + it('returns Double', function () { expect(TypeChecker.type(new Double(2.45))).to.equal('Double'); }); }); - context('when the object is a decimal 128', function() { - it('returns Decimal128', function() { - expect(TypeChecker.type(Decimal128.fromString('2.45'))).to.equal('Decimal128'); + context('when the object is a decimal 128', function () { + it('returns Decimal128', function () { + expect(TypeChecker.type(Decimal128.fromString('2.45'))).to.equal( + 'Decimal128' + ); }); }); - context('when the object is a binary', function() { + context('when the object is a binary', function () { var binary = new Binary(Buffer.from('test'), 0); - it('returns Binary', function() { + it('returns Binary', function () { expect(TypeChecker.type(binary)).to.equal('Binary'); }); }); - context('when the object is an undefined', function() { - it('returns Undefined', function() { + context('when the object is an undefined', function () { + it('returns Undefined', function () { expect(TypeChecker.type(undefined)).to.equal('Undefined'); }); }); - context('when the object is an object id', function() { + context('when the object is an object id', function () { var objectId = new ObjectId(); - it('returns ObjectId', function() { + it('returns ObjectId', function () { expect(TypeChecker.type(objectId)).to.equal('ObjectId'); }); }); - context('when the object is a boolean false', function() { - it('returns boolean', function() { + context('when the object is a boolean false', function () { + it('returns boolean', function () { expect(TypeChecker.type(false)).to.equal('Boolean'); }); }); - context('when the object is a boolean true', function() { - it('returns boolean', function() { + context('when the object is a boolean true', function () { + it('returns boolean', function () { expect(TypeChecker.type(true)).to.equal('Boolean'); }); }); - context('when the object is a utc date time', function() { + context('when the object is a utc date time', function () { var date = new Date(); - it('returns Date', function() { + it('returns Date', function () { expect(TypeChecker.type(date)).to.equal('Date'); }); }); - context('when the object is a null', function() { - it('returns Null', function() { + context('when the object is a null', function () { + it('returns Null', function () { expect(TypeChecker.type(null)).to.equal('Null'); }); }); - context('when the object is a regex', function() { + context('when the object is a regex', function () { var regex = new BSONRegExp('+w', 'i'); - it('returns BSONRegExp', function() { + it('returns BSONRegExp', function () { expect(TypeChecker.type(regex)).to.equal('BSONRegExp'); }); }); - context('when the object is an object', function() { - it('returns Object', function() { + context('when the object is an object', function () { + it('returns Object', function () { expect(TypeChecker.type({})).to.equal('Object'); }); }); - context('when the object is an Array', function() { - it('returns Array', function() { - expect(TypeChecker.type([ 'test' ])).to.equal('Array'); + context('when the object is an Array', function () { + it('returns Array', function () { + expect(TypeChecker.type(['test'])).to.equal('Array'); }); }); - context('when the object is a code', function() { + context('when the object is a code', function () { var code = new Code('where blah'); - it('returns Code', function() { + it('returns Code', function () { expect(TypeChecker.type(code)).to.equal('Code'); }); }); - context('when the object is a code with scope', function() { + context('when the object is a code with scope', function () { var code = new Code('where blah', {}); - it('returns Code', function() { + it('returns Code', function () { expect(TypeChecker.type(code)).to.equal('Code'); }); }); - context('when the object is a 32bit int', function() { - it('returns Int32', function() { + context('when the object is a 32bit int', function () { + it('returns Int32', function () { expect(TypeChecker.type(new Int32(1234234))).to.equal('Int32'); }); }); - context('when the object is a timestamp', function() { + context('when the object is a timestamp', function () { var timestamp = new Timestamp({ t: 0, i: 100 }); - it('returns Timestamp', function() { + it('returns Timestamp', function () { expect(TypeChecker.type(timestamp)).to.equal('Timestamp'); }); }); - context('when the object is a bson long', function() { - it('returns Int64', function() { - expect(TypeChecker.type(new Long(Number.MAX_SAFE_INTEGER))).to.equal('Int64'); + context('when the object is a bson long', function () { + it('returns Int64', function () { + expect(TypeChecker.type(new Long(Number.MAX_SAFE_INTEGER))).to.equal( + 'Int64' + ); }); }); - context('when the object is a bson double', function() { - it('returns Double', function() { + context('when the object is a bson double', function () { + it('returns Double', function () { expect(TypeChecker.type(new Double(43.13123123))).to.equal('Double'); }); }); - context('when the object is a min key', function() { + context('when the object is a min key', function () { var minKey = new MinKey(); - it('returns ObjectId', function() { + it('returns ObjectId', function () { expect(TypeChecker.type(minKey)).to.equal('MinKey'); }); }); - context('when the object is a max key', function() { + context('when the object is a max key', function () { var maxKey = new MaxKey(); - it('returns ObjectId', function() { + it('returns ObjectId', function () { expect(TypeChecker.type(maxKey)).to.equal('MaxKey'); }); }); - - context('when the object is an object', function() { - it('returns Object', function() { - expect(TypeChecker.type({})).to.equal('Object'); - }); - }); - - context('when the object is an Array', function() { - it('returns Array', function() { - expect(TypeChecker.type([ 'test' ])).to.equal('Array'); - }); - }); }); - describe('#castableTypes', function() { - context('when using high precision support', function() { - it('includes decimal 128', function() { + describe('#castableTypes', function () { + context('when using high precision support', function () { + it('includes decimal 128', function () { expect(TypeChecker.castableTypes(true)).to.deep.equal([ 'Array', 'Binary', @@ -741,13 +801,13 @@ describe('TypeChecker', function() { 'String', 'BSONSymbol', 'Timestamp', - 'Undefined' + 'Undefined', ]); }); }); - context('when not using high precision support', function() { - it('does not include decimal 128', function() { + context('when not using high precision support', function () { + it('does not include decimal 128', function () { expect(TypeChecker.castableTypes()).to.deep.equal([ 'Array', 'Binary', @@ -766,7 +826,7 @@ describe('TypeChecker', function() { 'String', 'BSONSymbol', 'Timestamp', - 'Undefined' + 'Undefined', ]); }); }); diff --git a/packages/mongodb-explain-compat/.eslintrc b/packages/mongodb-explain-compat/.eslintrc index cff2b28a7a9..3024abad4f1 100644 --- a/packages/mongodb-explain-compat/.eslintrc +++ b/packages/mongodb-explain-compat/.eslintrc @@ -1,8 +1,4 @@ { - "extends": [ - "semistandard" - ], - "rules": { - "space-before-function-paren": 0 - } + "root": true, + "extends": ["@mongodb-js/eslint-config-compass"] } diff --git a/packages/mongodb-explain-compat/.prettierrc.json b/packages/mongodb-explain-compat/.prettierrc.json new file mode 100644 index 00000000000..18853d1532e --- /dev/null +++ b/packages/mongodb-explain-compat/.prettierrc.json @@ -0,0 +1 @@ +"@mongodb-js/prettier-config-compass" diff --git a/packages/mongodb-explain-compat/lib/index.js b/packages/mongodb-explain-compat/lib/index.js index a9f1a346506..ff368b4e28f 100644 --- a/packages/mongodb-explain-compat/lib/index.js +++ b/packages/mongodb-explain-compat/lib/index.js @@ -5,19 +5,41 @@ const kSBENodes = Symbol('kSBENodes'); function mapPlanTree(stage, mapper, currentParent = null) { const result = mapper(stage, currentParent); const target = result || {}; - if (stage.inputStage) target.inputStage = mapPlanTree(stage.inputStage, mapper, stage); - if (stage.innerStage) target.innerStage = mapPlanTree(stage.innerStage, mapper, stage); - if (stage.outerStage) target.outerStage = mapPlanTree(stage.outerStage, mapper, stage); - if (stage.thenStage) target.thenStage = mapPlanTree(stage.thenStage, mapper, stage); - if (stage.elseStage) target.elseStage = mapPlanTree(stage.elseStage, mapper, stage); - if (stage.inputStages) target.inputStages = stage.inputStages.map(s => mapPlanTree(s, mapper, stage)); - if (stage.shards) target.shards = stage.shards.map(s => mapPlanTree(s, stage)); - if (stage.executionStages) target.executionStages = stage.executionStages.map(s => mapPlanTree(s, mapper, stage)); + if (stage.inputStage) { + target.inputStage = mapPlanTree(stage.inputStage, mapper, stage); + } + if (stage.innerStage) { + target.innerStage = mapPlanTree(stage.innerStage, mapper, stage); + } + if (stage.outerStage) { + target.outerStage = mapPlanTree(stage.outerStage, mapper, stage); + } + if (stage.thenStage) { + target.thenStage = mapPlanTree(stage.thenStage, mapper, stage); + } + if (stage.elseStage) { + target.elseStage = mapPlanTree(stage.elseStage, mapper, stage); + } + if (stage.inputStages) { + target.inputStages = stage.inputStages.map((s) => + mapPlanTree(s, mapper, stage) + ); + } + if (stage.shards) { + target.shards = stage.shards.map((s) => mapPlanTree(s, stage)); + } + if (stage.executionStages) { + target.executionStages = stage.executionStages.map((s) => + mapPlanTree(s, mapper, stage) + ); + } return result; } function omitChildStages(stage) { - return mapPlanTree(stage, child => stage === child ? { ...stage } : undefined); + return mapPlanTree(stage, (child) => + stage === child ? { ...stage } : undefined + ); } function mapStages(queryPlan, sbeExecutionStages) { @@ -25,7 +47,7 @@ function mapStages(queryPlan, sbeExecutionStages) { // First, look up all stages from the query plan, and store their IDs so // that we know which SBE nodes we should assign to which query plan node. - mapPlanTree(queryPlan, stage => { + mapPlanTree(queryPlan, (stage) => { if (stage.planNodeId) { nodeIdToQueryPlan.set(stage.planNodeId, stage); stage[kSBENodes] = []; @@ -53,21 +75,23 @@ function mapStages(queryPlan, sbeExecutionStages) { // Do the actual mapping here. Use the head SBE node, and only aggregate // 'docsExamined' based on all child nodes and 'executionTimeMillisEstimate' // based on all top-level child nodes here. - return mapPlanTree(queryPlan, stage => { + return mapPlanTree(queryPlan, (stage) => { const sbeNodes = stage[kSBENodes]; const headSBENode = sbeNodes[0] || {}; return { ...omitChildStages(headSBENode), ...omitChildStages(stage), - executionTimeMillisEstimate: headSBENode.executionTimeMillis || headSBENode.executionTimeMillisEstimate, + executionTimeMillisEstimate: + headSBENode.executionTimeMillis || + headSBENode.executionTimeMillisEstimate, docsExamined: sbeNodes - .filter(sbe => sbe.stage === 'seek' || sbe.stage === 'scan') - .map(sbe => sbe.numReads || 0) + .filter((sbe) => sbe.stage === 'seek' || sbe.stage === 'scan') + .map((sbe) => sbe.numReads || 0) .reduce((a, b) => a + b, 0), keysExamined: sbeNodes - .filter(sbe => sbe.stage === 'ixseek' || sbe.stage === 'ixscan') - .map(sbe => sbe.numReads || 0) - .reduce((a, b) => a + b, 0) + .filter((sbe) => sbe.stage === 'ixseek' || sbe.stage === 'ixscan') + .map((sbe) => sbe.numReads || 0) + .reduce((a, b) => a + b, 0), }; }); } diff --git a/packages/mongodb-explain-compat/package.json b/packages/mongodb-explain-compat/package.json index e9cfbb30b87..81af5e97da6 100644 --- a/packages/mongodb-explain-compat/package.json +++ b/packages/mongodb-explain-compat/package.json @@ -47,13 +47,8 @@ }, "license": "SSPL", "devDependencies": { + "@mongodb-js/eslint-config-compass": "^1.1.7", "eslint": "^7.25.0", - "eslint-config-semistandard": "^15.0.1", - "eslint-config-standard": "^14.1.1", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.1", "gen-esm-wrapper": "^1.1.0", "mocha": "^10.2.0", "nyc": "^15.1.0" diff --git a/packages/mongodb-explain-compat/test/fixtures/in1.json b/packages/mongodb-explain-compat/test/fixtures/in1.json index 0dce9415598..9b42816bc27 100644 --- a/packages/mongodb-explain-compat/test/fixtures/in1.json +++ b/packages/mongodb-explain-compat/test/fixtures/in1.json @@ -32,9 +32,7 @@ "indexVersion": 2, "direction": "forward", "indexBounds": { - "beds": [ - "(2, inf.0]" - ] + "beds": ["(2, inf.0]"] } } }, @@ -65,9 +63,7 @@ "innerOpens": 1432, "innerCloses": 1, "outerProjects": [], - "outerCorrelated": [ - 2 - ], + "outerCorrelated": [2], "outerStage": { "stage": "nlj", "planNodeId": 1, @@ -82,10 +78,7 @@ "innerOpens": 1, "innerCloses": 1, "outerProjects": [], - "outerCorrelated": [ - 3, - 4 - ], + "outerCorrelated": [3, 4], "outerStage": { "stage": "project", "planNodeId": 1, @@ -196,4 +189,4 @@ "gitVersion": "16aff18cbb6b993ac325a50a59b1898d35cf08c3" }, "ok": 1 -} \ No newline at end of file +} diff --git a/packages/mongodb-explain-compat/test/fixtures/in2.json b/packages/mongodb-explain-compat/test/fixtures/in2.json index 08734c3f12f..9bbfed2ec94 100644 --- a/packages/mongodb-explain-compat/test/fixtures/in2.json +++ b/packages/mongodb-explain-compat/test/fixtures/in2.json @@ -56,10 +56,7 @@ "objSlot": 9, "rootSlot": 4, "fieldBehavior": "keep", - "fields": [ - "_id", - "i" - ], + "fields": ["_id", "i"], "projectFields": [], "projectSlots": [], "forceNewObject": true, diff --git a/packages/mongodb-explain-compat/test/fixtures/out1.json b/packages/mongodb-explain-compat/test/fixtures/out1.json index b2e98b3bada..49fafdd214f 100644 --- a/packages/mongodb-explain-compat/test/fixtures/out1.json +++ b/packages/mongodb-explain-compat/test/fixtures/out1.json @@ -30,9 +30,7 @@ "indexVersion": 2, "direction": "forward", "indexBounds": { - "beds": [ - "(2, inf.0]" - ] + "beds": ["(2, inf.0]"] } } }, @@ -59,9 +57,7 @@ "innerOpens": 1432, "innerCloses": 1, "outerProjects": [], - "outerCorrelated": [ - 2 - ], + "outerCorrelated": [2], "inputStage": { "stage": "IXSCAN", "planNodeId": 1, @@ -76,10 +72,7 @@ "innerOpens": 1, "innerCloses": 1, "outerProjects": [], - "outerCorrelated": [ - 3, - 4 - ], + "outerCorrelated": [3, 4], "keyPattern": { "beds": 1 }, @@ -94,9 +87,7 @@ "indexVersion": 2, "direction": "forward", "indexBounds": { - "beds": [ - "(2, inf.0]" - ] + "beds": ["(2, inf.0]"] }, "docsExamined": 0, "keysExamined": 1432 diff --git a/packages/mongodb-explain-compat/test/fixtures/out2.json b/packages/mongodb-explain-compat/test/fixtures/out2.json index 3cce3e9752d..d615514d883 100644 --- a/packages/mongodb-explain-compat/test/fixtures/out2.json +++ b/packages/mongodb-explain-compat/test/fixtures/out2.json @@ -50,10 +50,7 @@ "objSlot": 9, "rootSlot": 4, "fieldBehavior": "keep", - "fields": [ - "_id", - "i" - ], + "fields": ["_id", "i"], "projectFields": [], "projectSlots": [], "forceNewObject": true, diff --git a/packages/mongodb-explain-compat/test/fixtures/unsharded-find.sbe.in.json b/packages/mongodb-explain-compat/test/fixtures/unsharded-find.sbe.in.json index 0dce9415598..9b42816bc27 100644 --- a/packages/mongodb-explain-compat/test/fixtures/unsharded-find.sbe.in.json +++ b/packages/mongodb-explain-compat/test/fixtures/unsharded-find.sbe.in.json @@ -32,9 +32,7 @@ "indexVersion": 2, "direction": "forward", "indexBounds": { - "beds": [ - "(2, inf.0]" - ] + "beds": ["(2, inf.0]"] } } }, @@ -65,9 +63,7 @@ "innerOpens": 1432, "innerCloses": 1, "outerProjects": [], - "outerCorrelated": [ - 2 - ], + "outerCorrelated": [2], "outerStage": { "stage": "nlj", "planNodeId": 1, @@ -82,10 +78,7 @@ "innerOpens": 1, "innerCloses": 1, "outerProjects": [], - "outerCorrelated": [ - 3, - 4 - ], + "outerCorrelated": [3, 4], "outerStage": { "stage": "project", "planNodeId": 1, @@ -196,4 +189,4 @@ "gitVersion": "16aff18cbb6b993ac325a50a59b1898d35cf08c3" }, "ok": 1 -} \ No newline at end of file +} diff --git a/packages/mongodb-explain-compat/test/fixtures/unsharded-find.sbe.out.json b/packages/mongodb-explain-compat/test/fixtures/unsharded-find.sbe.out.json index b2e98b3bada..49fafdd214f 100644 --- a/packages/mongodb-explain-compat/test/fixtures/unsharded-find.sbe.out.json +++ b/packages/mongodb-explain-compat/test/fixtures/unsharded-find.sbe.out.json @@ -30,9 +30,7 @@ "indexVersion": 2, "direction": "forward", "indexBounds": { - "beds": [ - "(2, inf.0]" - ] + "beds": ["(2, inf.0]"] } } }, @@ -59,9 +57,7 @@ "innerOpens": 1432, "innerCloses": 1, "outerProjects": [], - "outerCorrelated": [ - 2 - ], + "outerCorrelated": [2], "inputStage": { "stage": "IXSCAN", "planNodeId": 1, @@ -76,10 +72,7 @@ "innerOpens": 1, "innerCloses": 1, "outerProjects": [], - "outerCorrelated": [ - 3, - 4 - ], + "outerCorrelated": [3, 4], "keyPattern": { "beds": 1 }, @@ -94,9 +87,7 @@ "indexVersion": 2, "direction": "forward", "indexBounds": { - "beds": [ - "(2, inf.0]" - ] + "beds": ["(2, inf.0]"] }, "docsExamined": 0, "keysExamined": 1432 diff --git a/packages/mongodb-explain-compat/test/index.js b/packages/mongodb-explain-compat/test/index.js index 1ee2329a866..042944c3826 100644 --- a/packages/mongodb-explain-compat/test/index.js +++ b/packages/mongodb-explain-compat/test/index.js @@ -1,4 +1,3 @@ -/* global describe, it */ 'use strict'; const convertExplainCompat = require('..'); const assert = require('assert'); @@ -11,20 +10,20 @@ function fixture(name) { ); } -describe('convertExplainCompat', () => { - it('maps stuff from the SBE format to the pre-SBE format (in1)', () => { +describe('convertExplainCompat', function () { + it('maps stuff from the SBE format to the pre-SBE format (in1)', function () { assert.deepStrictEqual( convertExplainCompat(fixture('in1')), fixture('out1') ); }); - it('maps stuff from the SBE format to the pre-SBE format (in2)', () => { + it('maps stuff from the SBE format to the pre-SBE format (in2)', function () { assert.deepStrictEqual( convertExplainCompat(fixture('in2')), fixture('out2') ); }); - it('keeps the old SBE format as-is', () => { + it('keeps the old SBE format as-is', function () { assert.deepStrictEqual( convertExplainCompat(fixture('in4')), fixture('in4') @@ -32,7 +31,7 @@ describe('convertExplainCompat', () => { }); describe('Sharded Aggregations', function () { - it('keeps the classic for as-is - with stages', () => { + it('keeps the classic for as-is - with stages', function () { assert.deepStrictEqual( convertExplainCompat( fixture('sharded-aggregate-with-stages.classic.in') @@ -40,7 +39,7 @@ describe('convertExplainCompat', () => { fixture('sharded-aggregate-with-stages.classic.out') ); }); - it('keeps the classic for as-is - without stages', () => { + it('keeps the classic for as-is - without stages', function () { assert.deepStrictEqual( convertExplainCompat( fixture('sharded-aggregate-without-stages.classic.in') @@ -48,13 +47,13 @@ describe('convertExplainCompat', () => { fixture('sharded-aggregate-without-stages.classic.out') ); }); - it('maps the SBE format to pre-SBE - with stages', () => { + it('maps the SBE format to pre-SBE - with stages', function () { assert.deepStrictEqual( convertExplainCompat(fixture('sharded-aggregate-with-stages.sbe.in')), fixture('sharded-aggregate-with-stages.sbe.out') ); }); - it('maps the SBE format to pre-SBE - without stages', () => { + it('maps the SBE format to pre-SBE - without stages', function () { assert.deepStrictEqual( convertExplainCompat( fixture('sharded-aggregate-without-stages.sbe.in') @@ -79,13 +78,13 @@ describe('convertExplainCompat', () => { }); describe('Sharded Queries', function () { - it('keeps the classic format as-is', () => { + it('keeps the classic format as-is', function () { assert.deepStrictEqual( convertExplainCompat(fixture('sharded-find.classic.in')), fixture('sharded-find.classic.out') ); }); - it('maps the SBE format to pre-SBE', () => { + it('maps the SBE format to pre-SBE', function () { assert.deepStrictEqual( convertExplainCompat(fixture('sharded-find.sbe.in')), fixture('sharded-find.sbe.out') @@ -93,19 +92,19 @@ describe('convertExplainCompat', () => { }); }); describe('Unsharded Queries', function () { - it('keeps the classic format as-is', () => { + it('keeps the classic format as-is', function () { assert.deepStrictEqual( convertExplainCompat(fixture('unsharded-find.classic.in')), fixture('unsharded-find.classic.out') ); }); - it('maps the SBE format to pre-SBE', () => { + it('maps the SBE format to pre-SBE', function () { assert.deepStrictEqual( convertExplainCompat(fixture('unsharded-find.sbe.in')), fixture('unsharded-find.sbe.out') ); }); - it('handles 7.2 (SERVER-79724) changes to mongos explain for unsharded collections', () => { + it('handles 7.2 (SERVER-79724) changes to mongos explain for unsharded collections', function () { assert.deepStrictEqual( convertExplainCompat(fixture('unsharded-aggregate-on-mongos.7.2.in')), fixture('unsharded-aggregate-on-mongos.7.2.out') From 8af5d4e18cb47b46518caa3d9f3cfaaafe19b887 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:48:02 +0000 Subject: [PATCH 16/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6314) Update report Co-authored-by: kraenhansen <1243959+kraenhansen@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 18024 ++++++++++++++++++--------------------- docs/tracking-plan.md | 2 +- 2 files changed, 8514 insertions(+), 9512 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 616e9ade9e5..fc0e708f5e9 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,671 +1,669 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Tue Oct 01 2024. +This document was automatically generated on Wed Oct 02 2024. ## List of dependencies -| Package | Version | License | -| --------------------------------------------------------------------------------------------------------------------------- | ------------ | ----------------------------------- | -| **[@ampproject/remapping](#0dc8b6568eb743fd551ce2cf2f54be9d0f94b12167f7c34a997c864bcc7e128d)** | 2.2.0 | Apache-2.0 | -| **[@aws-sdk/client-cognito-identity](#d3350d9512a30a7d722a254609aaeb5048055ad7ac83e0fc718676cba82d4f0e)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/client-sso](#122bc8ec6e0086415cbed6567ead1e85e6a80326f5609ee0221fabcf2bc3e35b)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/client-sts](#92440c05901818918488da134d1ff538799409309918135a178f5881d1eb6dcc)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/core](#5ef232eecbafdb891fe4d107f580fd4b94e4eb2712df79ab4b5c3c0255e9b8d0)** | 3.629.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-cognito-identity](#a0b39e721e27fe3cda471c233a5dd7105832c517c80022d149a2709ceecb4a20)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-env](#f0037899766f9fb156ae52d4262089a964f044c3a331a71320443ad3664ba4e5)** | 3.620.1 | Apache-2.0 | -| **[@aws-sdk/credential-provider-http](#990097dcbfa0fafca7fe8253939d00e2237407a576c79a8b94c3fb402a40f9f4)** | 3.622.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-ini](#d0499091db530426e22820e5a86e11c1635cd6cfd6886be00a73167496589031)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-node](#15a01844ec1a77911fc8af581b4cc91607f4ea537aa1b55099ddeb3933c08793)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-process](#6df29928703aec90607f9c2d3a1c36071751aa24177be72f0fc88c6773b7df22)** | 3.620.1 | Apache-2.0 | -| **[@aws-sdk/credential-provider-sso](#d0a0d6042ff0dfbd6143041fd83bc1096e36ec1b9b7100726135989fe6974d7b)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-web-identity](#7ca705ce1768551740ce25addeda56a029a25efb024929b6224fffed16402d87)** | 3.621.0 | Apache-2.0 | -| **[@aws-sdk/credential-providers](#89261894eb9947986c4f5e3d27470902346dad44742f42ed42ef0c3b7a443165)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/middleware-host-header](#76f9788f0a3892655b30ff5be7eadcc24c2a4dc60675874d11e110e53cf7d770)** | 3.620.0 | Apache-2.0 | -| **[@aws-sdk/middleware-logger](#77971232a25c0db769f48f8c0b70d1272e792393db29953a47d319effbca9616)** | 3.609.0 | Apache-2.0 | -| **[@aws-sdk/middleware-recursion-detection](#a19d96e543a0b45bed652d0c84ce89e3f27c98bbcfecbdb66fe4124b14f4e25c)** | 3.620.0 | Apache-2.0 | -| **[@aws-sdk/middleware-user-agent](#a3db739171b14ee7fbc688b1442211cc99cbec5032b4e29c011f4031d6d30789)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/region-config-resolver](#c707d161415ea2bbe26756eb111aa1fa6e20fe297f8357c2314200f1bc7b4812)** | 3.614.0 | Apache-2.0 | -| **[@aws-sdk/token-providers](#2797e884608a8f3c4d716b944c9df465acbf619c27612fecdf21e6feac32ffd4)** | 3.614.0 | Apache-2.0 | -| **[@aws-sdk/util-endpoints](#d7c10ece9c460c5fda50acd92143946e29643997740b52f22a2db086204b922b)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/util-user-agent-node](#78337458e259597e1af9ae36c139707b9d47d298d6b660fda8ca49f7a6039933)** | 3.614.0 | Apache-2.0 | -| **[@babel/code-frame](#414cb15586d104447ca15cc1904c5779eb415e9079a4a3ca6a81ad96ba9ee4e1)** | 7.24.7 | MIT | -| **[@babel/compat-data](#b4fe3477d50389378e6666362dee06b0abe468140f77f427b952059f193a7a38)** | 7.25.2 | MIT | -| **[@babel/core](#cb1e750729bb20848944291eb3bd3ec445a032e1929fef18d6ee0a6ef3f04bcb)** | 7.25.2 | MIT | -| **[@babel/generator](#0b27790f5456040ac13e71653c95ea0152f86742fcab51983e67601681ba94e0)** | 7.25.0 | MIT | -| **[@babel/helper-annotate-as-pure](#029a306089573d76f9def44953787148e1b886d6f554efd9b97b9e7c226a0bb7)** | 7.22.5 | MIT | -| **[@babel/helper-compilation-targets](#508649a127123be64df2bf11cb716138ec0b9e821f15f99f2f4ff05ea6b4da74)** | 7.25.2 | MIT | -| **[@babel/helper-create-class-features-plugin](#ecefee5d4a0100be1536cec655793a6bf8aa75d540cd1d4ce8df49a91d25f653)** | 7.22.6 | MIT | -| **[@babel/helper-environment-visitor](#7c3618d6e312d4ee318c25b43c5e6e8b79bdd545f899341f34f4174f993f75c6)** | 7.24.7 | MIT | -| **[@babel/helper-function-name](#341cda70cf85da27703ac922b9c9e2ae965553830dec7e94a358ea0efc80e33f)** | 7.24.7 | MIT | -| **[@babel/helper-member-expression-to-functions](#a4b70dbf2d35802a3d8c37e07c5cf031678d08474ef4ab11a6d7e5e3a3143626)** | 7.22.5 | MIT | -| **[@babel/helper-module-imports](#ae249528a13dcadd4a50009d6fc23533184b7512e6029f8e75472bc05ec78328)** | 7.24.7 | MIT | -| **[@babel/helper-module-transforms](#ba2e9abfc9b01015dc06b6eecaff1e93add098ad2ee1fca4541d2a42b1e3b265)** | 7.25.2 | MIT | -| **[@babel/helper-optimise-call-expression](#4e8bad824c45ef99b87f6cf7d3f35a61a8d2d36406972594e230d12ae775ec9c)** | 7.22.5 | MIT | -| **[@babel/helper-plugin-utils](#b7852d4cf81a7e126d632935ff358c99ae9f07948155e64224a2d526a903a009)** | 7.22.5 | MIT | -| **[@babel/helper-replace-supers](#a646f77bcb685d394b994b1e972791acdfcd92c83f33daec4ff2e75c9b1ed148)** | 7.22.5 | MIT | -| **[@babel/helper-simple-access](#72de0cb66b9416da47c095a80457dee176b7e8944b20eb0aa927ee59517c69b1)** | 7.24.7 | MIT | -| **[@babel/helper-skip-transparent-expression-wrappers](#3680d72a3e5058442cc8966d761775227dc7296f71c862ab179c463d5caeb58b)** | 7.22.5 | MIT | -| **[@babel/helper-split-export-declaration](#05dfa4aa91ff28ddfbe5e3741d3535f2998fd2ff8619ee42a619458dcca04873)** | 7.24.7 | MIT | -| **[@babel/helper-string-parser](#4b5727b5007527084d63346bf4767bc3b8683c75b68fc4f3a1a3d0cee5fa235a)** | 7.24.8 | MIT | -| **[@babel/helper-validator-identifier](#cd56a60c2382cafd5f5f3432d2af1a5103bcbb862da8abd0d0db0316886a2789)** | 7.24.7 | MIT | -| **[@babel/helper-validator-option](#cfe2d04997b6c7a764f96a7383b7518f4ad73844a12cc8dc3537045dcc297fad)** | 7.24.8 | MIT | -| **[@babel/helpers](#43b0b2e5ad67e18b90f0a2f60c96c3818519ddba3de59ed0c52a594f33e7b32a)** | 7.25.0 | MIT | -| **[@babel/highlight](#ac1d96bb7961d93c529e7b46f2fcf1ee07f0cb15851aab1ac5f212b46e0f0e7d)** | 7.24.7 | MIT | -| **[@babel/parser](#4dfa90cfe90188b3d219eee843ef7f70003af7c190bbb15dd2fe74a57ab9ae16)** | 7.25.6 | MIT | -| **[@babel/plugin-syntax-jsx](#92b0c9e2acd6beca918c90ecdc4cc5973ac7c517f7dee4ef88df317effdfa44b)** | 7.22.5 | MIT | -| **[@babel/plugin-syntax-typescript](#61156a21baf5a28e3fe10ec0f30808684165b1dbb5f5122c2e2eaf69f6f4f237)** | 7.21.4 | MIT | -| **[@babel/plugin-transform-destructuring](#c97fc3729e02faa151dc6eb84560e5aba3f15e1b409cf5ed2a58431f96660368)** | 7.22.5 | MIT | -| **[@babel/plugin-transform-modules-commonjs](#9dc9700c07e14862f1c48a1e4be203ffe5e62597a92411fba7140f125638e391)** | 7.22.5 | MIT | -| **[@babel/plugin-transform-parameters](#6fac48e0505318a21b9554f11767b16b6a8bf8cb79c8bf6379fff44932cfbbfd)** | 7.22.5 | MIT | -| **[@babel/plugin-transform-shorthand-properties](#b93c2977332c87c88bb42733c298a494df63eb1ad048aab45aa7a57960fbce6e)** | 7.22.5 | MIT | -| **[@babel/plugin-transform-typescript](#01d55893e2b014a36f9855b9c88123888b53f8f2f205e7a9511e2272a8c72ce5)** | 7.21.3 | MIT | -| **[@babel/preset-typescript](#6453c0322ee9255614c50610d48452459d62e0663cb3d060b83e4c3b7dc06dc4)** | 7.21.4 | MIT | -| **[@babel/runtime](#3a0292b85c21e6020d26f99075ac094fa943f759b0df9b7c01cccf01f65efeb9)** | 7.21.0 | MIT | -| **[@babel/template](#ce7b7770e36438d8eb9e8713520aca18c79d1fd0cad068eeb5c88cede557f6a3)** | 7.25.0 | MIT | -| **[@babel/traverse](#bc1b8d30e8e37f5eade430e098b05094a0dd90264ff2c291510973e5315014af)** | 7.25.2 | MIT | -| **[@babel/types](#c6630d254fc6e684be9d283c7020e7e911bb98d9c99a3e405e4467b1e57ec9f4)** | 7.25.6 | MIT | -| **[@codemirror/autocomplete](#62d2362c07f0c11664969b60d0d7c3e081905838b8994675aaf0e6c67baf358d)** | 6.17.0 | MIT | -| **[@codemirror/commands](#e12a76404dd2d66430f2dff53a430449896e9b5c2558779497b855ba2ab9326a)** | 6.1.2 | MIT | -| **[@codemirror/lang-javascript](#d5fb6a843784efdc3ec06ae43bdf3ca13ec93a6bce802995a47cf7bddafc9628)** | 6.1.2 | MIT | -| **[@codemirror/lang-json](#8681100c5ce2bab822c877bc288cac59b84b13ff17735c301d4e1c7fa5924720)** | 6.0.1 | MIT | -| **[@codemirror/language](#5528845a8e28aec6e48cb76145e25db0921b87499dc07ab852cdeca48b9f87a6)** | 6.3.2 | MIT | -| **[@codemirror/lint](#9b9400c17e0d1474348d87ba1131d9609c3598ea4d575380f81fd746b02ec796)** | 6.1.1 | MIT | -| **[@codemirror/state](#7db8880200a14064e03a5e8dd0483aa16511fc8a0c4e09353d51816771f8b63d)** | 6.4.1 | MIT | -| **[@codemirror/view](#f6bea8a649eb633e0e66739e6d3bee4d37893904778e421d126f1e5ae250c9fb)** | 6.28.4 | MIT | -| **[@dnd-kit/accessibility](#bf712d0ed1df4df5829a9e9695c42e816564346a70cab60f6eaf9c141f8b510d)** | 3.0.1 | MIT | -| **[@dnd-kit/core](#6200777f2fce7fbea84b65146c30f3f882633a73ab4e85f62de992928bebd267)** | 6.0.7 | MIT | -| **[@dnd-kit/sortable](#059a166729dc9306b37987bfa0eaa5e59b3ffc6928155d28750993d7178ea61e)** | 7.0.2 | MIT | -| **[@dnd-kit/utilities](#5c1b45075a016b1605974d8314078eaff1a193cb964f113c2e3730cbe9603ae0)** | 3.2.1 | MIT | -| **[@electron/remote](#1b60dc9421c1b6d8b9d0e622fa6b2ef72f605502fd87ad509ea160940395ab6d)** | 2.1.2 | MIT | -| **[@emotion/cache](#c91e3f11a83bb52488c9d1aa63b8e135037dbebc6acd2717e994939f5547b521)** | 11.11.0 | MIT | -| **[@emotion/css](#0f0fe64169ea56b12722e0c13f21cf260cb4e2a9840c0b909e6871d870ba3129)** | 11.11.2 | MIT | -| **[@emotion/hash](#b42900e08e5dadbc62da63a30f552d7705f99bf37c9468aacaf4d05af9589206)** | 0.9.1 | MIT | -| **[@emotion/memoize](#1827146c6aec82dcee79fa8bc04b0315431dd1ce05aae537ea63a88ce1580dcc)** | 0.8.1 | MIT | -| **[@emotion/serialize](#55f5a8e0d65e17a53e71c997b847af76e4e1c46fc25aec5c6824a23ced36b5af)** | 1.1.2 | MIT | -| **[@emotion/sheet](#e421ab8cefe597cf44f29ad92e17c5dc018be162bdac5bc5476ebac908aa3309)** | 1.2.2 | MIT | -| **[@emotion/unitless](#6f21f2d3d65978942c063ac7244c87c1e70353c1cb50b664bb1d1887e84521ae)** | 0.8.1 | MIT | -| **[@emotion/utils](#f6b1e8b81a4cecb8428a258e22f946a728b5c73d12a8d5cb55087f672c0ce2bc)** | 1.2.1 | MIT | -| **[@emotion/weak-memoize](#e5fd44184f5735455cec841f564e21689561fdc449fed6922f4999dae125d2f1)** | 0.3.1 | MIT | -| **[@jridgewell/gen-mapping](#1e660067f4d1364dc830c372517d8ec92eddc9af7eaa6b1e698d478b286abafa)** | 0.1.1 | MIT | -| **[@jridgewell/gen-mapping](#25a8188ec7d87cf1b9baf2470bad1f75a22f246ca0fca732933d26fd488ef5d2)** | 0.3.5 | MIT | -| **[@jridgewell/resolve-uri](#f356bc3bb9c04f5fe4e387a4eea4e74125aae03bb50f846d956d7d986d200f50)** | 3.1.0 | MIT | -| **[@jridgewell/set-array](#46727c727ad43ad8e382221964d27c475629a5635986edac6ea622c772311421)** | 1.2.1 | MIT | -| **[@jridgewell/sourcemap-codec](#7b2141e6a44d38d8458ddcb163c26ab65d5782f6c25465b1954182593dd0c2c4)** | 1.5.0 | MIT | -| **[@jridgewell/trace-mapping](#73923b51cccefe7db1ead00c09a18978443a238d51a858a7a0c86868a9a4ea3f)** | 0.3.25 | MIT | -| **[@lezer/common](#4bf054ecf9e3b46b5959ff484326d62af9e9d7698317b1e8a5f11a5ebf66534a)** | 1.2.1 | MIT | -| **[@lezer/highlight](#30f07ec49dde0ce2f5c814903361f4d9c8b9fc2d8bb143d2e682e05d94a69ee6)** | 1.2.0 | MIT | -| **[@lezer/javascript](#6f8d761b240b610d6ad180799f8b36219b20649cbce80bd3cb7e669082e92ef3)** | 1.3.2 | MIT | -| **[@lezer/json](#7869bdb7c09e2ae1e28909eb504f475477cc5ed0750dc8ccee42886961975253)** | 1.0.0 | MIT | -| **[@lezer/lr](#1443872b0ea87b0af4967c9026094e634c83118fb811349742ca05bde397412b)** | 1.4.1 | MIT | -| **[@lg-tools/test-harnesses](#d9d520c615bec249e9215664d5dbb781e77d0e048253f0f1de362a8bb6212d6e)** | 0.1.2 | Apache-2.0 | -| **[@lukeed/uuid](#82700fba068def47ea9842f28d700a387f59da805f74a6ed10a5eb7eece4cdab)** | 2.0.1 | MIT | -| **[@nicolo-ribaudo/semver-v6](#0db933ddbe9acfd097ee5ee08e4afb1f4f7a64ef9712f95fef7958494c8e02cd)** | 6.3.3 | ISC | -| **[@react-aria/interactions](#638eaf69f422aa3fbe2277f9e95b6b87e64569742134491d2653e9fc05c8f58a)** | 3.9.1 | Apache-2.0 | -| **[@react-aria/ssr](#d50578768741f1468c3d5dc0da1f585e37a01e7e13b44149ff094a0a5008d023)** | 3.2.0 | Apache-2.0 | -| **[@react-aria/utils](#1c0ce36c400225256d025ea8b6f4d36b8d4491f6c81cc1e9dfcb961dbfe05bd7)** | 3.13.1 | Apache-2.0 | -| **[@react-aria/visually-hidden](#67d321e4ea237fb1e2b91f294d1f31af998f4e1ca75ea5eb4a780b2e254d3149)** | 3.3.1 | Apache-2.0 | -| **[@react-stately/utils](#0827474019c352ac03e04eb7fc65f7fe2eba2af1f14f05cc36bb74a504d893f5)** | 3.5.0 | Apache-2.0 | -| **[@segment/analytics-core](#ceca19940ddcc60d35099f1b04cb449caddc02f22a12fc4b6e9afab7b5b38e14)** | 1.4.0 | MIT | -| **[@segment/analytics-generic-utils](#9f4e5775b541ec8bbc32077308532f03fb923e2fb19fff11ac4506ee4498af13)** | 1.1.0 | MIT | -| **[@segment/analytics-node](#5e36f09aa494e968de1e219302594c1aa82f14d2287c063fe1be910021fe1879)** | 1.1.4 | MIT | -| **[@smithy/config-resolver](#50159dd3d75e4f4233935008371e16a6721f052e958a5c4b9c7283e5adaf8f33)** | 3.0.5 | Apache-2.0 | -| **[@smithy/core](#874e0237249efe933850eb42f816f882404af60f8a1512dd83c6b1c98ddc5d19)** | 2.3.2 | Apache-2.0 | -| **[@smithy/credential-provider-imds](#34611beabdec16106966ebb4943cfecdc43c8cc142e5edae6436365632b9fa58)** | 3.2.0 | Apache-2.0 | -| **[@smithy/fetch-http-handler](#786f2bfacb944bdb568e1a786606a6a2dc02f867842f7800355b908aba260891)** | 3.2.4 | Apache-2.0 | -| **[@smithy/hash-node](#391a956b0a8b9c2f7af88541150eca7a355c08e2c891e15170a0cedb66f8c843)** | 3.0.3 | Apache-2.0 | -| **[@smithy/is-array-buffer](#3e840c8e473fca775cfba50e1c0832e2a2734ae3e75418b55905122f260bd73a)** | 3.0.0 | Apache-2.0 | -| **[@smithy/middleware-content-length](#93ab06858226b2392bd8f35d1ef56a363eac4cf19200bb8ee81e842384a8e2e0)** | 3.0.5 | Apache-2.0 | -| **[@smithy/middleware-endpoint](#dce020d94d521d84610461a98027c3821bec38cc676a35284ead114484d1dc06)** | 3.1.0 | Apache-2.0 | -| **[@smithy/middleware-retry](#a4651b327b9add4d8cdd1e0d62ac38d992cf25b495beb18c90bf3d09108c1703)** | 3.0.14 | Apache-2.0 | -| **[@smithy/middleware-serde](#c3675ccf95f0205d19f112c92a7a34849fe09dcf0900877b295692cdee3b1a3b)** | 3.0.3 | Apache-2.0 | -| **[@smithy/middleware-stack](#ea63c1e355c55bbf2e59545c6fb05399ca941daeeec43540feb38e2fef98e93f)** | 3.0.3 | Apache-2.0 | -| **[@smithy/node-config-provider](#f3a27d12f80a2d60af7facfff889c045d65b56e0ec20904c87b998575b7e4605)** | 3.1.4 | Apache-2.0 | -| **[@smithy/node-http-handler](#c37a7f5194e1cae47e8a63c4bb449434097c1beba0e14d3d7f821da9202da3b1)** | 3.1.4 | Apache-2.0 | -| **[@smithy/property-provider](#1af73ed46575c11cb17328c5ab023c4689b6fd3aac8e95637d8a2430c8234d4e)** | 3.1.3 | Apache-2.0 | -| **[@smithy/protocol-http](#2ba5cccbf0f9869872f2786a1c202c5d4dfb6aa59b8e933b0d32c5bfaef8ead4)** | 4.1.0 | Apache-2.0 | -| **[@smithy/querystring-builder](#200f9715ba37573546a0ba50d6600f493501ad1fa99a1214f4652edd3f32eb6b)** | 3.0.3 | Apache-2.0 | -| **[@smithy/querystring-parser](#b2d703203bc9334d657f0cfe5e2f3ff2e029f4be60ccb9a837373f1019e30bc5)** | 3.0.3 | Apache-2.0 | -| **[@smithy/service-error-classification](#557a776a2222ef5b1930bc9c154cc80a4422644765747502c34995779de707f9)** | 3.0.3 | Apache-2.0 | -| **[@smithy/shared-ini-file-loader](#103ac7bac6c71c7909ddff4de45221eefb970300f5eee041039c35ce86e6ade0)** | 3.1.4 | Apache-2.0 | -| **[@smithy/signature-v4](#4a110aeeb62df2468523d0078962af35910d6e836463e11142bcc1be2d1f4670)** | 4.1.0 | Apache-2.0 | -| **[@smithy/smithy-client](#d41834802fb9a283a133cc778bda33ae0a4580819e10c0d12797f83ac83fa1a9)** | 3.1.12 | Apache-2.0 | -| **[@smithy/types](#66e18d9960829b34832f8284a597f0e8bc4f70149542f7533dc9f05866bb22f2)** | 3.3.0 | Apache-2.0 | -| **[@smithy/url-parser](#cc28500f1b3dbf7f305e81f81414d3f5cd733e00df104a56acdd5b82f2f19ef4)** | 3.0.3 | Apache-2.0 | -| **[@smithy/util-base64](#c13f86d5882c72328221d234d624fc36da9fe0ef6270d9ed0f7a3690616bc0b7)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-body-length-node](#a84f0a1a3fcd05391da50ee998d84695412ce141bdae38ca182c11a58eb7df38)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-buffer-from](#33c6c26bbdc76fe4bf4ca385fe9618fa7322bd346d836ee4b18e5b322e256051)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-config-provider](#c87a7523255ad59e5f721bd27137222d188dc0507d93c4cd946092736ca3b582)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-defaults-mode-node](#17e3c5fdb381e735bc7062fa7510b953fb4f9ba1cf43ec61f9252f133ae35bd2)** | 3.0.14 | Apache-2.0 | -| **[@smithy/util-endpoints](#6bbc52b3dfd8d143c95f7c48631d054e2b4c76ed74a0e449c36a12a4d3505279)** | 2.0.5 | Apache-2.0 | -| **[@smithy/util-hex-encoding](#f797009fb996f0b306124df8c5f82a938af17ab613ee4a6d1b7e2014b26fdde7)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-middleware](#cdddd643148aefb93fd2abb8f3ea636694a4d11ed1e7e6f883fa81661a3b7dd2)** | 3.0.3 | Apache-2.0 | -| **[@smithy/util-retry](#b62c349356fcac274685aa0ab184eb71cac5084041f86ba14fd6f4cd091ee49e)** | 3.0.3 | Apache-2.0 | -| **[@smithy/util-stream](#620a9e04e4791a554ce9ddd0d3fa2f264d0d5bf211b7e5d4354411bc40d58ad6)** | 3.1.3 | Apache-2.0 | -| **[@smithy/util-uri-escape](#00c89382e0278c66e8d4394996711d826b23491ef5e313b58f5681da7a07d0b6)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-utf8](#c0da7acc7121c0e4e76c58d92e290275318534cfce16949c7b916cfa0301c3b9)** | 3.0.0 | Apache-2.0 | -| **[@tanstack/react-table](#3472fd929bf691e34b02f3f62232cafe55163b92e3c51afc884780ba2413e67f)** | 8.14.0 | MIT | -| **[@tanstack/table-core](#8a18d3df915b2b72a0c8a845e2a930504b08cb745c8e0b5537de30793b71c967)** | 8.14.0 | MIT | -| **[@testing-library/dom](#15e0d0db2fcc307557d106b8a27b182d980d667836b8d8cbb6edb67a0aab34ee)** | 9.3.1 | MIT | -| **[@tootallnate/quickjs-emscripten](#dda6dbabe98503ac1af20979be1778d7a1c8f355b85377124a909567193c2cd3)** | 0.23.0 | MIT | -| **[accepts](#4c224d266c36e8e0abc4a53eb7eaa038504ee20b9b91f3e761187298a447d76b)** | 1.3.8 | MIT | -| **[acorn](#4aa96f656a11c11b0e17ee35cc26cad7c13dcf4afdff6431e6d074261b59f47d)** | 8.8.2 | MIT | -| **[ag-grid-community](#f3a0879bf804a8156c501942869cb2b3f5c2770fe5ae768eacebf9c4856a3e6e)** | 20.2.0 | MIT | -| **[ag-grid-react](#266b3ad41f62fe9d8b3388c7e3e56532f1081dfc35c8b513d746105d0f7ef2d5)** | 20.2.0 | MIT | -| **[agent-base](#f2315537cada74050b82aaa21dcd7136d001ad9b9442d6ce952030fd890ad26b)** | 7.1.1 | MIT | -| **[ampersand-class-extend](#fa70ccae815f704b05515401eb173b69fec304f2fc4d70d8cefafecb7582c960)** | 1.0.2 | MIT | -| **[ampersand-class-extend](#e80e071b7daf67567df2ed06a0912550d865bb42f740c56f3ee13e4c9ada947b)** | 2.0.0 | MIT | -| **[ampersand-collection-view](#394cdda776a31044177827f7d787e79a65210fbf3e6d2619e2f40709248eaaed)** | 1.4.0 | MIT | -| **[ampersand-collection](#7ae90475872c8fb68869e0d81db8e343084b47fd30ab156865b4b22ae3578a37)** | 2.0.2 | MIT | -| **[ampersand-dom-bindings](#4af3a9ceda31b9fc6fc90e458e9cdbb22d004fa171f69665f659b71f19bdff7d)** | 3.9.2 | MIT | -| **[ampersand-dom](#3e17c8de5bd0d155ce04e72e923d7d76d39708be70bef26a67583c28a1850bbe)** | 1.5.0 | MIT | -| **[ampersand-events](#6bbd750c35bde9ac7cd9789013efa6fffbdb3debb597dd66deaa7a818623209f)** | 1.1.1 | MIT | -| **[ampersand-events](#5aa8f29a56511aafd27953d01cb603faa9aa7e2f92847c72f879c42646e7f3fa)** | 2.0.2 | MIT | -| **[ampersand-model](#82c2458e0e00bac271d59b70c0cc51b9d8c2ed725b62f51575b4b422c7aa5ca0)** | 8.0.1 | MIT | -| **[ampersand-state](#5a76226bf9a842fcccb127eb22fdd20e0bf973f5c4d2e3330bb88a587cbcdb38)** | 4.8.2 | MIT | -| **[ampersand-state](#50886d5661d4241b348d233af087614640a657fad2d772282410875a410ba00a)** | 5.0.3 | MIT | -| **[ampersand-view](#04597f3cef8beed68d8312481c66b00b5cfb5700dcd5e7fc97a1358472ad7dd0)** | 9.0.2 | MIT | -| **[ansi-regex](#7fa0e28daa6f9c697017b06f32a9e31a57ccfb4f138a8daded68a5d002231e29)** | 5.0.1 | MIT | -| **[ansi-styles](#3d188f4ce9ad01e2061b3dafeb74005547429b09fb5b114980303db9cf34f4ee)** | 3.2.1 | MIT | -| **[ansi-styles](#22c90e10fdbeeedded470f2fb78a8094893efd4675108074eddde452da52ef87)** | 4.3.0 | MIT | -| **[ansi-styles](#a480abbdfa49ebce7f9eb04451485c433d1fa24a2ddc4380cc92fd2d34642d82)** | 5.2.0 | MIT | -| **[antlr4](#c5ad356fae2f067425b6c90b7251290842a1f2dec296bbd5afd5ccc32dcf3acc)** | 4.7.2 | BSD-3-Clause | -| **[aria-query](#ea709a066de0bac38519808675639c17ed8511255f6f1604c0262ea3914cfd2f)** | 5.1.3 | Apache-2.0 | -| **[array-buffer-byte-length](#cc88781e246dc898d7b281d0c92ffc26ae81261dc07ec4ea7d1257688f769328)** | 1.0.1 | MIT | -| **[array-flatten](#832052c97b92484a7685d432fbdac9cb8d6cd26a0de715df336780d91762bfc9)** | 1.1.1 | MIT | -| **[array-next](#2eca7126c828f7c4b047e8bc3982acc390adc906c9e1fd2ab512d7ade811a40d)** | 0.0.1 | MIT | -| **[asn1](#c03a7b8eb9b75e350660b88148698446ab536a4ea01c5f321c14036a86aac2ef)** | 0.2.6 | MIT | -| **[ast-types](#b10f17e6889028ee16e1f388d24ed535333cd289f0871c70d99c6180f498c6e0)** | 0.13.4 | MIT | -| **[available-typed-arrays](#b26a9227325a0e2f27e4793244a52200e15f63f970e71f86ead22e0f696c4a41)** | 1.0.7 | MIT | -| **[aws4](#10a86cbc2356f4c2e30ecdd2d3f40dce2dee62e2a2efa860bf539568a5d14573)** | 1.11.0 | MIT | -| **[base64-js](#cf278cb8d073b3bd22b60816c2ba78b69043aec6bcd673437b4c1db3375153d6)** | 1.5.1 | MIT | -| **[basic-ftp](#2893c6a2ae0507b9073fc65146e8902587fef3bfeb9e94a67ea34cb09124b902)** | 5.0.5 | MIT | -| **[bcrypt-pbkdf](#b6b5900f1e48a933591abc1c918fbcc9c890b3d071f607c59d704bc1c13b3937)** | 1.0.2 | BSD-3-Clause | -| **[big-integer](#eb3eaa39f6d9126fdf0b39f43641e13908ba5ab8b70af073669d23cc768335b5)** | 1.6.52 | Unlicense | -| **[bindings](#acdb65ce90d2786593049f690752613250632fd5aeaa2960152abc4f0e8f3a44)** | 1.5.0 | MIT | -| **[bl](#0e8c95ceb67a28a94b8caec6fa59d55974c80aab5dcf21bf1b17b0867f694c3c)** | 4.1.0 | MIT | -| **[body-parser](#ac02c7f4de34d468bfc87444d6d5f4691f322aa0b5dbfe2c2d0c3c42fd078dec)** | 1.20.3 | MIT | -| **[bplist-parser](#a012056f1b32796d923573a3b1ef72cf36943d95e5e2f6af0f7eeab57a21be24)** | 0.2.0 | MIT | -| **[bson](#b355c474f7d8440212aca8ad979743ee65c159f2d853f15ebad55e080bb21ae5)** | 6.7.0 | Apache-2.0 | -| **[buffer-alloc-unsafe](#1022220a813dd092d3ced592ac36121a00bd08a9c2020e08ad370dc29ed217f0)** | 1.1.0 | MIT | -| **[buffer-alloc](#d5cbc95b9dde4a46cd45334630efe3bc9025c904074bee845376bd60651441c0)** | 1.2.0 | MIT | -| **[buffer-fill](#c3747dfd267829ceeb564a1717d0c65d88d2b366e215f640067abefac59e3fd4)** | 1.0.0 | MIT | -| **[buffer](#409d076f160d0351818531a7c09f5e2928335b83e3f0070a7f3e2685553efa6a)** | 5.7.1 | MIT | -| **[bundle-name](#a4c3d6b89061e28c4e5d7937e09f0886c37c406b9c547105da495923b5e3999d)** | 3.0.0 | MIT | -| **[bytes](#bc4d24341f85f604856ec6dfddb2dd192b71929ff892a8549f6b5050fbebac9d)** | 3.1.2 | MIT | -| **[call-bind](#855e84602be0584cc1eb1123aa7791d7a2cc4ed81d396818fb2b13515af7d811)** | 1.0.7 | MIT | -| **[chalk](#8b8d3d6ff6233601575f891628d83bd6b34978a103d513931ae45b00f0e07585)** | 2.4.2 | MIT | -| **[chalk](#0c7c7a95e90c3fdaf99df4851bc949785311d8ea1d2d4498615f37af8fa16cf8)** | 3.0.0 | MIT | -| **[chalk](#c1619ad3bd43ce54cc7a4702c368501fd4fb4fa629077ba610f81d81bcd3f5f1)** | 4.1.2 | MIT | -| **[chownr](#3dbff1a17bbf2c33026995132ecdd14757cb3bee815f4636fe43df0f5ebdcf07)** | 2.0.0 | ISC | -| **[clean-stack](#e1e3f1193b2ac191874d758c618f1552b4679c5ef91d3d59cf46385c9da4e965)** | 2.2.0 | MIT | -| **[clipboard](#c48767bc6ed2a136b20ca8ae206e6a049e1e98a7db03120c44fbd219389ea248)** | 2.0.10 | MIT | -| **[closest](#d06b758bb0a5c68d314479321acf51e1e5ce0faa84afba2817b574067e610ef0)** | 0.0.1 | MIT | -| **[clsx](#112cfff031c752f6ab3595be6de44b2c02620da21c18ce4e2421b6c176f6ee08)** | 1.1.1 | MIT | -| **[color-convert](#a85d5170e73259d44269aafb78e1863169810a839a870124e3574457d214e28d)** | 1.9.3 | MIT | -| **[color-convert](#55c87baa2843a3df1bf7eb7ad8e5c1329afea9bef4e94386d484de20b03c119b)** | 2.0.1 | MIT | -| **[color-name](#e7c2ecd62026cf51768973c2e972505cab32d45b9368aa35105af0a68839ad37)** | 1.1.3 | MIT | -| **[color-name](#66a8b5479032c7b05b81caf8cef9ed81be452b9f3f299868af0167900a4db262)** | 1.1.4 | MIT | -| **[component-event](#32d720e7a217746311d55af1f088a9ab8ae8a3966be80250634fbff4c2c45935)** | 0.1.4 | MIT | -| **[content-disposition](#b0fd3fa1e97f5d899f52e84c86cd6d0a077cabef2388f531bf62f1f1dbdbc371)** | 0.5.4 | MIT | -| **[content-type](#65e9de41d2cef0ed95875e387bc56dae50b05d41b1a7868ed68c32834843bbab)** | 1.0.5 | MIT | -| **[convert-source-map](#46e32cfc12079a57eefebf967b5959d3657698c6a389222eb3228f49cb2fd8db)** | 2.0.0 | MIT | -| **[cookie-signature](#28f6116b52488ac66a14424869fc346f611bea6c894e7d0f7f2ca701deb8e49c)** | 1.0.6 | MIT | -| **[cookie](#c396652ff004385e7bdb8398e37493d5f4144e475282a413ec52f1d3fdaf25da)** | 0.6.0 | MIT | -| **[core-js](#2d0305d15eab4ad23db10b97faf9d8e8e0d5ad30a616c5892d1edd535d8a08c8)** | 3.17.3 | MIT | -| **[cpu-features](#fa992e00865a6ed732ac63bbf64c89ee2da4ec39944684e6002a3a34b5adb65c)** | 0.0.9 | MIT | -| **[crelt](#9eba7acaba2af9d27a0a18fcf40d1f133ffa888d85321e4633e7dac58cab2db9)** | 1.0.5 | MIT | -| **[cross-fetch](#2cd4375069c47bf89a4b399cd21cd9573086803b2cb9fc56c29df5a598e051e5)** | 3.1.8 | MIT | -| **[cross-spawn](#67de3a765808182ee1018c35bc07d7a023a8d645e98cc32814dcac2fc2c427ff)** | 7.0.3 | MIT | -| **[css-loader](#36a5fb6f554559a2f884527f4dd7aa81131ccc3b1aee899472cfec2eda765798)** | 4.3.0 | MIT | -| **[d3-flextree](#d4848a862048d0f4733db2a8631b802f3b5f86f2d4a1efb77fc8b8cf9a06bf73)** | 2.1.2 | WTFPL | -| **[d3-hierarchy](#e718643319205524a77c56ca75dcbf37e3975cc5e187760d1eef01cdd94a7d74)** | 1.1.9 | BSD-3-Clause | -| **[d3-timer](#8d462b04307bb707afc68fb60de32526091852b278fc753ebd023aee6ac2faac)** | 1.0.3 | BSD-3-Clause | -| **[d3](#af9ae6fd28524ec267db82c3ebf75e02f2806418cda4ab310971631d632d3317)** | 3.5.17 | BSD-3-Clause | -| **[data-uri-to-buffer](#496bb13aeb7c14308e5c8c3e20ea81509260ff27a35abfc39b316ced3c5d6860)** | 4.0.1 | MIT | -| **[data-uri-to-buffer](#27ce7d71d79fc8fbfcac8bfd802d2dd044056224bb2a737180caf2d7e268c5ad)** | 6.0.2 | MIT | -| **[debug](#233219ced46fb5b84e28859835e97775eb9d0181f4cb85d6aa5cecb61e595947)** | 2.6.9 | MIT | -| **[debug](#f9b654e80c05af90dc288869333e452db67fbba75969b385acd60df9895a7944)** | 4.3.4 | MIT | -| **[debug](#8f6d58c520b4b6702b6fb9abb811ba1798560ac052612c0fa8dc243516825360)** | 4.3.6 | MIT | -| **[debug](#8bcd678354554043662ec7b1a1fc890da6dca2f1f245833d5400831daaeb3fc5)** | 4.3.7 | MIT | -| **[decompress-response](#71cad5eab34cc643a6a7853a43d3090ac7e8b6014c9ec55fabb8112cdbfd9fbd)** | 5.0.0 | MIT | -| **[deep-equal](#2f9e585913d3ba1d9ffaf3e79f616e66788fa687f6069a567aee25bb3045410a)** | 2.2.3 | MIT | -| **[deep-extend](#654bd7d00073c2195bca924a07d93393b2aaf5cacbb6f52a383877f6f33dbfbf)** | 0.6.0 | MIT | -| **[default-browser-id](#bc6a381b83371172dbb72cac459792e2d4d55ecb71165c082142ef085b2130ee)** | 3.0.0 | MIT | -| **[default-browser](#bf5c7331e49e4c648e57747ffd553870a7fe79fea24780366a6bc22ef346f304)** | 4.0.0 | MIT | -| **[define-data-property](#a776d26c4eb3429c37b30afeed2ddcd9be51dec6d9ea7025b0e6426a5d4f78d6)** | 1.1.4 | MIT | -| **[define-lazy-prop](#6e79b04c4690532e40a5cdfb76f3ab49de1d6778466fede1548a2e19ac8e75c4)** | 3.0.0 | MIT | -| **[define-properties](#332935df321f270f8588f3ae5e25759d1611d1610bd987eac78b79dd1ee5fe35)** | 1.2.1 | MIT | -| **[degenerator](#6cb75d096539cebca1a3054d0012d40eda0230d9c8da8455621c9d78b92f0b69)** | 5.0.1 | MIT | -| **[delegate-events](#9bd9e92528721909dffad7816bd183b65a96891a390f9420036ba9a2cc6ae291)** | 1.1.1 | MIT | -| **[delegate](#bc2c0cfa061f5865ffa83a2bf2c0f3e29dc3a2056113b1ce3e9acd33709e7606)** | 3.2.0 | MIT | -| **[depd](#7028878ddf0fd7d977703a868b5ec8df7220b2f8e7d67827e93767cbb0f21b99)** | 2.0.0 | MIT | -| **[destroy](#b0d735940e17a041d544c301b27489e5d09c3032fa11e7832f03be6541182fd6)** | 1.2.0 | MIT | -| **[detect-libc](#75227d1b1c09630ea361abee4d27101e350832bbeab9640a013c82662408b467)** | 2.0.1 | Apache-2.0 | -| **[diff-match-patch](#850176c67954354dc12126896278644187ef9d1eeeaa1d67f1b6ef48b0c23321)** | 1.0.5 | Apache-2.0 | -| **[dom-accessibility-api](#a91e4ceabaaddea1b80532694b37621980591fa28c7144a3a848e66363bfee06)** | 0.5.9 | MIT | -| **[dom-helpers](#8d51cc2c2eba67a9ee7b80bdbca48b1102ceeb0618178fae05b1a82522a80e6e)** | 5.2.1 | MIT | -| **[domify](#4360a769ee10e827f9ae503aa7ea9aeb9039932fa02ac938316df303704a7fb1)** | 1.4.1 | MIT | -| **[dset](#f51cb933ffb40a4dfeed4e6c3f7e6299cf7d05c42528b3fccc5bc7cab310914c)** | 3.1.4 | MIT | -| **[ee-first](#e2746902c758ae8a6f91ffb9618cd53717f936cb33c6323e65b6b7b24f7ebefe)** | 1.1.1 | MIT | -| **[electron-dl](#e97e034c7b93c63e7a433d75f6f1de3e0668764225ebbd61dbde8d1b55d6f3b7)** | 3.5.0 | MIT | -| **[electron-squirrel-startup](#09fb8168e8fda2e174f8d1a1c392ffd8f762c5637c788edd00d1e2486d060349)** | 1.0.1 | Apache-2.0 | -| **[electron](#b8949aa8130b5ef5da1efc84f1a58e30028db62c230eb1da216dcfd7b263f55f)** | 30.5.1 | MIT | -| **[encodeurl](#b89152db475e86531e570f87b45d8a51aa5e5d87d4cc3b960cee7b8febf1d26a)** | 1.0.2 | MIT | -| **[encodeurl](#177948a319ae0aeebbd65742c53c62b37c75ec1d021afa5a188d10a7ceae6623)** | 2.0.0 | MIT | -| **[end-of-stream](#fadc10994f5fa767d06fb25cfff35fb17a895daf3bc3477c782907668ed16563)** | 1.4.4 | MIT | -| **[ensure-error](#3b1eba5276d89414cef21a1007e85c4f1d6749bf57b300e082ab23975a41dbc9)** | 3.0.1 | MIT | -| **[es-define-property](#f19a2c06a58db5974cd4d8abbd3fa0453122ea6d3bac0de0603ca69f72dcce38)** | 1.0.0 | MIT | -| **[es-errors](#645b141d3027520f69209dba8e012e737f0ee8cad89ea8d0e26d02669d14a981)** | 1.3.0 | MIT | -| **[es-get-iterator](#d9180f3ad32c9d77645aa98ee5b6b8c233f3341b4cdfe00a1b8909505dc0f84b)** | 1.1.3 | MIT | -| **[escape-goat](#9e11fd1d88e064409c700bdd041e7a9077ebe4bb0e8ad151a6820df52ac0a9e3)** | 2.1.1 | MIT | -| **[escape-html](#5463e0a52abb42be051fba2f4ea5d49d907d2b5ed09df0983b54f88c59c8c481)** | 1.0.3 | MIT | -| **[escape-string-regexp](#a9c53481a9db89e7cf01e302086c50fcfbde360978cdd2bbe1e52a430d3fee42)** | 1.0.5 | MIT | -| **[escodegen](#1e641bd52df32bd017c4d69033099f93df452d219efd67395b78fead686277f3)** | 2.1.0 | BSD-2-Clause | -| **[esprima](#48204389e2519fd65c7341ad2eb6174fad10df3c5b019e78cbabeb2488eeca37)** | 4.0.1 | BSD-2-Clause | -| **[estraverse](#34389c51a0aa1205dfb23a6e76beb58b791316f617dc3d09788e50fe99fe5338)** | 5.2.0 | BSD-2-Clause | -| **[esutils](#cbd4dd8d594e202bb6c9713d3b097eea62783e99d79069a29ebf4ce921e129b6)** | 2.0.3 | BSD-2-Clause | -| **[etag](#dfcb09916bd8554b4d5ec250d985c02174ddfe92cb0efaa97df51b903ce0adf8)** | 1.8.1 | MIT | -| **[eventemitter3](#2845c3d706e174e51442028b5aada4c274955de08db3fc13005df746b5d6b3e6)** | 1.2.0 | MIT | -| **[eventemitter3](#344ac4a1404cf0768bccce4529868ee2081bb2d49637269457647deab073e298)** | 4.0.7 | MIT | -| **[events-mixin](#5db5de476dd54dc255312e4dcdb45fb765e1b7d0622d9b9ba86b65527de02a1c)** | 1.3.0 | MIT | -| **[execa](#4172423d3420d919e31613f23914ef325af8a3bf9ed3c6110a4053369b1cfddd)** | 5.1.1 | MIT | -| **[execa](#099ba5f976333854bfd5aa2237fd12d883c4477af76007a7963109833edef012)** | 7.2.0 | MIT | -| **[expand-template](#46d3e73ca0d4a8c14e99252386f0a5c1a4fd8b2747331373d7b4da97105c15bb)** | 2.0.3 | (MIT OR WTFPL) | -| **[express](#8751e219c34fdecbdbc22ade072ef51354f9ff6434904f388f85002299a5a1ec)** | 4.21.0 | MIT | -| **[ext-list](#84470edae99e3ac5a9fdf9da513cd9a1ea7e479ca5fca13b6abecbb4c522f97c)** | 2.2.2 | MIT | -| **[ext-name](#ad9b31fcbd25bf889177f1e55d92e083fbc5ae2460904d8a81abf075c4762abd)** | 5.0.0 | MIT | -| **[facepaint](#7f6881dbbff5f35b8670063d56384fa880a5558aeaf952f1dc00997cfc7cddd4)** | 1.2.1 | MIT | -| **[fast-deep-equal](#c3b1bc7fbf8bedbac237ffb2eb2aa967bc264fc393bb6451c52a831352540d09)** | 2.0.1 | MIT | -| **[fast-memoize](#f613a3ea5150bd2496e9eb6f15357579eb3ec308a8ee91cdafce0d68ffef289b)** | 2.5.2 | MIT | -| **[fast-xml-parser](#ebbe8cacbca0e6da2c884ade309dddffc2df1cf8f3532ffda03e31aa6d3a9a3b)** | 4.4.1 | MIT | -| **[fetch-blob](#9a40c73e2482c1cc651991133722a6fedd12dc752d2858a21da24395e6fc8461)** | 3.2.0 | MIT | -| **[file-uri-to-path](#9eb41790b1cce0829afe7926edf4be80e0dd6927cd8376c00a54a8fc86f8943e)** | 1.0.0 | MIT | -| **[finalhandler](#f3d0b351ed5ad496bcb1412f1508b4cd24709821f254c8f391f6e96999f97900)** | 1.3.1 | MIT | -| **[first-chunk-stream](#c940079dd0a2457019ab184334f928cab84e316cd4016ba3581b312aa55c70f9)** | 3.0.0 | MIT | -| **[focus-trap-react](#4db13d4bfad6e874b38f8054935a1c7872c265b0a9f279e24dbe2523f3d1ce53)** | 9.0.2 | MIT | -| **[focus-trap](#c34eea0a3a357645a464ee2dd814f280c9670f39b9b85132394eb15acb70916a)** | 6.9.4 | MIT | -| **[for-each](#8b82c7ffa1300f8e1575c1d59105d6b256827ec211760d6fb6f884e4290e0abe)** | 0.3.3 | MIT | -| **[formdata-polyfill](#57e46e70e3cf628270eb56d751c6e2dd8332438324f1e4f5a3602c34ff7c85b9)** | 4.0.10 | MIT | -| **[forwarded](#2d7f4275b09b041fd821b7672ebae7c9ccad3c87f3f37b6bd91306973c02b9a3)** | 0.2.0 | MIT | -| **[fresh](#d7c677c373e09a5e9c7fe1d1ce69ca3147fe0455bf5606a26251970181d9efc4)** | 0.5.2 | MIT | -| **[fs-constants](#9961a9f7535cded379a7696ad6d002a62d4826a3a8c2ffb5624383b942c879e5)** | 1.0.0 | MIT | -| **[fs-extra](#f4bda72fc58b809b6533077d1826716805d4bec29651a76697ededec9689e0a4)** | 11.2.0 | MIT | -| **[function-bind](#83de3b394293d96fb3fea968392a9d9ffb8b461f6c173bbb76a5bc51db5bec52)** | 1.1.2 | MIT | -| **[functions-have-names](#e47bfb8af99536984c43eccff65479505a133c528be9e5e73fa43c03b31749bf)** | 1.2.3 | MIT | -| **[fuse.js](#ced18d15cdf119bfd867863e1f147fb1f4021544033d6cf956803c71a14cf53d)** | 6.5.3 | Apache-2.0 | -| **[gensync](#c49cbe8d63515db5596a717f0d65eab2f06a623b4f1dfbd512d61bbdccf1aa4c)** | 1.0.0-beta.2 | MIT | -| **[get-intrinsic](#2c1a0d16eee22217701f9243a8041f80f74f0a262eb6c10bf1b1f7f41e8599ac)** | 1.2.4 | MIT | -| **[get-stream](#8d24427d88f4f3193411b16e6dbdfc05d0edc3ce08460a1c73ec55718470e28c)** | 6.0.1 | MIT | -| **[get-uri](#4ae602658ce541126b57c19a2c8c47ed82d62e55c642d49f59f14e841ddc1db6)** | 6.0.3 | MIT | -| **[github-from-package](#8cba969ea116f44491f4fbb8b391c0ab40408fc2e5380f81bc8e8e42b55fff8b)** | 0.0.0 | MIT | -| **[globals](#749052b146da20b19c298de835e7cacd7f6d1f0a87a8422e538ccdfeaa69b0a5)** | 11.12.0 | MIT | -| **[good-listener](#0700018cbdc383f6ad6d421484a062b2e19ae4da91ffeecbccf3886e5a38afc6)** | 1.2.2 | MIT | -| **[gopd](#e51829c607e5861ddbe69decfaab45dbffb62e23d40af7d1f746c5bce8d05859)** | 1.0.1 | MIT | -| **[graceful-fs](#c0b8c47fbef7d28839a82ca95e6743793680005077b011462d5c0a6d1ca1b39d)** | 4.2.11 | ISC | -| **[has-flag](#e2f50bddacaae4f231bda078470fd90f19fd780e9c2bc721710a09bcdd536d1a)** | 3.0.0 | MIT | -| **[has-flag](#7ec819116728d891777ebd4140bef063f473b9ae26d46e91f5ca78834c872abf)** | 4.0.0 | MIT | -| **[has-property-descriptors](#4616611d5db8c73d2811bc79dd6cbde0b69f1cc891c1f997448bc79546ba9913)** | 1.0.2 | MIT | -| **[has-proto](#7a8e708aab5b7c789098be88699f7f374a9b3a2f2737537a66d391147377b362)** | 1.0.3 | MIT | -| **[has-symbols](#26dae1ac20c49dbfafbfca8c84abb75e056b0213a6ff12412dd23dd752e1a424)** | 1.0.3 | MIT | -| **[has-tostringtag](#e39d802569f1249ba08678c5fb24fc1b87ee4c92cc0f6eaa259f5b54038f2e13)** | 1.0.2 | MIT | -| **[hasown](#ace41f4c3d63ecdc85c94d28b43fc006fc67f35c24ecaa112b631dbcb5c0b39d)** | 2.0.2 | MIT | -| **[heap-js](#02ff1972404d29f951641af2b6cf6b371521d70f6daaf4196dcc45e6b5dbe96d)** | 2.3.0 | BSD-3-Clause | -| **[highlight.js](#2c60adc5db39462d0c2ff2176f71b4694ffe5060c53b1aa4f6f670e269ec1905)** | 11.5.1 | BSD-3-Clause | -| **[highlightjs-graphql](#11efa7dc664403503100672cb251f0bac920e5f8ac3847419583e9318faf451d)** | 1.0.2 | MIT | -| **[hoist-non-react-statics](#48f3f00d384ea079099b9b701c304b7e276313a616f8ad0084f41ea563f876af)** | 3.3.2 | BSD-3-Clause | -| **[http-errors](#63ffbc6de129d4a36e73df25da1f31ee2a7da3b1060e1b5b3c2b5cad89ca04c7)** | 2.0.0 | MIT | -| **[http-proxy-agent](#bd2b92f8eb0b68f6d255c316d3cd8c9aff9984e8bcb584d47613c422de726405)** | 7.0.2 | MIT | -| **[https-proxy-agent](#8a149a0a84183adc7ec4c2ca491a2aced0803a8c5fdae6e99879bcb4720837e1)** | 7.0.5 | MIT | -| **[human-signals](#49d0a41c5a505634282f30fd5bf8876d5c9fd885fc242bcf16c71d3b4c4e2da5)** | 2.1.0 | Apache-2.0 | -| **[human-signals](#62680fd7715b22b948ad9771bc3f0de13d753f68f6478afdda970d4393faa754)** | 4.3.1 | Apache-2.0 | -| **[iconv-lite](#7d9ca5eb7c6d1a6f1b3b2db04e94ca19cc04caa10d923fca7d7942d47aa505fe)** | 0.4.24 | MIT | -| **[ieee754](#926bd89d8cb0e458a159fe96007510a5c9d75add2ea3e46185c68854f977a887)** | 1.2.1 | BSD-3-Clause | -| **[imurmurhash](#d1af6342e06cf4463a1e70d43bb8fd673f060cc7c236f7fe024631d6714c81c8)** | 0.1.4 | MIT | -| **[inherits](#3eafa9bfb872baf192e837ab771da2e95e983ee682371a2b1c579e518e96f7b4)** | 2.0.4 | ISC | -| **[ini](#2269ab4bd2e1fa90571f520780ab5499f6d49da3b7daee9b9dfdad9e93c33a18)** | 1.3.8 | ISC | -| **[internal-slot](#1ecccc52c5daf9836e78ebc03604e73050b23a095bc4474240968ba1b9cd8892)** | 1.0.7 | MIT | -| **[interruptor](#e8a35d2ce64b947fb7a1aba891bc1e4eb166be57a59249cda1fcc689e767b6bc)** | 1.0.2 | Apache-2.0 | -| **[ip-address](#8de6e89459554be8a933663b25ae1d1ffee71458028fa8cbe5d68b349438a8c8)** | 9.0.5 | MIT | -| **[ipaddr.js](#38a5a1606dbc89a9c65a28d1e9ebe3c8d323e107a77c495a56dbf522211676d2)** | 1.9.1 | MIT | -| **[ipaddr.js](#d8a1c47a5dc5581d8d9e84268efa779a5140196540c2a4425e8317c1eeb93fb7)** | 2.1.0 | MIT | -| **[ipv6-normalize](#7a4346dbf206011966449898fcd37178a9be89acf6dff120b676d4c4d0dec203)** | 1.0.1 | MIT | -| **[is-arguments](#4af472b071742337deb4d56d6c4a507fd58990e8922613def80a84ba532a2b6d)** | 1.1.1 | MIT | -| **[is-array-buffer](#442760df883a3fb368f6c5666080a8c4e07d95f5f69fc92654bed5bd4be7f814)** | 3.0.4 | MIT | -| **[is-bigint](#76328e128016cee0810bc1fd650e8f63f1ad3a062d2e0c555515448ffd3f13cd)** | 1.0.2 | MIT | -| **[is-boolean-object](#db76784fdb608b8a1760612e770f909cb121ee1d4f6067a33c25443f06b9c998)** | 1.1.1 | MIT | -| **[is-callable](#8cf8f70dfb44d8f426d81a03a0f5a1e4be28081368aa69089c22ac2571dcac14)** | 1.2.7 | MIT | -| **[is-date-object](#4e4be4dc1852d5d512c7afa3107dcff477e27efa4ac81bda7a72422f55fc5841)** | 1.0.5 | MIT | -| **[is-docker](#893885e21608c60de02539fa3bd5a98f7068127aa5fab86a215bfec41a3119a4)** | 2.2.1 | MIT | -| **[is-docker](#b21de9a8d47c7c165b912be5c7a36eae3939076531e05733aa2ac7f1099dc46d)** | 3.0.0 | MIT | -| **[is-electron-renderer](#5f979579f0e64b4ba63a2cf1d32f11e274d285511e84ee596bddc57424d5299c)** | 2.0.1 | MIT | -| **[is-inside-container](#3f45825f7cda0ec2231b94ee915a0dc76a31eb0f97746c44510d9b05d80c1a97)** | 1.0.0 | MIT | -| **[is-map](#a9d75aec4f0b5614e4286c133a5fb6390141bd79d8b5bff8f3f7815869d04f8e)** | 2.0.3 | MIT | -| **[is-number-object](#98d946a111ed40a337dcf7f4aa4824b69cfe20d4b3b230710bcd5f9c803c9348)** | 1.0.5 | MIT | -| **[is-plain-obj](#6aa44f19e7afb6047589b7ad4e4ee3d44264e44f4a4ac5057efb8e3000820525)** | 1.1.0 | MIT | -| **[is-regex](#b98aa247d6a1b7f75692f6acb485fc213de3ca0cd8ecdd6bab7f96393e255d07)** | 1.1.4 | MIT | -| **[is-set](#af0e69272cbdbff01e5f873f16f9aa12c5c8fcbc228972be63e0b1ce16bd180a)** | 2.0.3 | MIT | -| **[is-shared-array-buffer](#6828bd9e33499632e06a110b3a3ecc06df254c4a28caf86e436a9939af9b3ed7)** | 1.0.3 | MIT | -| **[is-stream](#6a348f7c7e9ad013ef74124a87896ed11f8bafac3344e58377dcfc0944187cf6)** | 2.0.0 | MIT | -| **[is-stream](#309bd1940a381ff538d0c335564cc3e436c79307c991516433092d84e35acfc7)** | 3.0.0 | MIT | -| **[is-string](#f00a8e1cf00a8951016596ae951454a7d9944dc72a4f1b1127e7ec5879db5654)** | 1.0.7 | MIT | -| **[is-symbol](#3550f187e60fe8b94de5ebefd70dca43157d4c7a8ac847bb8d5ddfb1c59c1723)** | 1.0.4 | MIT | -| **[is-utf8](#df5522c387e62effc17916c612bf340d6543c4bccca99fed4c1c1fae77ed4900)** | 0.2.1 | MIT | -| **[is-weakmap](#ed08152c59d2b4e2e55e4c75373f7cd102901b6de08e20dba61722d1bb7a5086)** | 2.0.2 | MIT | -| **[is-weakset](#5538f4c86728250aa4d278637d76d6fff7d7a2cf1ff7433f842cc4045c95ec6e)** | 2.0.3 | MIT | -| **[is-wsl](#133bdb52dad1bbd87bcda9564e6df13fe7c51ae7d67575fea63cf0a2072ac884)** | 2.2.0 | MIT | -| **[isarray](#55a8a963f7aba0af49a654ea316f8dc19b717b632b88145881fda3988256ef6d)** | 2.0.5 | MIT | -| **[isexe](#2f62e711a6921973ef3f9650fd3e06585fd3842e34078c8fa959481738600405)** | 2.0.0 | ISC | -| **[javascript-stringify](#e0d27d21a288d227e51243715c044b3933d9fc0fb025dc16ec79c78af35f85a7)** | 2.1.0 | MIT | -| **[jose](#7c6ba2890a65df8d382e1b102b311651675d0ed5fd5443e911c520b18e93f62f)** | 4.15.5 | MIT | -| **[js-tokens](#f4371f095c6f087cf41433031f8c612e21a4258b18cb4e847ffae73905e146d4)** | 4.0.0 | MIT | -| **[js-yaml](#c82a34a38ab0debe302cf958caa7a51b455f5fb8a32a3ce6b9b4cab3f500c60a)** | 3.14.1 | MIT | -| **[js-yaml](#b7325d630b0ab313450fcd188788f6ee374aadd75df4969a9e3c48507ef88bdf)** | 4.1.0 | MIT | -| **[jsbn](#936d5c89291f7b505f688e45ff8261d3f225f96e0e981fd0366a9efda9e0e7f2)** | 1.1.0 | MIT | -| **[jsesc](#253e8a44fc188759c5ce35330e4f20aacf1d0253d7e8d7dffd4a1f884a10ce1e)** | 2.5.2 | MIT | -| **[json5](#16281c6ea25e0cec4bc0bb8c01d1759d66992776381bf9c5af6959bec47d2f77)** | 2.2.3 | MIT | -| **[jsondiffpatch](#2cc3b990f6692cd23f883319a727b42a76a3a9d6675d1ebd8a05241eb7edc4ac)** | 0.5.0 | MIT | -| **[jsonfile](#1504ddbe5031429f6d90bb02373b4629ff5da9ef4e869d5015ff42f685817e74)** | 6.1.0 | MIT | -| **[kerberos](#e9b8ef28e3d246d5071f34b07b67580523cda7bd0d7d74dc2e422d79d30c238d)** | 2.1.1 | Apache-2.0 | -| **[key-tree-store](#63e3bcb8e06ac6b9f7c153030ce57fad6e985a0cc7f0109d3fc6073192a932f8)** | 1.3.0 | MIT | -| **[keytar](#752f1130bbd6c5dc941bdb20fb39579c1d350252a112c58f2558b7c5f536d6f7)** | 7.9.0 | MIT | -| **[leaflet-defaulticon-compatibility](#7fba582082c899d764d8e4214d2f6f06cd043b2dce51598ec24ce299f5640a6e)** | 0.1.1 | BSD-2-Clause | -| **[leaflet-draw](#d3f67d0a666ece9171dffece3f3db67430e7055b1e8b857d806555d65b720d0e)** | 1.0.4 | MIT | -| **[leaflet](#0c77955158defdd249f5abf69232ca350038122d4fc768826d9d79ce402761f4)** | 1.5.1 | BSD-2-Clause | -| **[local-links](#9d5ba7b7e3257ecb142eb0aaf6f846e1f98c95256ae9a5836a5246db26eccbee)** | 1.4.1 | MIT | -| **[lodash-es](#a591ea211f9167d2f80166d42532d3c01f7843fafac380deb0bcf693cdf6fa1d)** | 4.17.21 | MIT | -| **[lodash.\_arrayeach](#e705b211da95702daddcf8ca44be1e168f2c98cc4298c3c0039d7acba4b651d5)** | 3.0.0 | MIT | -| **[lodash.\_arraymap](#afacdd77340d24ba7aeefb1cb7a952166c5d601c0a7fe44483832dff840688d0)** | 3.0.0 | MIT | -| **[lodash.\_baseassign](#aacac99d5201811cd8fbae43458c75e440fcaee435b10ff4ebae397ca34fc335)** | 3.2.0 | MIT | -| **[lodash.\_basecallback](#560dff0d15a98e42aa42379205f5a3e8e4f9a2234c4bf1e7aae85ea6369d5eb1)** | 3.3.1 | MIT | -| **[lodash.\_basecopy](#b7789a88750f78ca9242497a1c4acdb472b17b3a207bb1088c1865d5fc059d45)** | 3.0.1 | MIT | -| **[lodash.\_basedifference](#fba9051032cf703707176db1852b2c612c58e0fe0aa275233262512fe1cc3c1e)** | 3.0.3 | MIT | -| **[lodash.\_baseeach](#9a24b68e28142b48a1f27163a281677591406ba38b1aa99b8fea01c1cbd2c2a4)** | 3.0.4 | MIT | -| **[lodash.\_basefind](#c58e88997b2cda815fe8eafeb62113412915090abb1734f1ab37c060bd186d78)** | 3.0.0 | MIT | -| **[lodash.\_basefindindex](#070aeaeefdc0615eb01ab55ee2611f008b4973f77542680c09d58206324d7244)** | 3.6.0 | MIT | -| **[lodash.\_baseflatten](#ef8e3266ef37ba1e96b4494119bf1d6e167b5fbae3a3a3f24f6b2adfd813a18f)** | 3.1.4 | MIT | -| **[lodash.\_basefor](#9452e64da946cc633bba85112f9d585983d4d34ddb922312c23509f31b9cf54a)** | 3.0.3 | MIT | -| **[lodash.\_baseget](#c3cf4bbadde17410a34e84962cf52620d922e4c477c0c67407e3905a668d5b3f)** | 3.7.2 | MIT | -| **[lodash.\_baseindexof](#984f3f17e0475ba7b138ad2bcd02121d1069d6b685100583bb4bc9d6127a29a1)** | 3.1.0 | MIT | -| **[lodash.\_baseisequal](#5722da50c112fc1c4eb299375a140f952d867bf75c7433a0fb78b121b90a6fa0)** | 3.0.7 | MIT | -| **[lodash.\_baseslice](#f3a23746e44f620faa3af8d34a8ba0423726d0cd24176300f50a3c2798774e21)** | 3.0.3 | MIT | -| **[lodash.\_baseuniq](#fa4ce8551ed1dc65f15b9dafa6fb0238a4feb17f2caf8ed613748869842943b4)** | 3.0.3 | MIT | -| **[lodash.\_basevalues](#a6386191237cb1d70784b24e2847098f2876903ede40b488e306ba726b674f47)** | 3.0.0 | MIT | -| **[lodash.\_bindcallback](#759845849a0d94685fdf1a87cde520e49632ca378662469cdfe0c2be33cb3057)** | 3.0.1 | MIT | -| **[lodash.\_cacheindexof](#e2920f2aa3d3ef638e09c3952dd2cac1a42dca3929acc0bd76c3fc69f7cacfb7)** | 3.0.2 | MIT | -| **[lodash.\_createassigner](#c8f058ba3519bcdc9abd63b121fe2fab26acab4f4bcf2658efec676a3fdbaaa0)** | 3.1.1 | MIT | -| **[lodash.\_createcache](#072c756c562325194b5d955a7929da38e505fadd86c92a1a7d19ed9d251a58ef)** | 3.1.2 | MIT | -| **[lodash.\_createwrapper](#c3d6fd2a3e8a1412538ac86360c7608876b0841ea7f499ab96edc3e82ed120b2)** | 3.2.0 | MIT | -| **[lodash.\_getnative](#2a9507ae12db57c5319c675c4dbe5e100525a22f40b95339f9fc2d5f340ce09c)** | 3.9.1 | MIT | -| **[lodash.\_invokepath](#de9648080f5467f2559c407ca80b67fbd95a3767f8735507a7ff9802115379d8)** | 3.7.2 | MIT | -| **[lodash.\_isiterateecall](#2a87d94ff3c38e8d5da4ead575fec274d7655bc29e5645ff44b867a5b8926b4e)** | 3.0.9 | MIT | -| **[lodash.\_pickbyarray](#ce351b398064b4b254cd6189e4d91e14af322cb837142813fdf6d7f35e3a7e7a)** | 3.0.2 | MIT | -| **[lodash.\_pickbycallback](#5a4ef737299f75e14a058f857cdd3593cff7385db2c2d750516bd8c5fd1dac74)** | 3.0.0 | MIT | -| **[lodash.\_replaceholders](#c79e1ac85ddff7c5fe2d1170dc92a28f55b4a1ce6da74091d8775ed2c172c3a2)** | 3.0.0 | MIT | -| **[lodash.\_root](#b4c5b75f0ca57172edd2801a0107b22b1cc5b4bc258c4bfbe5d1b1fc052bb191)** | 3.0.1 | MIT | -| **[lodash.\_topath](#41ef14e011630cd3bea80b43c1d824c5bdada826f2bddaddda350eca30a93f4a)** | 3.8.1 | MIT | -| **[lodash.assign](#279f6350b38f924a812ff5d74a5f9c9023f5923a7c70dcb75bdb1670ad35ab50)** | 3.2.0 | MIT | -| **[lodash.before](#2fef595ae4ab5ca92be6f59e86e4d7f2b4ad0c224c22d828dfd0bae48af64645)** | 3.0.3 | MIT | -| **[lodash.bind](#3acab10f30bde74cc48a35928697ce1670df78f45fdca78b8bcb8c047a698b0e)** | 3.1.0 | MIT | -| **[lodash.difference](#43791df64f8fe405fc866c836325719f4060084c461c21882bef3b606d98ebcd)** | 3.2.2 | MIT | -| **[lodash.escape](#b2c0e0aeb488595574952c98b5f54e03f435b75e913a2bd5e5355645a576f866)** | 3.2.0 | MIT | -| **[lodash.find](#83ef2b0f6879ce20ff4050bf0aba209ccab6beceed27ea68be7dc15e088aed7c)** | 3.2.1 | MIT | -| **[lodash.flatten](#6adc3792aefcf12132c36a2d446686218a80ce413c20b2533d551509cc79c542)** | 3.0.2 | MIT | -| **[lodash.foreach](#27063675a97582e63d10521797ca5436c38ec0a71341733744333edec40fe4e1)** | 3.0.3 | MIT | -| **[lodash.forown](#b50edd80fd196dfaace7b3aa2a90290a00fed380636e15429b37a7d2f8e3776a)** | 3.0.2 | MIT | -| **[lodash.get](#632dd5085bea3b2734eae88903cfc1e91fb5b4ddb9213e10ffeadf7121ce5ea2)** | 3.7.0 | MIT | -| **[lodash.has](#d0e17f0b2e78b1a2618102c4f3b743c662a0f7cb0d3ef613b22a5595f46c3667)** | 3.2.1 | MIT | -| **[lodash.includes](#3adf597b6163c3ba3343235b44071cb955635e582da311d5b57ac35f2692f9b4)** | 3.1.3 | MIT | -| **[lodash.invoke](#43d25e539b3db0cb448dfaeac571c6f35c805ed7336f54c63392ccdb88c7ec91)** | 3.2.3 | MIT | -| **[lodash.isarguments](#fc005d458a81bf6d8d32c52123952311bdd5e02c5564720455bd4d9480b20da7)** | 3.1.0 | MIT | -| **[lodash.isarray](#0ec1c02a99d5b713fe4a1e0682e2917aedfbf6f16057f1dad1c7871c6f736575)** | 3.0.4 | MIT | -| **[lodash.isdate](#54396c41d452d46f8d06091b9ab83f35cbafd80f53b8a3337c4567d1009556f4)** | 3.0.3 | MIT | -| **[lodash.isempty](#f1f61f99f9012392c9bc1dd4b01eccd42224ff516c50b507c0041845df62bcbe)** | 3.0.4 | MIT | -| **[lodash.isequal](#3c009e1972544c1bf8dba82eb0bffe6230cf8760bd49d8ee6e120d20b4296b2c)** | 3.0.4 | MIT | -| **[lodash.isfunction](#037b8981ee3ca5d6ef852835683db8dfb102f43763b561aa365c7567a766ff60)** | 3.0.9 | MIT | -| **[lodash.isobject](#247f42305767fcd88c563da8a196a61fcaecdd7d4ddab3d72d1a9eb05bbf5405)** | 3.0.2 | MIT | -| **[lodash.isstring](#10489ff0ae921489d537bc6aecec98d63d40c04e55ced77d1f68331a7f2dcd56)** | 3.0.1 | MIT | -| **[lodash.istypedarray](#1968cf985099120c230a51c77054d5e662feeea4825ca0218c1c728f80b5839a)** | 3.0.6 | MIT | -| **[lodash.keys](#c588afca24b161c04c66b7fe976458f32d1871dbdc38343d2249c15af51e6df0)** | 3.1.2 | MIT | -| **[lodash.keysin](#eb438504bc7bde2a75d470d2723add90d5a7e2948c7a9320eebed39d20e9e133)** | 3.0.8 | MIT | -| **[lodash.last](#541caa1523f10bb2a8b2f52174d1de4ab2d64fb7a02719e69eb7d4e1e10b1065)** | 3.0.0 | MIT | -| **[lodash.merge](#996e40d63a94f1b8693d7c81e0cdfb874c6432d6bbd675976fc1b6b13652c8db)** | 4.6.2 | MIT | -| **[lodash.omit](#babde7076e3dbe66c1cd8dd0af071af1fcd4b49d2c7dbf8a306cc09b860c9ad9)** | 3.1.0 | MIT | -| **[lodash.once](#e794f12866dca62acdae15f1b5b4495ad6dee09c7150f71a96044adc2ced1286)** | 3.0.1 | MIT | -| **[lodash.pairs](#db90d2eca20d73caab322dc7ac851ecbc50db59e5e9e40d5c78d0f840cf03329)** | 3.0.1 | MIT | -| **[lodash.pick](#d54a2e0c0e3d3024a4b364b8917d59c1170262088fb3bfc4ab4a71f53ecbb3ae)** | 3.1.0 | MIT | -| **[lodash.restparam](#212ef51d65362b73a8d548dcc6dda631ef012bdd6d7d724281ab9bb0a1dbcec5)** | 3.6.1 | MIT | -| **[lodash.result](#7a09af41b88107096ee9071a254bacf1e324ecab5c9fb56d81dcda873144de35)** | 3.1.2 | MIT | -| **[lodash.union](#9ee2120113e7c91fbcbee571e2fae44f1e7f87afb331cca6eb46a3d318d6169e)** | 3.1.0 | MIT | -| **[lodash.uniqueid](#f4693b5b22365d675cec07ce8ca01fc235054f442963585ee0097efdae26995b)** | 3.2.0 | MIT | -| **[lodash](#adaac4144887ebc2c1b682380ff385210f681fc58b4bc1ef3986148cf8dcd28a)** | 4.17.21 | MIT | -| **[lru-cache](#8d10f71b6ab389fdca1b55e9aa96d77790f776843bd42ca91804a40a0d543f19)** | 11.0.1 | ISC | -| **[lru-cache](#fe7f0a2f2cf4c92f13c3a2a63f14f80f20f6919979306dc054e4f947c1234651)** | 5.1.1 | ISC | -| **[lru-cache](#938513411a6603ce29334db15563fb94b7d52f839d32b9bd78c18f5d3f98aa5a)** | 6.0.0 | ISC | -| **[lz-string](#a04d0916e49897705fe7a9d865134920984a19a03f8de501d4e46c6698a6b421)** | 1.5.0 | MIT | -| **[marky](#c5789082b93eeeb451a00e87792a533dd2589421119d3560a06c5f96b39414ea)** | 1.2.2 | Apache-2.0 | -| **[matches-selector](#ed68b9f3ecca4297cbb806474484688a85517361d99a33773e3152603a6771e6)** | 0.0.1 | MIT | -| **[matches-selector](#cec79a3cd38ecccf3066baf0e39cf87735fffea201040dd2799e4c6b5221d981)** | 1.2.0 | MIT | -| **[media-typer](#fa74be298a38f8f9351484e9124aba4a4086182a4cba24449f195219a2843784)** | 0.3.0 | MIT | -| **[memoize-one](#4d802a078eb32373fe5d8119384598a703537750aeeb5990aa28659939260789)** | 5.2.1 | MIT | -| **[memory-pager](#7fbdeab18f48c3527cae276a51cd879e42d15337aba1acb44fedcf748137608b)** | 1.5.0 | MIT | -| **[merge-descriptors](#0dc27d83f406152460ccee54a872599fa57bf48baa989aaa2165fc98eafd08da)** | 1.0.3 | MIT | -| **[merge-stream](#df06bda70cbfe392ea02ab42ab188d21ab5c15e3c1a172e6f2ce4cd9d304c01f)** | 2.0.0 | MIT | -| **[methods](#d2f0af2174fefc260353011b7a5dd7845576b8eb5f16c423378467dfd5b10f5f)** | 1.1.2 | MIT | -| **[mime-db](#7cfa78c6359b5b06cbb7cde9659b052fb92a58e290411458d496ea39857bc15b)** | 1.52.0 | MIT | -| **[mime-types](#a4d3481c7c7fa681b0c2a946f94b390ac9f96f0412b1ec63b79eba32dab82500)** | 2.1.35 | MIT | -| **[mime](#9b48af8a381b3c30ce0ed825fdb250ac917cf825ec677471e72657f421bece3a)** | 1.6.0 | MIT | -| **[mimic-fn](#5cdd2e226cc15411692ae7c6c44c95adde675477de818b755be01f0e7994f8d9)** | 2.1.0 | MIT | -| **[mimic-fn](#40db999726ca69c48458bec0492bb7351025a3719caeceb9ade4a08098817a0c)** | 4.0.0 | MIT | -| **[mimic-response](#0c868fd85c36cbce69ede58ff4693b89140b6a529a6794843f4985674d63642e)** | 2.1.0 | MIT | -| **[minimist](#837db6b00930af97755b724568aecf8b139361dc2148c7db77673ba6ae44a44d)** | 1.2.6 | MIT | -| **[mkdirp-classic](#e79cc875152b50c2eb57a97163d99f0155bf4e4af7ba4a7e01c12a17a4a3305c)** | 0.5.3 | MIT | -| **[modify-filename](#7153be07939379ccf0072006c519fba2bdf5ab79ca8bb59bc5273f87a7bacbf6)** | 1.1.0 | MIT | -| **[moment](#94975b5423311209f3beed9c2c6bb6157f622312a3f8563d507b52e804bf6285)** | 2.29.4 | MIT | -| **[mongodb-build-info](#f0a98c22ae0766702726f79e058ac6dc4e4bead8557b67b816f40bd13fb54170)** | 1.7.2 | Apache-2.0 | -| **[mongodb-client-encryption](#01c104ff07b0715f77217b6b7adfc9a0056f35ffd976182ffbf409f69b3a0df3)** | 6.1.0 | Apache-2.0 | -| **[mongodb-cloud-info](#a784f3b401cf51746f49964e044db933529b3e3791e557702715730f5a3f1e46)** | 2.1.2 | Apache-2.0 | -| **[mongodb-connection-string-url](#2e1146256a89ebd24e3398881e03807fe363d58444e6b7952ea50bd6108707bc)** | 3.0.1 | Apache-2.0 | -| **[mongodb-log-writer](#c4945018f8490fc8e56e1414e262fcf1b802800e05cd15f2bd6b7a9d0b94af85)** | 1.4.2 | Apache-2.0 | -| **[mongodb-ns](#68260f4d06e4d16a28d4139e391264d220e891ac6f0fb844b925a0cc37792aff)** | 2.4.2 | MIT | -| **[mongodb-query-parser](#871cbd55e42c522f9f44ee40a9a19b3edde2f543528582d5ac5f4bc60adeb336)** | 4.2.3 | Apache-2.0 | -| **[mongodb-redact](#f0766ec5011e3865ffb152537e7a24c89591d1ea5ee46777ca8f3e857a3e57d6)** | 1.1.3 | Apache-2.0 | -| **[mongodb-schema](#652dcef4a8a39849996a5f858fe48048e806fda4ce1aa0f757ada56bef011145)** | 12.2.0 | Apache-2.0 | -| **[mongodb](#6fec8e7c940738c785acba4b627a32d91425768e886601b770ad3b664670653e)** | 6.8.0 | Apache-2.0 | -| **[ms](#484b814b85d5028e34246147c8fc901d33570202bd7cdc3703c0ed1078eba0aa)** | 2.0.0 | MIT | -| **[ms](#0a987b2f79ff37005e452a5afa7dacd3042061a7077054d2ba9cabacd88506d2)** | 2.1.2 | MIT | -| **[ms](#2083576c5af8054927640b4788059806d07e250a26066c9ccb2d928394fb9226)** | 2.1.3 | MIT | -| **[napi-build-utils](#26912b5ff7632f262d64273f99cd1a869376c5c378960e24501585e35b31054a)** | 1.0.2 | MIT | -| **[negotiator](#e3856213d8f0a7d28cd4166e53ec7e2c019cb7becf4a8535097bac28d21e8579)** | 0.6.3 | MIT | -| **[netmask](#2bd5b8ff7fab9adace6c38d3fd32e7328484939fdd07836635b0155d0afc35b2)** | 2.0.2 | MIT | -| **[node-abi](#e95a83ce4ffe7621819fbbceed23c54f12e0e1066aad9e5b3093bbdc7c958e0b)** | 3.68.0 | MIT | -| **[node-addon-api](#af9f7588524ca4e68f4efe7b24aea46d9c8004263b1d7cf3b558f86d87a163e8)** | 4.3.0 | MIT | -| **[node-domexception](#3c25065fd2bc1b6b56856e30ac5b8f34ddae33ca87b225854f8d855b0ccabfbe)** | 1.0.0 | MIT | -| **[node-fetch](#364527ef1b51cc6ac34872b931049c9e25b5014f9b40e3898c84e1a830e21720)** | 2.6.7 | MIT | -| **[node-fetch](#23d7d5a419e9a25e6384dee4aa24f7162544418f0cdc2d92e94e2cf924507b8c)** | 2.7.0 | MIT | -| **[node-fetch](#22edb8ba3fe3457e8c1a02e497e6a8cb54e89775224f0c7680ea43772b5c1638)** | 3.3.2 | MIT | -| **[npm-run-path](#b21248abecb88119fcf2885e5471cd9235f40d356cba189a348def4b8a6046bd)** | 4.0.1 | MIT | -| **[npm-run-path](#17c35569bae8ecfc9314730bb16dde145a190d68c6fe6a29c78873c9c5520ed1)** | 5.3.0 | MIT | -| **[numeral](#b3c90be596160f7dccbd1ff771ddbffb9a1b19d0bb9456553d8822903386573e)** | 1.5.6 | MIT | -| **[numeral](#d274a180ad09fc1ae9325f01bf5dc1296caf553888d952fab7ebf524dfdc56a1)** | 2.0.6 | MIT | -| **[object-assign](#598e372231bb5bef26b7d61105282eb20e14ade430143052d064d2d406769b95)** | 4.1.1 | MIT | -| **[object-hash](#848d5d28b20a6a7f2e701e9b2b7e65b5518313269696dacf4ac69fa8bc5b571a)** | 2.2.0 | MIT | -| **[object-inspect](#b9d7050d521cb65fdc84f2212e39302b36e9bb0f7191e0be89ac3e4ea488b1fb)** | 1.13.1 | MIT | -| **[object-is](#d597163d660664be4b28b1f40171738a17ec18b028d62ee1cf2e264e30924d84)** | 1.1.5 | MIT | -| **[object-keys](#e9aac5890f5f1c6f8d56c08ce91012ba530b586511a89d1fa99ae2d7c39d8b2e)** | 1.1.1 | MIT | -| **[object.assign](#498d41061b8e766f5d53d287d41307891ca86b3d63eee61a1c4131f5dc5f185c)** | 4.1.5 | MIT | -| **[oidc-token-hash](#3beaf628821d1b6d7ec7b67b3c9ceea1d37727ea52253383f31d3e73141cf29f)** | 5.0.3 | MIT | -| **[on-finished](#d3c391e10faad1d82190a06f5be315d94a9194cff75aa389940432ef15cf45de)** | 2.4.1 | MIT | -| **[once](#d0d1303998dfae04e4f898f477380aac35568f4d6679f4ea913c2441cf9ebb0b)** | 1.4.0 | ISC | -| **[onetime](#5a35b0b7c7570756939e95a639f311d4676b87c61cd74cd94d6609334c2ee1a2)** | 5.1.2 | MIT | -| **[onetime](#8d8b66854ab397ef1815b6af9e17698a8e5f83b256a1202b74104ee5609c5d99)** | 6.0.0 | MIT | -| **[open](#6c66626cf6e18f59c76bef1f4ed0c2b541e68592d65325d4fb83a659e3078981)** | 9.1.0 | MIT | -| **[openid-client](#03ada662ee390db4436dc7bd38857b43e2a0407275d27e422ff915ec7738b035)** | 5.6.5 | MIT | -| **[os-dns-native](#ed8fb030877b8f0494551fd7f55288d885b2ddcece35dd7134434ad5c4c704de)** | 1.2.1 | MIT | -| **[pac-proxy-agent](#0c860d23706396c87370b49399bd004f0a3552427d65a829b16274a966c51304)** | 7.0.2 | MIT | -| **[pac-resolver](#7935fe0839f6e2b7c51abcc08705a6096eff5670dc2bdc3819fd096b8d114d8b)** | 7.0.1 | MIT | -| **[papaparse](#a94a34c1e6cf2f678ffd64381c6d54f9ad5f6b3c65281a0b077dd5b92f028684)** | 5.3.2 | MIT | -| **[parseurl](#c3fdd1b6fb725cb30e8fed82cf929953b46129d347d8404a4a51b633389fbae8)** | 1.3.3 | MIT | -| **[path-exists](#3ae48f237e1a4424a3b1b60cfc95f35ca29141cd956f8bda85e763d7969e12c7)** | 4.0.0 | MIT | -| **[path-key](#e1a2a032096ace66b422351e00b11b0229e42e4b49c2146f439f8fe442218451)** | 3.1.1 | MIT | -| **[path-key](#8e0734b8abb76579df2174822606e692914e985fc58363a78e6ad4b2a4a5831f)** | 4.0.0 | MIT | -| **[path-to-regexp](#96d230365f414cce8d80ceb9d99d855685dfa922f931b49ea01952a1efe64266)** | 0.1.10 | MIT | -| **[picocolors](#f964752f1f8cfd947506fd51ce1c148469ecf3b6f531d826511b720670e556f1)** | 1.1.0 | ISC | -| **[polished](#a7a5d1244e48a082dbc54de31b5309caf950b12aa6bd9fefbba39e362e705f06)** | 4.2.2 | MIT | -| **[possible-typed-array-names](#5ba4283f5512abd5d57e79c0a75acb3818d98d169df979afb01ad6867cefd312)** | 1.0.0 | MIT | -| **[prebuild-install](#93d13a9b3a51a6a802fcd35aa031d3ae7369aa6fd47d3a89f28a6d31ea3c9dc5)** | 7.1.2 | MIT | -| **[prettier](#2e1e2077936be4bb5f075fd4d279f9ece641322ccd12a8116edb3f99f08f7411)** | 2.7.1 | MIT | -| **[pretty-format](#0c53580441217a6c2b9c885eb1ec35adde420c312ccf9f408c856dc3845cce8b)** | 27.5.1 | MIT | -| **[prop-types](#e4dd0bb5b6f98fbf52f0ad7062b8514aadc56a47a692bf6d8aab369786b6039f)** | 15.8.1 | MIT | -| **[proxy-addr](#7b128e3d41d39ecb1a405a490a53ae86f70ef45f01079333ed3ca49939f5fba8)** | 2.0.7 | MIT | -| **[pump](#147f1bd3a6380306e696f0574feda0b1490121a1d12e4500e91ffb6e888ffa3a)** | 3.0.0 | MIT | -| **[punycode](#3fe331f5536b72438f24d644ea9804b5e462f791a4c72a6d94f37193af1086aa)** | 2.3.1 | MIT | -| **[pupa](#b05b7cc4c1bc01acd063dc811b9b1b0a1a4b3e0f17be77deaeaabade7dfeb095)** | 2.1.1 | MIT | -| **[qs](#2240c454f0418501921d6b094c1f6477603b0c893c4d7a8ed2bdfcab9e75c069)** | 6.13.0 | BSD-3-Clause | -| **[range-parser](#e973789240fef3c00f359e6acc8570dd769b70ee8b29fdcb679897fa2d696bff)** | 1.2.1 | MIT | -| **[raw-body](#fc0f8cf1771db07ef15ce7dafcac6db8e351607bb82caf0e5838f1769a796266)** | 2.5.2 | MIT | -| **[rc](#0dd705bd5862b4c60ed88e6b4a6f5ece23c627c97f6928233d32aefdd463c3f7)** | 1.2.8 | (BSD-2-Clause OR MIT OR Apache-2.0) | -| **[re-resizable](#ba463da4fb82093fffa407b9083835a23c9d44c84cd988f2536312f7e78f863d)** | 6.9.0 | MIT | -| **[react-dom](#6f313dd207f71f3d56121132c87ef27cba1beab9e5e349ac81c740cee6fd0774)** | 17.0.2 | MIT | -| **[react-hotkeys-hook](#6ce07fe9653ad69a76354e2d71137c70ab9a838377fe5a8f8e45c559cfbf41cc)** | 4.3.7 | MIT | -| **[react-intersection-observer](#84f998bdb33a5f9330d81ef063f7ad0897f1b004661fbf131725697b847a5b6a)** | 8.34.0 | MIT | -| **[react-is](#7183835e2bcaca6754fe10854fc3b65407d2cb9aa3b68b1c06ccaafb7b9be28a)** | 16.13.1 | MIT | -| **[react-is](#5ec174b50bba38f48ee8da3d8a5b9463a9e77c3f01d74a132ecc30a2be099c4b)** | 17.0.2 | MIT | -| **[react-is](#5746232ad830b635a6581ee7d3b826ee932c6877087c98cb46b94101eb5ce40b)** | 18.2.0 | MIT | -| **[react-keyed-flatten-children](#9c7ffa4be6351eaf0a19b808fc4048eb28455824378f089da7a566cdeb0bdd84)** | 1.3.0 | MIT | -| **[react-leaflet-draw](#d80b4b765d856cdefe411a073d3b3dde06100128005f1381b4d26d6cf53134c7)** | 0.19.0 | ISC | -| **[react-leaflet](#a5fc1f0504a89a932a12c5a183b75a748207329f20af6078f926e182d55aee8d)** | 2.4.0 | MIT | -| **[react-redux](#156f5c2e2cbbda376faae24e78cc75de697170101ff7e9d2955c0f891cffd6a8)** | 8.1.3 | MIT | -| **[react-transition-group](#f8a526737bf3e6cc7928ce77b3fa8e6a880da418fd9363a0dae1122922f92b72)** | 4.4.5 | BSD-3-Clause | -| **[react-virtual](#b9245d8b8a0d57eba1876cc38950eccd82b4db023c50026f4a70a6c66e16cb5c)** | 2.10.4 | MIT | -| **[react-virtualized-auto-sizer](#6c2551e5d023f4aa01efbb54d394f7cebd0627e78ca3b24a00a4364e3e7a3129)** | 1.0.24 | MIT | -| **[react-window](#1241166cdcf24220683cbe7d1460897436f3982e7795fc504323ba66f06e53f9)** | 1.8.10 | MIT | -| **[react](#2f31f78715f56093f4bb569e2e2ea931c518db6f4ee690482a0a2a1cd4d18b4c)** | 17.0.2 | MIT | -| **[readable-stream](#75bd2243ec5ecc92b8d7e9a2e9a1aa142f20f6a5aad6dc0d923cdab997766174)** | 3.6.0 | MIT | -| **[redux-thunk](#7eabcce4f7274e0c876829cb939804a9704770a9a60419d514c11e3e97c01623)** | 2.4.2 | MIT | -| **[redux](#98b5d53f97fab4eea98fb5f423cad33400855b69ac662f1fdf55f0fb9e33f2ab)** | 4.2.1 | MIT | -| **[reflux-core](#7af6ea33b0ed18717d672b44743ae53dcef843ae464690bb9e10eb1df048e9ea)** | 0.3.0 | BSD-3-Clause | -| **[reflux](#f892193924d403a4dd1a73a5861913838f1a9d704055d9d098eb0d40f752e053)** | 0.4.1 | BSD-3-Clause | -| **[regexp.prototype.flags](#51cb6c20041a1fef833bb3f46483fcbd99a186e3767ec2ad32f7b3db74d296f2)** | 1.5.2 | MIT | -| **[reservoir](#84f8998f94ad5bd85b50458378edf3815fff553cdcabf8ced3db418f05e85ff6)** | 0.1.2 | MIT | -| **[resolve-mongodb-srv](#2ae8b0c9dbe8e8c900bfaf5567bcf2af917e62fb0a24121b4d667dffbeaffa99)** | 1.1.5 | Apache-2.0 | -| **[run-applescript](#f4d3cc18b69c2dec9e4f1d19a1cb794c8fa2e548e530f4033dc6b0caf803bebc)** | 5.0.0 | MIT | -| **[safe-buffer](#952cf236ee56e7de5ea7e772caf3e256866f9dbdffc492539c48cd8c15ac9674)** | 5.2.1 | MIT | -| **[safer-buffer](#2fb14d3728e4ebf313be4634b146bd90cd3ad3559157baec03b64eec0878a0ba)** | 2.1.2 | MIT | -| **[scheduler](#950b09ca6f4766ded0bdde81e2697b5e184ed63925d74a8f512c978cab5bda6f)** | 0.20.2 | MIT | -| **[select](#12d30053a00882385c42a50004536696d477e8e694b047d6d39513947e5a39e9)** | 1.1.2 | MIT | -| **[semver](#8b8f657069cf84b7ca932ab17eb24a0a55a8053ccd2a36c03185dadab64db3f8)** | 6.3.1 | ISC | -| **[semver](#2c8b8c47dd7d24873eda4559b25851062c21d7584a396735b363f9bab626dd7b)** | 7.6.3 | ISC | -| **[send](#412cd4c4a8e6aaa433d5e67852c05a1e307fd4eb9dc362bdc30fa099313c24cb)** | 0.19.0 | MIT | -| **[serve-static](#9a2d04a479ef9c6e990f1fb614478dea4368c040af707296400ff7f9bb68d30b)** | 1.16.2 | MIT | -| **[set-function-length](#88ee3e1c8e8c22ac3653a290c1cdc68787d064f17a743020a070b31290bb4eb9)** | 1.2.2 | MIT | -| **[set-function-name](#f9d4c9272c71403774a64f46fc69cefd1039845f2ee1d252fb62cbd97f9e7fb4)** | 2.0.2 | MIT | -| **[setprototypeof](#7787a1d3bc2f39b65d75407d5d8d02d8ddb70f1cdb74897f15115e995fb64a56)** | 1.2.0 | ISC | -| **[shebang-command](#a9cba97b71b818fb0a4978f8b14875ae118f292a19ffa97c8b2d848f9a897d89)** | 2.0.0 | MIT | -| **[shebang-regex](#849fb37298f1c4dcdeb6065edc4242918c7533bcfda5c67747e6ce4620c587bb)** | 3.0.0 | MIT | -| **[side-channel](#b87368b55d9ba1ff553ed48946c9eb64686bc10b48bc0f5859c669427508a6b5)** | 1.0.6 | MIT | -| **[signal-exit](#5ad551060d44370794e770309e198719e94f939e46a3ea537b776c9c4fdad9e4)** | 3.0.7 | ISC | -| **[signal-exit](#09ce5ebc7ff1552bf0ed979e2479321c6a9a4b7a06d90ece7a70fa360007eff4)** | 4.1.0 | ISC | -| **[simple-concat](#7e08f893385d0a6d7059029da3885e8346ad01eb58d6e4561612d2fb653c15ec)** | 1.0.1 | MIT | -| **[simple-get](#c2c12990b6319daff653bdf953cadfa368185f0edc671124fb1028f6979df829)** | 4.0.1 | MIT | -| **[smart-buffer](#bc8fbee089eb9cddf673c4c9dbc15edd13839063c27e2814009b6a0448065875)** | 4.2.0 | MIT | -| **[socks-proxy-agent](#e192db394689e9e76e333aebe6a6958554ba85f63c4b2959bd6732f76ce1ed0d)** | 8.0.4 | MIT | -| **[socks](#0248dada9537f6f43ee753036902a8c3d06323744469309fdc207cd0b14f70e9)** | 2.8.3 | MIT | -| **[sort-keys-length](#af13db706339ff49fba434ce0fbda036b99f3dc30e66a530b64374afd5a1eec1)** | 1.0.1 | MIT | -| **[sort-keys](#714faeb378f5373d2aa5f80825d02c9f7ab2cacb699db02c84e675d193a6bfa8)** | 1.1.2 | MIT | -| **[source-code-pro](#0496fbae8c99eac4b7354b7eb0a394806e547de30fd2acbdf14f2ac77079e643)** | 2.38.0 | OFL-1.1 | -| **[source-map](#55fb2b4a8e114a26cce0c971365f26175ae0d834849c5edebbdb5adafaa08787)** | 0.6.1 | BSD-3-Clause | -| **[sparse-bitfield](#0cbcf2cac3ff859d288ae5ffc2c793bbd2430b120f5930bd09b6dba7259086d7)** | 3.0.3 | MIT | -| **[sprintf-js](#d8b6ff1ba6436283de681a756ad453428005e61986c5113a3a8088ced2b36eb7)** | 1.1.3 | BSD-3-Clause | -| **[ssh2](#caa88a7f6fedc946b33fe4cdcd84104598cca8b841b593d1ffb031578cd3d8c9)** | 1.15.0 | MIT | -| **[statuses](#a347e5a1994ef74647a2af80f58030a572f71173d5c1dfc0ce6eb55f4005b17d)** | 2.0.1 | MIT | -| **[stop-iteration-iterator](#b4a114e720966d8d69055a584424fa2465b603774072e8b7e35619282ff67afb)** | 1.0.0 | MIT | -| **[stream-chain](#dbe4594ad347bd2850f84bc41ea7ed1f0bebb82c38b9e7e0f6820d1c071e534c)** | 2.2.5 | BSD-3-Clause | -| **[stream-json](#ff32de703b38cb80287bf73b31ddc47fb97277eadcfb231017f31a06824e41e0)** | 1.7.5 | BSD-3-Clause | -| **[string_decoder](#b7999058a36380603fb66d82d8b9e36ddb8f0e5b81cd3f3233f31eac12b793fe)** | 1.3.0 | MIT | -| **[strip-bom-buf](#4f426c3eaeb7d288c70eb64ad2e2617952c0d8da8cdedf4f8cb29ba65bb3b65e)** | 2.0.0 | MIT | -| **[strip-bom-stream](#f7e90a4335dbb561f2b002d1b73cdb9d891c023959465fee58c1636e0216af2e)** | 4.0.0 | MIT | -| **[strip-final-newline](#a6dd80beeaaa538a553eca27a2bc8f9b22f02a61191d2f6981b02a2c1c12bf19)** | 2.0.0 | MIT | -| **[strip-final-newline](#0e84cc036056cb7e0b11c5f70c4d239d4adf3ca9253b0e215abd7e78639b1c61)** | 3.0.0 | MIT | -| **[strip-json-comments](#7e22a64e44ef0efd054f76d551df5305ac48eb5807079c025c8bf63c0a728c33)** | 3.1.1 | MIT | -| **[strnum](#84f6b71bdd647bcb9588183f13dc0b7a0c5b0a3103b2fc7e8e95012c0d6c631d)** | 1.0.5 | MIT | -| **[style-mod](#65cbf3eb373755d5dd9f5c58cf62d48dd4a33349e67d644af61d8d5438dbc1b5)** | 4.1.2 | MIT | -| **[stylis](#131ca0470639719771dc1f233c9962655afffb6d27143e894c43e967517107cf)** | 4.2.0 | MIT | -| **[supports-color](#113926f6cb42a3d41d1c11fb1209faf789d78f51fb458da90c61e5c1a2307a8e)** | 5.5.0 | MIT | -| **[supports-color](#b97a30572cac0a03b8cf442bc01621a041d5714550984f25cb71fac2587edbd6)** | 7.2.0 | MIT | -| **[system-ca](#f7020e15c3acda122c176b63132660540ac26981c7037d110fc2896e3551ab19)** | 2.0.1 | Apache-2.0 | -| **[tabbable](#0ebe87140b76c7f2135bbd5099e7973a5ec2b5d8fe2bec8e272608cf0b3f396a)** | 5.3.3 | MIT | -| **[tar-fs](#8e5bae5073977abd61cb5549abc7581354454558aedf4a4002b91e6fd7b9830d)** | 2.1.1 | MIT | -| **[tar-stream](#5605712784129d10d2559e12f8031603f0cf4e5ff206f09356e4bf1dc5ab1168)** | 1.6.2 | MIT | -| **[text-table](#408475075eb207dd5ae8858365d5b39a25bebe2b757601c43164cec36f315b23)** | 0.2.0 | MIT | -| **[tiny-emitter](#43eb8db7345f328bbd03f484accbed64a06fa649df3ab59db7492e65d9361def)** | 2.1.0 | MIT | -| **[titleize](#36b49586e2b5f60bee2c757b90d19871a99822f92e2b2e19202ef9efb9595766)** | 3.0.0 | MIT | -| **[to-buffer](#5934a0e0ea92470fb3bbe2a1d6869494c53208b1b06aaee8ffd31e4e040e4e85)** | 1.1.1 | MIT | -| **[to-fast-properties](#79afe8c8f3cc0bb1187c6ffaf6105b49888137e917978e870d67727353aba954)** | 2.0.0 | MIT | -| **[toidentifier](#2067d1f99d35f28c8384d3e9762282f3c2ded0041392af855caf28ba2209bd2a)** | 1.0.1 | MIT | -| **[tr46](#a94418e116fb43931c49abb9cd596d6814a55956c3d0d11b7e225592b9977197)** | 0.0.3 | MIT | -| **[tr46](#73a239b431778fd3a06957f11cd6de530a4ba35ca946f8656f46e02228113c2b)** | 4.1.1 | MIT | -| **[tslib](#c5fc5d0adaeec50d156fc1f9a16cbca801bfb431eb78f3647a1237a0e239ae35)** | 2.6.2 | 0BSD | -| **[tslib](#bd15b467ea785206b74637cc23d2b9088ba8fa47aa3034d1217f3dea848c1d1e)** | 2.6.3 | 0BSD | -| **[tunnel-agent](#09f746d17a1777efda5a12a6072da10c6820d7f56ea8aa0af202a2c83d6ccb67)** | 0.6.0 | Apache-2.0 | -| **[tweetnacl](#496caef692284d7a5d6acd31283b785ebca47d82b2d85c9af7ea1913bb4b49a8)** | 0.14.5 | Unlicense | -| **[type-is](#12dbb9fcc3a6de5bbd595659bff8b688d45fff57a2014441e4fe6779f5eeb7e2)** | 1.6.18 | MIT | -| **[universalify](#c381098afc5e144dfbd23d044afa2bf9bcf3dcadb7eb397d379f6cfd0ed47001)** | 2.0.0 | MIT | -| **[unpipe](#3a555405bd00c7e7e52b07a5600248bdaa683db613d7c286e425511cee8ed14a)** | 1.0.0 | MIT | -| **[untildify](#511cd56aa5943fd465da93776449b0a7249438206b5c5bfc22cc6d7e55ab0029)** | 4.0.0 | MIT | -| **[unused-filename](#5c8d4d94e0c17084eac0ca8c2eefa1fdb285e6a3dc47477e54d9acf7bf08eb2a)** | 2.1.0 | MIT | -| **[use-sync-external-store](#f7d4a0ea4ee9d814fb264db8103d6ad3a831aa79bf7f3ea70bfa182f8a930f0a)** | 1.2.0 | MIT | -| **[util-deprecate](#a1bd80d6a50b36e34032c402c5204d6276747d8212b68b164a9e3f895b90c2d6)** | 1.0.2 | MIT | -| **[utils-merge](#daf17cb7acc6dd4694e84d0920d7b32dba2be0fcf114309bfce8538812e7c458)** | 1.0.1 | MIT | -| **[uuid](#8e5d6b0bb24ea0188cd3a88b1f790f104e774bb8ed04c0dac0db7cfe2911227e)** | 9.0.1 | MIT | -| **[vary](#d308bd3935a6f29310b20de016cdb7b3de3aa40a7d4c3365b96e35d2c248d74a)** | 1.1.2 | MIT | -| **[w3c-keyname](#160316b2bf7a19e2cc0418d5ef94b5a999f9092fee3023ac9b2c7d76d2934f5b)** | 2.2.6 | MIT | -| **[warning](#02c159f6bf591ba6e8523609cb610cbd897ea68c214f64dac6f21d7b4e4d3a2d)** | 4.0.3 | MIT | -| **[web-streams-polyfill](#2349028b62115a87d9af122218c79a38cd90411e2b53a91c1cff7249e16f45f0)** | 3.3.3 | MIT | -| **[web-vitals](#66d3585417e14f352ce331e44fe42a97c4d03073d014efd601538735085f84fe)** | 2.1.2 | Apache-2.0 | -| **[web-worker](#8aa3d357e4e58928a87a1cfde9f21452b05f10e194f93e5d5908bdff9b94e20a)** | 1.3.0 | Apache-2.0 | -| **[webidl-conversions](#3604b2bfa479706fe7bd8068257240d32158704a3bffae30b414963343027aa1)** | 3.0.1 | BSD-2-Clause | -| **[webidl-conversions](#cb7c681998e7ee3c598e6e37432bcf448946924eefe816636c3cb122bae46e1c)** | 7.0.0 | BSD-2-Clause | -| **[webpack](#bd55cdb69f5b1b336d12c3f00d849ccb1f2c39987c257c89027d6a790f947496)** | 5.94.0 | MIT | -| **[whatwg-url](#3a968d9d3fed498fc1edf2f65459cc89b6a2fea277b5c9b5c3f3a0b41390835a)** | 13.0.0 | MIT | -| **[whatwg-url](#cd3f81c4a0fd856ab1d9c9fc99c1d7eaf2c12c4867b218e9901e5020a1ffcd85)** | 5.0.0 | MIT | -| **[which-boxed-primitive](#b3f94b6da310368951f52909c400e19c4c2c7a282ba67374f41ab2d070bf83f2)** | 1.0.2 | MIT | -| **[which-collection](#8d30c0dc07cdaccc2163cb70ff87fa91c48abdf4963bf5603218d66dbd6ae538)** | 1.0.2 | MIT | -| **[which-typed-array](#949a7e27fa7c5423fa71694a92b2c5e0d1b7f9e43ba00aab74414d4311e82530)** | 1.1.15 | MIT | -| **[which](#5a71f2b741944bf107d6e7f067241798a6e277e42e8ca1e28c4608ccc233f8ec)** | 2.0.2 | ISC | -| **[winreg-ts](#b1df7eee15fa28ae85b9086513c8316c08a21c254e8eda11e63c6321a03ac4a7)** | 1.0.4 | BSD-2-Clause | -| **[wrappy](#13cebf193d7ada5ee347b9ae819b96f5e6da21f9b53e7f268c7703b686158595)** | 1.0.2 | ISC | -| **[write-file-atomic](#f2c3af5826c073336660baeb567e1bb4453d5b6fadafaa880c59787bfdc4408f)** | 5.0.1 | ISC | -| **[xtend](#ef439651e21b69e8811099e984a3a42de35b6d0fc30a5c230715bea4c96e4940)** | 4.0.2 | MIT | -| **[yallist](#63b110ffd18712146937e9f182800c6f2b5783e76d1659a0bd4b457789b0df07)** | 3.1.1 | ISC | -| **[yallist](#d400799c4e1f58dbbbe68b4d9c1b6e80e023f744bd7d16da491005fd8439200f)** | 4.0.0 | ISC | -| **[yargs-parser](#617a7401008b7639df8cebae61c9c009bf04ca762c652da0975da4533bf33690)** | 21.1.1 | ISC | -| **[zod](#7e37bb8a0a232b053778166963faee52e7d1a9cfca82f4501d65e94f11d1c566)** | 3.22.3 | MIT | +Package|Version|License +-------|-------|------- +**[@ampproject/remapping](#0dc8b6568eb743fd551ce2cf2f54be9d0f94b12167f7c34a997c864bcc7e128d)**|2.2.0|Apache-2.0 +**[@aws-sdk/client-cognito-identity](#d3350d9512a30a7d722a254609aaeb5048055ad7ac83e0fc718676cba82d4f0e)**|3.632.0|Apache-2.0 +**[@aws-sdk/client-sso](#122bc8ec6e0086415cbed6567ead1e85e6a80326f5609ee0221fabcf2bc3e35b)**|3.632.0|Apache-2.0 +**[@aws-sdk/client-sts](#92440c05901818918488da134d1ff538799409309918135a178f5881d1eb6dcc)**|3.632.0|Apache-2.0 +**[@aws-sdk/core](#5ef232eecbafdb891fe4d107f580fd4b94e4eb2712df79ab4b5c3c0255e9b8d0)**|3.629.0|Apache-2.0 +**[@aws-sdk/credential-provider-cognito-identity](#a0b39e721e27fe3cda471c233a5dd7105832c517c80022d149a2709ceecb4a20)**|3.632.0|Apache-2.0 +**[@aws-sdk/credential-provider-env](#f0037899766f9fb156ae52d4262089a964f044c3a331a71320443ad3664ba4e5)**|3.620.1|Apache-2.0 +**[@aws-sdk/credential-provider-http](#990097dcbfa0fafca7fe8253939d00e2237407a576c79a8b94c3fb402a40f9f4)**|3.622.0|Apache-2.0 +**[@aws-sdk/credential-provider-ini](#d0499091db530426e22820e5a86e11c1635cd6cfd6886be00a73167496589031)**|3.632.0|Apache-2.0 +**[@aws-sdk/credential-provider-node](#15a01844ec1a77911fc8af581b4cc91607f4ea537aa1b55099ddeb3933c08793)**|3.632.0|Apache-2.0 +**[@aws-sdk/credential-provider-process](#6df29928703aec90607f9c2d3a1c36071751aa24177be72f0fc88c6773b7df22)**|3.620.1|Apache-2.0 +**[@aws-sdk/credential-provider-sso](#d0a0d6042ff0dfbd6143041fd83bc1096e36ec1b9b7100726135989fe6974d7b)**|3.632.0|Apache-2.0 +**[@aws-sdk/credential-provider-web-identity](#7ca705ce1768551740ce25addeda56a029a25efb024929b6224fffed16402d87)**|3.621.0|Apache-2.0 +**[@aws-sdk/credential-providers](#89261894eb9947986c4f5e3d27470902346dad44742f42ed42ef0c3b7a443165)**|3.632.0|Apache-2.0 +**[@aws-sdk/middleware-host-header](#76f9788f0a3892655b30ff5be7eadcc24c2a4dc60675874d11e110e53cf7d770)**|3.620.0|Apache-2.0 +**[@aws-sdk/middleware-logger](#77971232a25c0db769f48f8c0b70d1272e792393db29953a47d319effbca9616)**|3.609.0|Apache-2.0 +**[@aws-sdk/middleware-recursion-detection](#a19d96e543a0b45bed652d0c84ce89e3f27c98bbcfecbdb66fe4124b14f4e25c)**|3.620.0|Apache-2.0 +**[@aws-sdk/middleware-user-agent](#a3db739171b14ee7fbc688b1442211cc99cbec5032b4e29c011f4031d6d30789)**|3.632.0|Apache-2.0 +**[@aws-sdk/region-config-resolver](#c707d161415ea2bbe26756eb111aa1fa6e20fe297f8357c2314200f1bc7b4812)**|3.614.0|Apache-2.0 +**[@aws-sdk/token-providers](#2797e884608a8f3c4d716b944c9df465acbf619c27612fecdf21e6feac32ffd4)**|3.614.0|Apache-2.0 +**[@aws-sdk/util-endpoints](#d7c10ece9c460c5fda50acd92143946e29643997740b52f22a2db086204b922b)**|3.632.0|Apache-2.0 +**[@aws-sdk/util-user-agent-node](#78337458e259597e1af9ae36c139707b9d47d298d6b660fda8ca49f7a6039933)**|3.614.0|Apache-2.0 +**[@babel/code-frame](#414cb15586d104447ca15cc1904c5779eb415e9079a4a3ca6a81ad96ba9ee4e1)**|7.24.7|MIT +**[@babel/compat-data](#b4fe3477d50389378e6666362dee06b0abe468140f77f427b952059f193a7a38)**|7.25.2|MIT +**[@babel/core](#cb1e750729bb20848944291eb3bd3ec445a032e1929fef18d6ee0a6ef3f04bcb)**|7.25.2|MIT +**[@babel/generator](#0b27790f5456040ac13e71653c95ea0152f86742fcab51983e67601681ba94e0)**|7.25.0|MIT +**[@babel/helper-annotate-as-pure](#029a306089573d76f9def44953787148e1b886d6f554efd9b97b9e7c226a0bb7)**|7.22.5|MIT +**[@babel/helper-compilation-targets](#508649a127123be64df2bf11cb716138ec0b9e821f15f99f2f4ff05ea6b4da74)**|7.25.2|MIT +**[@babel/helper-create-class-features-plugin](#ecefee5d4a0100be1536cec655793a6bf8aa75d540cd1d4ce8df49a91d25f653)**|7.22.6|MIT +**[@babel/helper-environment-visitor](#7c3618d6e312d4ee318c25b43c5e6e8b79bdd545f899341f34f4174f993f75c6)**|7.24.7|MIT +**[@babel/helper-function-name](#341cda70cf85da27703ac922b9c9e2ae965553830dec7e94a358ea0efc80e33f)**|7.24.7|MIT +**[@babel/helper-member-expression-to-functions](#a4b70dbf2d35802a3d8c37e07c5cf031678d08474ef4ab11a6d7e5e3a3143626)**|7.22.5|MIT +**[@babel/helper-module-imports](#ae249528a13dcadd4a50009d6fc23533184b7512e6029f8e75472bc05ec78328)**|7.24.7|MIT +**[@babel/helper-module-transforms](#ba2e9abfc9b01015dc06b6eecaff1e93add098ad2ee1fca4541d2a42b1e3b265)**|7.25.2|MIT +**[@babel/helper-optimise-call-expression](#4e8bad824c45ef99b87f6cf7d3f35a61a8d2d36406972594e230d12ae775ec9c)**|7.22.5|MIT +**[@babel/helper-plugin-utils](#b7852d4cf81a7e126d632935ff358c99ae9f07948155e64224a2d526a903a009)**|7.22.5|MIT +**[@babel/helper-replace-supers](#a646f77bcb685d394b994b1e972791acdfcd92c83f33daec4ff2e75c9b1ed148)**|7.22.5|MIT +**[@babel/helper-simple-access](#72de0cb66b9416da47c095a80457dee176b7e8944b20eb0aa927ee59517c69b1)**|7.24.7|MIT +**[@babel/helper-skip-transparent-expression-wrappers](#3680d72a3e5058442cc8966d761775227dc7296f71c862ab179c463d5caeb58b)**|7.22.5|MIT +**[@babel/helper-split-export-declaration](#05dfa4aa91ff28ddfbe5e3741d3535f2998fd2ff8619ee42a619458dcca04873)**|7.24.7|MIT +**[@babel/helper-string-parser](#4b5727b5007527084d63346bf4767bc3b8683c75b68fc4f3a1a3d0cee5fa235a)**|7.24.8|MIT +**[@babel/helper-validator-identifier](#cd56a60c2382cafd5f5f3432d2af1a5103bcbb862da8abd0d0db0316886a2789)**|7.24.7|MIT +**[@babel/helper-validator-option](#cfe2d04997b6c7a764f96a7383b7518f4ad73844a12cc8dc3537045dcc297fad)**|7.24.8|MIT +**[@babel/helpers](#43b0b2e5ad67e18b90f0a2f60c96c3818519ddba3de59ed0c52a594f33e7b32a)**|7.25.0|MIT +**[@babel/highlight](#ac1d96bb7961d93c529e7b46f2fcf1ee07f0cb15851aab1ac5f212b46e0f0e7d)**|7.24.7|MIT +**[@babel/parser](#4dfa90cfe90188b3d219eee843ef7f70003af7c190bbb15dd2fe74a57ab9ae16)**|7.25.6|MIT +**[@babel/plugin-syntax-jsx](#92b0c9e2acd6beca918c90ecdc4cc5973ac7c517f7dee4ef88df317effdfa44b)**|7.22.5|MIT +**[@babel/plugin-syntax-typescript](#61156a21baf5a28e3fe10ec0f30808684165b1dbb5f5122c2e2eaf69f6f4f237)**|7.21.4|MIT +**[@babel/plugin-transform-destructuring](#c97fc3729e02faa151dc6eb84560e5aba3f15e1b409cf5ed2a58431f96660368)**|7.22.5|MIT +**[@babel/plugin-transform-modules-commonjs](#9dc9700c07e14862f1c48a1e4be203ffe5e62597a92411fba7140f125638e391)**|7.22.5|MIT +**[@babel/plugin-transform-parameters](#6fac48e0505318a21b9554f11767b16b6a8bf8cb79c8bf6379fff44932cfbbfd)**|7.22.5|MIT +**[@babel/plugin-transform-shorthand-properties](#b93c2977332c87c88bb42733c298a494df63eb1ad048aab45aa7a57960fbce6e)**|7.22.5|MIT +**[@babel/plugin-transform-typescript](#01d55893e2b014a36f9855b9c88123888b53f8f2f205e7a9511e2272a8c72ce5)**|7.21.3|MIT +**[@babel/preset-typescript](#6453c0322ee9255614c50610d48452459d62e0663cb3d060b83e4c3b7dc06dc4)**|7.21.4|MIT +**[@babel/runtime](#3a0292b85c21e6020d26f99075ac094fa943f759b0df9b7c01cccf01f65efeb9)**|7.21.0|MIT +**[@babel/template](#ce7b7770e36438d8eb9e8713520aca18c79d1fd0cad068eeb5c88cede557f6a3)**|7.25.0|MIT +**[@babel/traverse](#bc1b8d30e8e37f5eade430e098b05094a0dd90264ff2c291510973e5315014af)**|7.25.2|MIT +**[@babel/types](#c6630d254fc6e684be9d283c7020e7e911bb98d9c99a3e405e4467b1e57ec9f4)**|7.25.6|MIT +**[@codemirror/autocomplete](#62d2362c07f0c11664969b60d0d7c3e081905838b8994675aaf0e6c67baf358d)**|6.17.0|MIT +**[@codemirror/commands](#e12a76404dd2d66430f2dff53a430449896e9b5c2558779497b855ba2ab9326a)**|6.1.2|MIT +**[@codemirror/lang-javascript](#d5fb6a843784efdc3ec06ae43bdf3ca13ec93a6bce802995a47cf7bddafc9628)**|6.1.2|MIT +**[@codemirror/lang-json](#8681100c5ce2bab822c877bc288cac59b84b13ff17735c301d4e1c7fa5924720)**|6.0.1|MIT +**[@codemirror/language](#5528845a8e28aec6e48cb76145e25db0921b87499dc07ab852cdeca48b9f87a6)**|6.3.2|MIT +**[@codemirror/lint](#9b9400c17e0d1474348d87ba1131d9609c3598ea4d575380f81fd746b02ec796)**|6.1.1|MIT +**[@codemirror/state](#7db8880200a14064e03a5e8dd0483aa16511fc8a0c4e09353d51816771f8b63d)**|6.4.1|MIT +**[@codemirror/view](#f6bea8a649eb633e0e66739e6d3bee4d37893904778e421d126f1e5ae250c9fb)**|6.28.4|MIT +**[@dnd-kit/accessibility](#bf712d0ed1df4df5829a9e9695c42e816564346a70cab60f6eaf9c141f8b510d)**|3.0.1|MIT +**[@dnd-kit/core](#6200777f2fce7fbea84b65146c30f3f882633a73ab4e85f62de992928bebd267)**|6.0.7|MIT +**[@dnd-kit/sortable](#059a166729dc9306b37987bfa0eaa5e59b3ffc6928155d28750993d7178ea61e)**|7.0.2|MIT +**[@dnd-kit/utilities](#5c1b45075a016b1605974d8314078eaff1a193cb964f113c2e3730cbe9603ae0)**|3.2.1|MIT +**[@electron/remote](#1b60dc9421c1b6d8b9d0e622fa6b2ef72f605502fd87ad509ea160940395ab6d)**|2.1.2|MIT +**[@emotion/cache](#c91e3f11a83bb52488c9d1aa63b8e135037dbebc6acd2717e994939f5547b521)**|11.11.0|MIT +**[@emotion/css](#0f0fe64169ea56b12722e0c13f21cf260cb4e2a9840c0b909e6871d870ba3129)**|11.11.2|MIT +**[@emotion/hash](#b42900e08e5dadbc62da63a30f552d7705f99bf37c9468aacaf4d05af9589206)**|0.9.1|MIT +**[@emotion/memoize](#1827146c6aec82dcee79fa8bc04b0315431dd1ce05aae537ea63a88ce1580dcc)**|0.8.1|MIT +**[@emotion/serialize](#55f5a8e0d65e17a53e71c997b847af76e4e1c46fc25aec5c6824a23ced36b5af)**|1.1.2|MIT +**[@emotion/sheet](#e421ab8cefe597cf44f29ad92e17c5dc018be162bdac5bc5476ebac908aa3309)**|1.2.2|MIT +**[@emotion/unitless](#6f21f2d3d65978942c063ac7244c87c1e70353c1cb50b664bb1d1887e84521ae)**|0.8.1|MIT +**[@emotion/utils](#f6b1e8b81a4cecb8428a258e22f946a728b5c73d12a8d5cb55087f672c0ce2bc)**|1.2.1|MIT +**[@emotion/weak-memoize](#e5fd44184f5735455cec841f564e21689561fdc449fed6922f4999dae125d2f1)**|0.3.1|MIT +**[@jridgewell/gen-mapping](#1e660067f4d1364dc830c372517d8ec92eddc9af7eaa6b1e698d478b286abafa)**|0.1.1|MIT +**[@jridgewell/gen-mapping](#25a8188ec7d87cf1b9baf2470bad1f75a22f246ca0fca732933d26fd488ef5d2)**|0.3.5|MIT +**[@jridgewell/resolve-uri](#f356bc3bb9c04f5fe4e387a4eea4e74125aae03bb50f846d956d7d986d200f50)**|3.1.0|MIT +**[@jridgewell/set-array](#46727c727ad43ad8e382221964d27c475629a5635986edac6ea622c772311421)**|1.2.1|MIT +**[@jridgewell/sourcemap-codec](#7b2141e6a44d38d8458ddcb163c26ab65d5782f6c25465b1954182593dd0c2c4)**|1.5.0|MIT +**[@jridgewell/trace-mapping](#73923b51cccefe7db1ead00c09a18978443a238d51a858a7a0c86868a9a4ea3f)**|0.3.25|MIT +**[@lezer/common](#4bf054ecf9e3b46b5959ff484326d62af9e9d7698317b1e8a5f11a5ebf66534a)**|1.2.1|MIT +**[@lezer/highlight](#30f07ec49dde0ce2f5c814903361f4d9c8b9fc2d8bb143d2e682e05d94a69ee6)**|1.2.0|MIT +**[@lezer/javascript](#6f8d761b240b610d6ad180799f8b36219b20649cbce80bd3cb7e669082e92ef3)**|1.3.2|MIT +**[@lezer/json](#7869bdb7c09e2ae1e28909eb504f475477cc5ed0750dc8ccee42886961975253)**|1.0.0|MIT +**[@lezer/lr](#1443872b0ea87b0af4967c9026094e634c83118fb811349742ca05bde397412b)**|1.4.1|MIT +**[@lg-tools/test-harnesses](#d9d520c615bec249e9215664d5dbb781e77d0e048253f0f1de362a8bb6212d6e)**|0.1.2|Apache-2.0 +**[@lukeed/uuid](#82700fba068def47ea9842f28d700a387f59da805f74a6ed10a5eb7eece4cdab)**|2.0.1|MIT +**[@nicolo-ribaudo/semver-v6](#0db933ddbe9acfd097ee5ee08e4afb1f4f7a64ef9712f95fef7958494c8e02cd)**|6.3.3|ISC +**[@react-aria/interactions](#638eaf69f422aa3fbe2277f9e95b6b87e64569742134491d2653e9fc05c8f58a)**|3.9.1|Apache-2.0 +**[@react-aria/ssr](#d50578768741f1468c3d5dc0da1f585e37a01e7e13b44149ff094a0a5008d023)**|3.2.0|Apache-2.0 +**[@react-aria/utils](#1c0ce36c400225256d025ea8b6f4d36b8d4491f6c81cc1e9dfcb961dbfe05bd7)**|3.13.1|Apache-2.0 +**[@react-aria/visually-hidden](#67d321e4ea237fb1e2b91f294d1f31af998f4e1ca75ea5eb4a780b2e254d3149)**|3.3.1|Apache-2.0 +**[@react-stately/utils](#0827474019c352ac03e04eb7fc65f7fe2eba2af1f14f05cc36bb74a504d893f5)**|3.5.0|Apache-2.0 +**[@segment/analytics-core](#ceca19940ddcc60d35099f1b04cb449caddc02f22a12fc4b6e9afab7b5b38e14)**|1.4.0|MIT +**[@segment/analytics-generic-utils](#9f4e5775b541ec8bbc32077308532f03fb923e2fb19fff11ac4506ee4498af13)**|1.1.0|MIT +**[@segment/analytics-node](#5e36f09aa494e968de1e219302594c1aa82f14d2287c063fe1be910021fe1879)**|1.1.4|MIT +**[@smithy/config-resolver](#50159dd3d75e4f4233935008371e16a6721f052e958a5c4b9c7283e5adaf8f33)**|3.0.5|Apache-2.0 +**[@smithy/core](#874e0237249efe933850eb42f816f882404af60f8a1512dd83c6b1c98ddc5d19)**|2.3.2|Apache-2.0 +**[@smithy/credential-provider-imds](#34611beabdec16106966ebb4943cfecdc43c8cc142e5edae6436365632b9fa58)**|3.2.0|Apache-2.0 +**[@smithy/fetch-http-handler](#786f2bfacb944bdb568e1a786606a6a2dc02f867842f7800355b908aba260891)**|3.2.4|Apache-2.0 +**[@smithy/hash-node](#391a956b0a8b9c2f7af88541150eca7a355c08e2c891e15170a0cedb66f8c843)**|3.0.3|Apache-2.0 +**[@smithy/is-array-buffer](#3e840c8e473fca775cfba50e1c0832e2a2734ae3e75418b55905122f260bd73a)**|3.0.0|Apache-2.0 +**[@smithy/middleware-content-length](#93ab06858226b2392bd8f35d1ef56a363eac4cf19200bb8ee81e842384a8e2e0)**|3.0.5|Apache-2.0 +**[@smithy/middleware-endpoint](#dce020d94d521d84610461a98027c3821bec38cc676a35284ead114484d1dc06)**|3.1.0|Apache-2.0 +**[@smithy/middleware-retry](#a4651b327b9add4d8cdd1e0d62ac38d992cf25b495beb18c90bf3d09108c1703)**|3.0.14|Apache-2.0 +**[@smithy/middleware-serde](#c3675ccf95f0205d19f112c92a7a34849fe09dcf0900877b295692cdee3b1a3b)**|3.0.3|Apache-2.0 +**[@smithy/middleware-stack](#ea63c1e355c55bbf2e59545c6fb05399ca941daeeec43540feb38e2fef98e93f)**|3.0.3|Apache-2.0 +**[@smithy/node-config-provider](#f3a27d12f80a2d60af7facfff889c045d65b56e0ec20904c87b998575b7e4605)**|3.1.4|Apache-2.0 +**[@smithy/node-http-handler](#c37a7f5194e1cae47e8a63c4bb449434097c1beba0e14d3d7f821da9202da3b1)**|3.1.4|Apache-2.0 +**[@smithy/property-provider](#1af73ed46575c11cb17328c5ab023c4689b6fd3aac8e95637d8a2430c8234d4e)**|3.1.3|Apache-2.0 +**[@smithy/protocol-http](#2ba5cccbf0f9869872f2786a1c202c5d4dfb6aa59b8e933b0d32c5bfaef8ead4)**|4.1.0|Apache-2.0 +**[@smithy/querystring-builder](#200f9715ba37573546a0ba50d6600f493501ad1fa99a1214f4652edd3f32eb6b)**|3.0.3|Apache-2.0 +**[@smithy/querystring-parser](#b2d703203bc9334d657f0cfe5e2f3ff2e029f4be60ccb9a837373f1019e30bc5)**|3.0.3|Apache-2.0 +**[@smithy/service-error-classification](#557a776a2222ef5b1930bc9c154cc80a4422644765747502c34995779de707f9)**|3.0.3|Apache-2.0 +**[@smithy/shared-ini-file-loader](#103ac7bac6c71c7909ddff4de45221eefb970300f5eee041039c35ce86e6ade0)**|3.1.4|Apache-2.0 +**[@smithy/signature-v4](#4a110aeeb62df2468523d0078962af35910d6e836463e11142bcc1be2d1f4670)**|4.1.0|Apache-2.0 +**[@smithy/smithy-client](#d41834802fb9a283a133cc778bda33ae0a4580819e10c0d12797f83ac83fa1a9)**|3.1.12|Apache-2.0 +**[@smithy/types](#66e18d9960829b34832f8284a597f0e8bc4f70149542f7533dc9f05866bb22f2)**|3.3.0|Apache-2.0 +**[@smithy/url-parser](#cc28500f1b3dbf7f305e81f81414d3f5cd733e00df104a56acdd5b82f2f19ef4)**|3.0.3|Apache-2.0 +**[@smithy/util-base64](#c13f86d5882c72328221d234d624fc36da9fe0ef6270d9ed0f7a3690616bc0b7)**|3.0.0|Apache-2.0 +**[@smithy/util-body-length-node](#a84f0a1a3fcd05391da50ee998d84695412ce141bdae38ca182c11a58eb7df38)**|3.0.0|Apache-2.0 +**[@smithy/util-buffer-from](#33c6c26bbdc76fe4bf4ca385fe9618fa7322bd346d836ee4b18e5b322e256051)**|3.0.0|Apache-2.0 +**[@smithy/util-config-provider](#c87a7523255ad59e5f721bd27137222d188dc0507d93c4cd946092736ca3b582)**|3.0.0|Apache-2.0 +**[@smithy/util-defaults-mode-node](#17e3c5fdb381e735bc7062fa7510b953fb4f9ba1cf43ec61f9252f133ae35bd2)**|3.0.14|Apache-2.0 +**[@smithy/util-endpoints](#6bbc52b3dfd8d143c95f7c48631d054e2b4c76ed74a0e449c36a12a4d3505279)**|2.0.5|Apache-2.0 +**[@smithy/util-hex-encoding](#f797009fb996f0b306124df8c5f82a938af17ab613ee4a6d1b7e2014b26fdde7)**|3.0.0|Apache-2.0 +**[@smithy/util-middleware](#cdddd643148aefb93fd2abb8f3ea636694a4d11ed1e7e6f883fa81661a3b7dd2)**|3.0.3|Apache-2.0 +**[@smithy/util-retry](#b62c349356fcac274685aa0ab184eb71cac5084041f86ba14fd6f4cd091ee49e)**|3.0.3|Apache-2.0 +**[@smithy/util-stream](#620a9e04e4791a554ce9ddd0d3fa2f264d0d5bf211b7e5d4354411bc40d58ad6)**|3.1.3|Apache-2.0 +**[@smithy/util-uri-escape](#00c89382e0278c66e8d4394996711d826b23491ef5e313b58f5681da7a07d0b6)**|3.0.0|Apache-2.0 +**[@smithy/util-utf8](#c0da7acc7121c0e4e76c58d92e290275318534cfce16949c7b916cfa0301c3b9)**|3.0.0|Apache-2.0 +**[@tanstack/react-table](#3472fd929bf691e34b02f3f62232cafe55163b92e3c51afc884780ba2413e67f)**|8.14.0|MIT +**[@tanstack/table-core](#8a18d3df915b2b72a0c8a845e2a930504b08cb745c8e0b5537de30793b71c967)**|8.14.0|MIT +**[@testing-library/dom](#15e0d0db2fcc307557d106b8a27b182d980d667836b8d8cbb6edb67a0aab34ee)**|9.3.1|MIT +**[@tootallnate/quickjs-emscripten](#dda6dbabe98503ac1af20979be1778d7a1c8f355b85377124a909567193c2cd3)**|0.23.0|MIT +**[accepts](#4c224d266c36e8e0abc4a53eb7eaa038504ee20b9b91f3e761187298a447d76b)**|1.3.8|MIT +**[acorn](#4aa96f656a11c11b0e17ee35cc26cad7c13dcf4afdff6431e6d074261b59f47d)**|8.8.2|MIT +**[ag-grid-community](#f3a0879bf804a8156c501942869cb2b3f5c2770fe5ae768eacebf9c4856a3e6e)**|20.2.0|MIT +**[ag-grid-react](#266b3ad41f62fe9d8b3388c7e3e56532f1081dfc35c8b513d746105d0f7ef2d5)**|20.2.0|MIT +**[agent-base](#f2315537cada74050b82aaa21dcd7136d001ad9b9442d6ce952030fd890ad26b)**|7.1.1|MIT +**[ampersand-class-extend](#fa70ccae815f704b05515401eb173b69fec304f2fc4d70d8cefafecb7582c960)**|1.0.2|MIT +**[ampersand-class-extend](#e80e071b7daf67567df2ed06a0912550d865bb42f740c56f3ee13e4c9ada947b)**|2.0.0|MIT +**[ampersand-collection-view](#394cdda776a31044177827f7d787e79a65210fbf3e6d2619e2f40709248eaaed)**|1.4.0|MIT +**[ampersand-collection](#7ae90475872c8fb68869e0d81db8e343084b47fd30ab156865b4b22ae3578a37)**|2.0.2|MIT +**[ampersand-dom-bindings](#4af3a9ceda31b9fc6fc90e458e9cdbb22d004fa171f69665f659b71f19bdff7d)**|3.9.2|MIT +**[ampersand-dom](#3e17c8de5bd0d155ce04e72e923d7d76d39708be70bef26a67583c28a1850bbe)**|1.5.0|MIT +**[ampersand-events](#6bbd750c35bde9ac7cd9789013efa6fffbdb3debb597dd66deaa7a818623209f)**|1.1.1|MIT +**[ampersand-events](#5aa8f29a56511aafd27953d01cb603faa9aa7e2f92847c72f879c42646e7f3fa)**|2.0.2|MIT +**[ampersand-model](#82c2458e0e00bac271d59b70c0cc51b9d8c2ed725b62f51575b4b422c7aa5ca0)**|8.0.1|MIT +**[ampersand-state](#5a76226bf9a842fcccb127eb22fdd20e0bf973f5c4d2e3330bb88a587cbcdb38)**|4.8.2|MIT +**[ampersand-state](#50886d5661d4241b348d233af087614640a657fad2d772282410875a410ba00a)**|5.0.3|MIT +**[ampersand-view](#04597f3cef8beed68d8312481c66b00b5cfb5700dcd5e7fc97a1358472ad7dd0)**|9.0.2|MIT +**[ansi-regex](#7fa0e28daa6f9c697017b06f32a9e31a57ccfb4f138a8daded68a5d002231e29)**|5.0.1|MIT +**[ansi-styles](#3d188f4ce9ad01e2061b3dafeb74005547429b09fb5b114980303db9cf34f4ee)**|3.2.1|MIT +**[ansi-styles](#22c90e10fdbeeedded470f2fb78a8094893efd4675108074eddde452da52ef87)**|4.3.0|MIT +**[ansi-styles](#a480abbdfa49ebce7f9eb04451485c433d1fa24a2ddc4380cc92fd2d34642d82)**|5.2.0|MIT +**[antlr4](#c5ad356fae2f067425b6c90b7251290842a1f2dec296bbd5afd5ccc32dcf3acc)**|4.7.2|BSD-3-Clause +**[aria-query](#ea709a066de0bac38519808675639c17ed8511255f6f1604c0262ea3914cfd2f)**|5.1.3|Apache-2.0 +**[array-buffer-byte-length](#cc88781e246dc898d7b281d0c92ffc26ae81261dc07ec4ea7d1257688f769328)**|1.0.1|MIT +**[array-flatten](#832052c97b92484a7685d432fbdac9cb8d6cd26a0de715df336780d91762bfc9)**|1.1.1|MIT +**[array-next](#2eca7126c828f7c4b047e8bc3982acc390adc906c9e1fd2ab512d7ade811a40d)**|0.0.1|MIT +**[asn1](#c03a7b8eb9b75e350660b88148698446ab536a4ea01c5f321c14036a86aac2ef)**|0.2.6|MIT +**[ast-types](#b10f17e6889028ee16e1f388d24ed535333cd289f0871c70d99c6180f498c6e0)**|0.13.4|MIT +**[available-typed-arrays](#b26a9227325a0e2f27e4793244a52200e15f63f970e71f86ead22e0f696c4a41)**|1.0.7|MIT +**[aws4](#10a86cbc2356f4c2e30ecdd2d3f40dce2dee62e2a2efa860bf539568a5d14573)**|1.11.0|MIT +**[base64-js](#cf278cb8d073b3bd22b60816c2ba78b69043aec6bcd673437b4c1db3375153d6)**|1.5.1|MIT +**[basic-ftp](#2893c6a2ae0507b9073fc65146e8902587fef3bfeb9e94a67ea34cb09124b902)**|5.0.5|MIT +**[bcrypt-pbkdf](#b6b5900f1e48a933591abc1c918fbcc9c890b3d071f607c59d704bc1c13b3937)**|1.0.2|BSD-3-Clause +**[big-integer](#eb3eaa39f6d9126fdf0b39f43641e13908ba5ab8b70af073669d23cc768335b5)**|1.6.52|Unlicense +**[bindings](#acdb65ce90d2786593049f690752613250632fd5aeaa2960152abc4f0e8f3a44)**|1.5.0|MIT +**[bl](#0e8c95ceb67a28a94b8caec6fa59d55974c80aab5dcf21bf1b17b0867f694c3c)**|4.1.0|MIT +**[body-parser](#ac02c7f4de34d468bfc87444d6d5f4691f322aa0b5dbfe2c2d0c3c42fd078dec)**|1.20.3|MIT +**[bplist-parser](#a012056f1b32796d923573a3b1ef72cf36943d95e5e2f6af0f7eeab57a21be24)**|0.2.0|MIT +**[bson](#b355c474f7d8440212aca8ad979743ee65c159f2d853f15ebad55e080bb21ae5)**|6.7.0|Apache-2.0 +**[buffer-alloc-unsafe](#1022220a813dd092d3ced592ac36121a00bd08a9c2020e08ad370dc29ed217f0)**|1.1.0|MIT +**[buffer-alloc](#d5cbc95b9dde4a46cd45334630efe3bc9025c904074bee845376bd60651441c0)**|1.2.0|MIT +**[buffer-fill](#c3747dfd267829ceeb564a1717d0c65d88d2b366e215f640067abefac59e3fd4)**|1.0.0|MIT +**[buffer](#409d076f160d0351818531a7c09f5e2928335b83e3f0070a7f3e2685553efa6a)**|5.7.1|MIT +**[bundle-name](#a4c3d6b89061e28c4e5d7937e09f0886c37c406b9c547105da495923b5e3999d)**|3.0.0|MIT +**[bytes](#bc4d24341f85f604856ec6dfddb2dd192b71929ff892a8549f6b5050fbebac9d)**|3.1.2|MIT +**[call-bind](#855e84602be0584cc1eb1123aa7791d7a2cc4ed81d396818fb2b13515af7d811)**|1.0.7|MIT +**[chalk](#8b8d3d6ff6233601575f891628d83bd6b34978a103d513931ae45b00f0e07585)**|2.4.2|MIT +**[chalk](#0c7c7a95e90c3fdaf99df4851bc949785311d8ea1d2d4498615f37af8fa16cf8)**|3.0.0|MIT +**[chalk](#c1619ad3bd43ce54cc7a4702c368501fd4fb4fa629077ba610f81d81bcd3f5f1)**|4.1.2|MIT +**[chownr](#3dbff1a17bbf2c33026995132ecdd14757cb3bee815f4636fe43df0f5ebdcf07)**|2.0.0|ISC +**[clean-stack](#e1e3f1193b2ac191874d758c618f1552b4679c5ef91d3d59cf46385c9da4e965)**|2.2.0|MIT +**[clipboard](#c48767bc6ed2a136b20ca8ae206e6a049e1e98a7db03120c44fbd219389ea248)**|2.0.10|MIT +**[closest](#d06b758bb0a5c68d314479321acf51e1e5ce0faa84afba2817b574067e610ef0)**|0.0.1|MIT +**[clsx](#112cfff031c752f6ab3595be6de44b2c02620da21c18ce4e2421b6c176f6ee08)**|1.1.1|MIT +**[color-convert](#a85d5170e73259d44269aafb78e1863169810a839a870124e3574457d214e28d)**|1.9.3|MIT +**[color-convert](#55c87baa2843a3df1bf7eb7ad8e5c1329afea9bef4e94386d484de20b03c119b)**|2.0.1|MIT +**[color-name](#e7c2ecd62026cf51768973c2e972505cab32d45b9368aa35105af0a68839ad37)**|1.1.3|MIT +**[color-name](#66a8b5479032c7b05b81caf8cef9ed81be452b9f3f299868af0167900a4db262)**|1.1.4|MIT +**[component-event](#32d720e7a217746311d55af1f088a9ab8ae8a3966be80250634fbff4c2c45935)**|0.1.4|MIT +**[content-disposition](#b0fd3fa1e97f5d899f52e84c86cd6d0a077cabef2388f531bf62f1f1dbdbc371)**|0.5.4|MIT +**[content-type](#65e9de41d2cef0ed95875e387bc56dae50b05d41b1a7868ed68c32834843bbab)**|1.0.5|MIT +**[convert-source-map](#46e32cfc12079a57eefebf967b5959d3657698c6a389222eb3228f49cb2fd8db)**|2.0.0|MIT +**[cookie-signature](#28f6116b52488ac66a14424869fc346f611bea6c894e7d0f7f2ca701deb8e49c)**|1.0.6|MIT +**[cookie](#c396652ff004385e7bdb8398e37493d5f4144e475282a413ec52f1d3fdaf25da)**|0.6.0|MIT +**[core-js](#2d0305d15eab4ad23db10b97faf9d8e8e0d5ad30a616c5892d1edd535d8a08c8)**|3.17.3|MIT +**[cpu-features](#fa992e00865a6ed732ac63bbf64c89ee2da4ec39944684e6002a3a34b5adb65c)**|0.0.9|MIT +**[crelt](#9eba7acaba2af9d27a0a18fcf40d1f133ffa888d85321e4633e7dac58cab2db9)**|1.0.5|MIT +**[cross-fetch](#2cd4375069c47bf89a4b399cd21cd9573086803b2cb9fc56c29df5a598e051e5)**|3.1.8|MIT +**[cross-spawn](#67de3a765808182ee1018c35bc07d7a023a8d645e98cc32814dcac2fc2c427ff)**|7.0.3|MIT +**[css-loader](#36a5fb6f554559a2f884527f4dd7aa81131ccc3b1aee899472cfec2eda765798)**|4.3.0|MIT +**[d3-flextree](#d4848a862048d0f4733db2a8631b802f3b5f86f2d4a1efb77fc8b8cf9a06bf73)**|2.1.2|WTFPL +**[d3-hierarchy](#e718643319205524a77c56ca75dcbf37e3975cc5e187760d1eef01cdd94a7d74)**|1.1.9|BSD-3-Clause +**[d3-timer](#8d462b04307bb707afc68fb60de32526091852b278fc753ebd023aee6ac2faac)**|1.0.3|BSD-3-Clause +**[d3](#af9ae6fd28524ec267db82c3ebf75e02f2806418cda4ab310971631d632d3317)**|3.5.17|BSD-3-Clause +**[data-uri-to-buffer](#496bb13aeb7c14308e5c8c3e20ea81509260ff27a35abfc39b316ced3c5d6860)**|4.0.1|MIT +**[data-uri-to-buffer](#27ce7d71d79fc8fbfcac8bfd802d2dd044056224bb2a737180caf2d7e268c5ad)**|6.0.2|MIT +**[debug](#233219ced46fb5b84e28859835e97775eb9d0181f4cb85d6aa5cecb61e595947)**|2.6.9|MIT +**[debug](#f9b654e80c05af90dc288869333e452db67fbba75969b385acd60df9895a7944)**|4.3.4|MIT +**[debug](#8f6d58c520b4b6702b6fb9abb811ba1798560ac052612c0fa8dc243516825360)**|4.3.6|MIT +**[debug](#8bcd678354554043662ec7b1a1fc890da6dca2f1f245833d5400831daaeb3fc5)**|4.3.7|MIT +**[decompress-response](#71cad5eab34cc643a6a7853a43d3090ac7e8b6014c9ec55fabb8112cdbfd9fbd)**|5.0.0|MIT +**[deep-equal](#2f9e585913d3ba1d9ffaf3e79f616e66788fa687f6069a567aee25bb3045410a)**|2.2.3|MIT +**[deep-extend](#654bd7d00073c2195bca924a07d93393b2aaf5cacbb6f52a383877f6f33dbfbf)**|0.6.0|MIT +**[default-browser-id](#bc6a381b83371172dbb72cac459792e2d4d55ecb71165c082142ef085b2130ee)**|3.0.0|MIT +**[default-browser](#bf5c7331e49e4c648e57747ffd553870a7fe79fea24780366a6bc22ef346f304)**|4.0.0|MIT +**[define-data-property](#a776d26c4eb3429c37b30afeed2ddcd9be51dec6d9ea7025b0e6426a5d4f78d6)**|1.1.4|MIT +**[define-lazy-prop](#6e79b04c4690532e40a5cdfb76f3ab49de1d6778466fede1548a2e19ac8e75c4)**|3.0.0|MIT +**[define-properties](#332935df321f270f8588f3ae5e25759d1611d1610bd987eac78b79dd1ee5fe35)**|1.2.1|MIT +**[degenerator](#6cb75d096539cebca1a3054d0012d40eda0230d9c8da8455621c9d78b92f0b69)**|5.0.1|MIT +**[delegate-events](#9bd9e92528721909dffad7816bd183b65a96891a390f9420036ba9a2cc6ae291)**|1.1.1|MIT +**[delegate](#bc2c0cfa061f5865ffa83a2bf2c0f3e29dc3a2056113b1ce3e9acd33709e7606)**|3.2.0|MIT +**[depd](#7028878ddf0fd7d977703a868b5ec8df7220b2f8e7d67827e93767cbb0f21b99)**|2.0.0|MIT +**[destroy](#b0d735940e17a041d544c301b27489e5d09c3032fa11e7832f03be6541182fd6)**|1.2.0|MIT +**[detect-libc](#75227d1b1c09630ea361abee4d27101e350832bbeab9640a013c82662408b467)**|2.0.1|Apache-2.0 +**[diff-match-patch](#850176c67954354dc12126896278644187ef9d1eeeaa1d67f1b6ef48b0c23321)**|1.0.5|Apache-2.0 +**[dom-accessibility-api](#a91e4ceabaaddea1b80532694b37621980591fa28c7144a3a848e66363bfee06)**|0.5.9|MIT +**[dom-helpers](#8d51cc2c2eba67a9ee7b80bdbca48b1102ceeb0618178fae05b1a82522a80e6e)**|5.2.1|MIT +**[domify](#4360a769ee10e827f9ae503aa7ea9aeb9039932fa02ac938316df303704a7fb1)**|1.4.1|MIT +**[dset](#f51cb933ffb40a4dfeed4e6c3f7e6299cf7d05c42528b3fccc5bc7cab310914c)**|3.1.4|MIT +**[ee-first](#e2746902c758ae8a6f91ffb9618cd53717f936cb33c6323e65b6b7b24f7ebefe)**|1.1.1|MIT +**[electron-dl](#e97e034c7b93c63e7a433d75f6f1de3e0668764225ebbd61dbde8d1b55d6f3b7)**|3.5.0|MIT +**[electron-squirrel-startup](#09fb8168e8fda2e174f8d1a1c392ffd8f762c5637c788edd00d1e2486d060349)**|1.0.1|Apache-2.0 +**[electron](#b8949aa8130b5ef5da1efc84f1a58e30028db62c230eb1da216dcfd7b263f55f)**|30.5.1|MIT +**[encodeurl](#b89152db475e86531e570f87b45d8a51aa5e5d87d4cc3b960cee7b8febf1d26a)**|1.0.2|MIT +**[encodeurl](#177948a319ae0aeebbd65742c53c62b37c75ec1d021afa5a188d10a7ceae6623)**|2.0.0|MIT +**[end-of-stream](#fadc10994f5fa767d06fb25cfff35fb17a895daf3bc3477c782907668ed16563)**|1.4.4|MIT +**[ensure-error](#3b1eba5276d89414cef21a1007e85c4f1d6749bf57b300e082ab23975a41dbc9)**|3.0.1|MIT +**[es-define-property](#f19a2c06a58db5974cd4d8abbd3fa0453122ea6d3bac0de0603ca69f72dcce38)**|1.0.0|MIT +**[es-errors](#645b141d3027520f69209dba8e012e737f0ee8cad89ea8d0e26d02669d14a981)**|1.3.0|MIT +**[es-get-iterator](#d9180f3ad32c9d77645aa98ee5b6b8c233f3341b4cdfe00a1b8909505dc0f84b)**|1.1.3|MIT +**[escape-goat](#9e11fd1d88e064409c700bdd041e7a9077ebe4bb0e8ad151a6820df52ac0a9e3)**|2.1.1|MIT +**[escape-html](#5463e0a52abb42be051fba2f4ea5d49d907d2b5ed09df0983b54f88c59c8c481)**|1.0.3|MIT +**[escape-string-regexp](#a9c53481a9db89e7cf01e302086c50fcfbde360978cdd2bbe1e52a430d3fee42)**|1.0.5|MIT +**[escodegen](#1e641bd52df32bd017c4d69033099f93df452d219efd67395b78fead686277f3)**|2.1.0|BSD-2-Clause +**[esprima](#48204389e2519fd65c7341ad2eb6174fad10df3c5b019e78cbabeb2488eeca37)**|4.0.1|BSD-2-Clause +**[estraverse](#34389c51a0aa1205dfb23a6e76beb58b791316f617dc3d09788e50fe99fe5338)**|5.2.0|BSD-2-Clause +**[esutils](#cbd4dd8d594e202bb6c9713d3b097eea62783e99d79069a29ebf4ce921e129b6)**|2.0.3|BSD-2-Clause +**[etag](#dfcb09916bd8554b4d5ec250d985c02174ddfe92cb0efaa97df51b903ce0adf8)**|1.8.1|MIT +**[eventemitter3](#2845c3d706e174e51442028b5aada4c274955de08db3fc13005df746b5d6b3e6)**|1.2.0|MIT +**[eventemitter3](#344ac4a1404cf0768bccce4529868ee2081bb2d49637269457647deab073e298)**|4.0.7|MIT +**[events-mixin](#5db5de476dd54dc255312e4dcdb45fb765e1b7d0622d9b9ba86b65527de02a1c)**|1.3.0|MIT +**[execa](#4172423d3420d919e31613f23914ef325af8a3bf9ed3c6110a4053369b1cfddd)**|5.1.1|MIT +**[execa](#099ba5f976333854bfd5aa2237fd12d883c4477af76007a7963109833edef012)**|7.2.0|MIT +**[expand-template](#46d3e73ca0d4a8c14e99252386f0a5c1a4fd8b2747331373d7b4da97105c15bb)**|2.0.3|(MIT OR WTFPL) +**[express](#8751e219c34fdecbdbc22ade072ef51354f9ff6434904f388f85002299a5a1ec)**|4.21.0|MIT +**[ext-list](#84470edae99e3ac5a9fdf9da513cd9a1ea7e479ca5fca13b6abecbb4c522f97c)**|2.2.2|MIT +**[ext-name](#ad9b31fcbd25bf889177f1e55d92e083fbc5ae2460904d8a81abf075c4762abd)**|5.0.0|MIT +**[facepaint](#7f6881dbbff5f35b8670063d56384fa880a5558aeaf952f1dc00997cfc7cddd4)**|1.2.1|MIT +**[fast-deep-equal](#c3b1bc7fbf8bedbac237ffb2eb2aa967bc264fc393bb6451c52a831352540d09)**|2.0.1|MIT +**[fast-memoize](#f613a3ea5150bd2496e9eb6f15357579eb3ec308a8ee91cdafce0d68ffef289b)**|2.5.2|MIT +**[fast-xml-parser](#ebbe8cacbca0e6da2c884ade309dddffc2df1cf8f3532ffda03e31aa6d3a9a3b)**|4.4.1|MIT +**[fetch-blob](#9a40c73e2482c1cc651991133722a6fedd12dc752d2858a21da24395e6fc8461)**|3.2.0|MIT +**[file-uri-to-path](#9eb41790b1cce0829afe7926edf4be80e0dd6927cd8376c00a54a8fc86f8943e)**|1.0.0|MIT +**[finalhandler](#f3d0b351ed5ad496bcb1412f1508b4cd24709821f254c8f391f6e96999f97900)**|1.3.1|MIT +**[first-chunk-stream](#c940079dd0a2457019ab184334f928cab84e316cd4016ba3581b312aa55c70f9)**|3.0.0|MIT +**[focus-trap-react](#4db13d4bfad6e874b38f8054935a1c7872c265b0a9f279e24dbe2523f3d1ce53)**|9.0.2|MIT +**[focus-trap](#c34eea0a3a357645a464ee2dd814f280c9670f39b9b85132394eb15acb70916a)**|6.9.4|MIT +**[for-each](#8b82c7ffa1300f8e1575c1d59105d6b256827ec211760d6fb6f884e4290e0abe)**|0.3.3|MIT +**[formdata-polyfill](#57e46e70e3cf628270eb56d751c6e2dd8332438324f1e4f5a3602c34ff7c85b9)**|4.0.10|MIT +**[forwarded](#2d7f4275b09b041fd821b7672ebae7c9ccad3c87f3f37b6bd91306973c02b9a3)**|0.2.0|MIT +**[fresh](#d7c677c373e09a5e9c7fe1d1ce69ca3147fe0455bf5606a26251970181d9efc4)**|0.5.2|MIT +**[fs-constants](#9961a9f7535cded379a7696ad6d002a62d4826a3a8c2ffb5624383b942c879e5)**|1.0.0|MIT +**[fs-extra](#f4bda72fc58b809b6533077d1826716805d4bec29651a76697ededec9689e0a4)**|11.2.0|MIT +**[function-bind](#83de3b394293d96fb3fea968392a9d9ffb8b461f6c173bbb76a5bc51db5bec52)**|1.1.2|MIT +**[functions-have-names](#e47bfb8af99536984c43eccff65479505a133c528be9e5e73fa43c03b31749bf)**|1.2.3|MIT +**[fuse.js](#ced18d15cdf119bfd867863e1f147fb1f4021544033d6cf956803c71a14cf53d)**|6.5.3|Apache-2.0 +**[gensync](#c49cbe8d63515db5596a717f0d65eab2f06a623b4f1dfbd512d61bbdccf1aa4c)**|1.0.0-beta.2|MIT +**[get-intrinsic](#2c1a0d16eee22217701f9243a8041f80f74f0a262eb6c10bf1b1f7f41e8599ac)**|1.2.4|MIT +**[get-stream](#8d24427d88f4f3193411b16e6dbdfc05d0edc3ce08460a1c73ec55718470e28c)**|6.0.1|MIT +**[get-uri](#4ae602658ce541126b57c19a2c8c47ed82d62e55c642d49f59f14e841ddc1db6)**|6.0.3|MIT +**[github-from-package](#8cba969ea116f44491f4fbb8b391c0ab40408fc2e5380f81bc8e8e42b55fff8b)**|0.0.0|MIT +**[globals](#749052b146da20b19c298de835e7cacd7f6d1f0a87a8422e538ccdfeaa69b0a5)**|11.12.0|MIT +**[good-listener](#0700018cbdc383f6ad6d421484a062b2e19ae4da91ffeecbccf3886e5a38afc6)**|1.2.2|MIT +**[gopd](#e51829c607e5861ddbe69decfaab45dbffb62e23d40af7d1f746c5bce8d05859)**|1.0.1|MIT +**[graceful-fs](#c0b8c47fbef7d28839a82ca95e6743793680005077b011462d5c0a6d1ca1b39d)**|4.2.11|ISC +**[has-flag](#e2f50bddacaae4f231bda078470fd90f19fd780e9c2bc721710a09bcdd536d1a)**|3.0.0|MIT +**[has-flag](#7ec819116728d891777ebd4140bef063f473b9ae26d46e91f5ca78834c872abf)**|4.0.0|MIT +**[has-property-descriptors](#4616611d5db8c73d2811bc79dd6cbde0b69f1cc891c1f997448bc79546ba9913)**|1.0.2|MIT +**[has-proto](#7a8e708aab5b7c789098be88699f7f374a9b3a2f2737537a66d391147377b362)**|1.0.3|MIT +**[has-symbols](#26dae1ac20c49dbfafbfca8c84abb75e056b0213a6ff12412dd23dd752e1a424)**|1.0.3|MIT +**[has-tostringtag](#e39d802569f1249ba08678c5fb24fc1b87ee4c92cc0f6eaa259f5b54038f2e13)**|1.0.2|MIT +**[hasown](#ace41f4c3d63ecdc85c94d28b43fc006fc67f35c24ecaa112b631dbcb5c0b39d)**|2.0.2|MIT +**[heap-js](#02ff1972404d29f951641af2b6cf6b371521d70f6daaf4196dcc45e6b5dbe96d)**|2.3.0|BSD-3-Clause +**[highlight.js](#2c60adc5db39462d0c2ff2176f71b4694ffe5060c53b1aa4f6f670e269ec1905)**|11.5.1|BSD-3-Clause +**[highlightjs-graphql](#11efa7dc664403503100672cb251f0bac920e5f8ac3847419583e9318faf451d)**|1.0.2|MIT +**[hoist-non-react-statics](#48f3f00d384ea079099b9b701c304b7e276313a616f8ad0084f41ea563f876af)**|3.3.2|BSD-3-Clause +**[http-errors](#63ffbc6de129d4a36e73df25da1f31ee2a7da3b1060e1b5b3c2b5cad89ca04c7)**|2.0.0|MIT +**[http-proxy-agent](#bd2b92f8eb0b68f6d255c316d3cd8c9aff9984e8bcb584d47613c422de726405)**|7.0.2|MIT +**[https-proxy-agent](#8a149a0a84183adc7ec4c2ca491a2aced0803a8c5fdae6e99879bcb4720837e1)**|7.0.5|MIT +**[human-signals](#49d0a41c5a505634282f30fd5bf8876d5c9fd885fc242bcf16c71d3b4c4e2da5)**|2.1.0|Apache-2.0 +**[human-signals](#62680fd7715b22b948ad9771bc3f0de13d753f68f6478afdda970d4393faa754)**|4.3.1|Apache-2.0 +**[iconv-lite](#7d9ca5eb7c6d1a6f1b3b2db04e94ca19cc04caa10d923fca7d7942d47aa505fe)**|0.4.24|MIT +**[ieee754](#926bd89d8cb0e458a159fe96007510a5c9d75add2ea3e46185c68854f977a887)**|1.2.1|BSD-3-Clause +**[imurmurhash](#d1af6342e06cf4463a1e70d43bb8fd673f060cc7c236f7fe024631d6714c81c8)**|0.1.4|MIT +**[inherits](#3eafa9bfb872baf192e837ab771da2e95e983ee682371a2b1c579e518e96f7b4)**|2.0.4|ISC +**[ini](#2269ab4bd2e1fa90571f520780ab5499f6d49da3b7daee9b9dfdad9e93c33a18)**|1.3.8|ISC +**[internal-slot](#1ecccc52c5daf9836e78ebc03604e73050b23a095bc4474240968ba1b9cd8892)**|1.0.7|MIT +**[interruptor](#e8a35d2ce64b947fb7a1aba891bc1e4eb166be57a59249cda1fcc689e767b6bc)**|1.0.2|Apache-2.0 +**[ip-address](#8de6e89459554be8a933663b25ae1d1ffee71458028fa8cbe5d68b349438a8c8)**|9.0.5|MIT +**[ipaddr.js](#38a5a1606dbc89a9c65a28d1e9ebe3c8d323e107a77c495a56dbf522211676d2)**|1.9.1|MIT +**[ipaddr.js](#d8a1c47a5dc5581d8d9e84268efa779a5140196540c2a4425e8317c1eeb93fb7)**|2.1.0|MIT +**[ipv6-normalize](#7a4346dbf206011966449898fcd37178a9be89acf6dff120b676d4c4d0dec203)**|1.0.1|MIT +**[is-arguments](#4af472b071742337deb4d56d6c4a507fd58990e8922613def80a84ba532a2b6d)**|1.1.1|MIT +**[is-array-buffer](#442760df883a3fb368f6c5666080a8c4e07d95f5f69fc92654bed5bd4be7f814)**|3.0.4|MIT +**[is-bigint](#76328e128016cee0810bc1fd650e8f63f1ad3a062d2e0c555515448ffd3f13cd)**|1.0.2|MIT +**[is-boolean-object](#db76784fdb608b8a1760612e770f909cb121ee1d4f6067a33c25443f06b9c998)**|1.1.1|MIT +**[is-callable](#8cf8f70dfb44d8f426d81a03a0f5a1e4be28081368aa69089c22ac2571dcac14)**|1.2.7|MIT +**[is-date-object](#4e4be4dc1852d5d512c7afa3107dcff477e27efa4ac81bda7a72422f55fc5841)**|1.0.5|MIT +**[is-docker](#893885e21608c60de02539fa3bd5a98f7068127aa5fab86a215bfec41a3119a4)**|2.2.1|MIT +**[is-docker](#b21de9a8d47c7c165b912be5c7a36eae3939076531e05733aa2ac7f1099dc46d)**|3.0.0|MIT +**[is-electron-renderer](#5f979579f0e64b4ba63a2cf1d32f11e274d285511e84ee596bddc57424d5299c)**|2.0.1|MIT +**[is-inside-container](#3f45825f7cda0ec2231b94ee915a0dc76a31eb0f97746c44510d9b05d80c1a97)**|1.0.0|MIT +**[is-map](#a9d75aec4f0b5614e4286c133a5fb6390141bd79d8b5bff8f3f7815869d04f8e)**|2.0.3|MIT +**[is-number-object](#98d946a111ed40a337dcf7f4aa4824b69cfe20d4b3b230710bcd5f9c803c9348)**|1.0.5|MIT +**[is-plain-obj](#6aa44f19e7afb6047589b7ad4e4ee3d44264e44f4a4ac5057efb8e3000820525)**|1.1.0|MIT +**[is-regex](#b98aa247d6a1b7f75692f6acb485fc213de3ca0cd8ecdd6bab7f96393e255d07)**|1.1.4|MIT +**[is-set](#af0e69272cbdbff01e5f873f16f9aa12c5c8fcbc228972be63e0b1ce16bd180a)**|2.0.3|MIT +**[is-shared-array-buffer](#6828bd9e33499632e06a110b3a3ecc06df254c4a28caf86e436a9939af9b3ed7)**|1.0.3|MIT +**[is-stream](#6a348f7c7e9ad013ef74124a87896ed11f8bafac3344e58377dcfc0944187cf6)**|2.0.0|MIT +**[is-stream](#309bd1940a381ff538d0c335564cc3e436c79307c991516433092d84e35acfc7)**|3.0.0|MIT +**[is-string](#f00a8e1cf00a8951016596ae951454a7d9944dc72a4f1b1127e7ec5879db5654)**|1.0.7|MIT +**[is-symbol](#3550f187e60fe8b94de5ebefd70dca43157d4c7a8ac847bb8d5ddfb1c59c1723)**|1.0.4|MIT +**[is-utf8](#df5522c387e62effc17916c612bf340d6543c4bccca99fed4c1c1fae77ed4900)**|0.2.1|MIT +**[is-weakmap](#ed08152c59d2b4e2e55e4c75373f7cd102901b6de08e20dba61722d1bb7a5086)**|2.0.2|MIT +**[is-weakset](#5538f4c86728250aa4d278637d76d6fff7d7a2cf1ff7433f842cc4045c95ec6e)**|2.0.3|MIT +**[is-wsl](#133bdb52dad1bbd87bcda9564e6df13fe7c51ae7d67575fea63cf0a2072ac884)**|2.2.0|MIT +**[isarray](#55a8a963f7aba0af49a654ea316f8dc19b717b632b88145881fda3988256ef6d)**|2.0.5|MIT +**[isexe](#2f62e711a6921973ef3f9650fd3e06585fd3842e34078c8fa959481738600405)**|2.0.0|ISC +**[javascript-stringify](#e0d27d21a288d227e51243715c044b3933d9fc0fb025dc16ec79c78af35f85a7)**|2.1.0|MIT +**[jose](#7c6ba2890a65df8d382e1b102b311651675d0ed5fd5443e911c520b18e93f62f)**|4.15.5|MIT +**[js-tokens](#f4371f095c6f087cf41433031f8c612e21a4258b18cb4e847ffae73905e146d4)**|4.0.0|MIT +**[js-yaml](#c82a34a38ab0debe302cf958caa7a51b455f5fb8a32a3ce6b9b4cab3f500c60a)**|3.14.1|MIT +**[js-yaml](#b7325d630b0ab313450fcd188788f6ee374aadd75df4969a9e3c48507ef88bdf)**|4.1.0|MIT +**[jsbn](#936d5c89291f7b505f688e45ff8261d3f225f96e0e981fd0366a9efda9e0e7f2)**|1.1.0|MIT +**[jsesc](#253e8a44fc188759c5ce35330e4f20aacf1d0253d7e8d7dffd4a1f884a10ce1e)**|2.5.2|MIT +**[json5](#16281c6ea25e0cec4bc0bb8c01d1759d66992776381bf9c5af6959bec47d2f77)**|2.2.3|MIT +**[jsondiffpatch](#2cc3b990f6692cd23f883319a727b42a76a3a9d6675d1ebd8a05241eb7edc4ac)**|0.5.0|MIT +**[jsonfile](#1504ddbe5031429f6d90bb02373b4629ff5da9ef4e869d5015ff42f685817e74)**|6.1.0|MIT +**[kerberos](#e9b8ef28e3d246d5071f34b07b67580523cda7bd0d7d74dc2e422d79d30c238d)**|2.1.1|Apache-2.0 +**[key-tree-store](#63e3bcb8e06ac6b9f7c153030ce57fad6e985a0cc7f0109d3fc6073192a932f8)**|1.3.0|MIT +**[keytar](#752f1130bbd6c5dc941bdb20fb39579c1d350252a112c58f2558b7c5f536d6f7)**|7.9.0|MIT +**[leaflet-defaulticon-compatibility](#7fba582082c899d764d8e4214d2f6f06cd043b2dce51598ec24ce299f5640a6e)**|0.1.1|BSD-2-Clause +**[leaflet-draw](#d3f67d0a666ece9171dffece3f3db67430e7055b1e8b857d806555d65b720d0e)**|1.0.4|MIT +**[leaflet](#0c77955158defdd249f5abf69232ca350038122d4fc768826d9d79ce402761f4)**|1.5.1|BSD-2-Clause +**[local-links](#9d5ba7b7e3257ecb142eb0aaf6f846e1f98c95256ae9a5836a5246db26eccbee)**|1.4.1|MIT +**[lodash-es](#a591ea211f9167d2f80166d42532d3c01f7843fafac380deb0bcf693cdf6fa1d)**|4.17.21|MIT +**[lodash._arrayeach](#e705b211da95702daddcf8ca44be1e168f2c98cc4298c3c0039d7acba4b651d5)**|3.0.0|MIT +**[lodash._arraymap](#afacdd77340d24ba7aeefb1cb7a952166c5d601c0a7fe44483832dff840688d0)**|3.0.0|MIT +**[lodash._baseassign](#aacac99d5201811cd8fbae43458c75e440fcaee435b10ff4ebae397ca34fc335)**|3.2.0|MIT +**[lodash._basecallback](#560dff0d15a98e42aa42379205f5a3e8e4f9a2234c4bf1e7aae85ea6369d5eb1)**|3.3.1|MIT +**[lodash._basecopy](#b7789a88750f78ca9242497a1c4acdb472b17b3a207bb1088c1865d5fc059d45)**|3.0.1|MIT +**[lodash._basedifference](#fba9051032cf703707176db1852b2c612c58e0fe0aa275233262512fe1cc3c1e)**|3.0.3|MIT +**[lodash._baseeach](#9a24b68e28142b48a1f27163a281677591406ba38b1aa99b8fea01c1cbd2c2a4)**|3.0.4|MIT +**[lodash._basefind](#c58e88997b2cda815fe8eafeb62113412915090abb1734f1ab37c060bd186d78)**|3.0.0|MIT +**[lodash._basefindindex](#070aeaeefdc0615eb01ab55ee2611f008b4973f77542680c09d58206324d7244)**|3.6.0|MIT +**[lodash._baseflatten](#ef8e3266ef37ba1e96b4494119bf1d6e167b5fbae3a3a3f24f6b2adfd813a18f)**|3.1.4|MIT +**[lodash._basefor](#9452e64da946cc633bba85112f9d585983d4d34ddb922312c23509f31b9cf54a)**|3.0.3|MIT +**[lodash._baseget](#c3cf4bbadde17410a34e84962cf52620d922e4c477c0c67407e3905a668d5b3f)**|3.7.2|MIT +**[lodash._baseindexof](#984f3f17e0475ba7b138ad2bcd02121d1069d6b685100583bb4bc9d6127a29a1)**|3.1.0|MIT +**[lodash._baseisequal](#5722da50c112fc1c4eb299375a140f952d867bf75c7433a0fb78b121b90a6fa0)**|3.0.7|MIT +**[lodash._baseslice](#f3a23746e44f620faa3af8d34a8ba0423726d0cd24176300f50a3c2798774e21)**|3.0.3|MIT +**[lodash._baseuniq](#fa4ce8551ed1dc65f15b9dafa6fb0238a4feb17f2caf8ed613748869842943b4)**|3.0.3|MIT +**[lodash._basevalues](#a6386191237cb1d70784b24e2847098f2876903ede40b488e306ba726b674f47)**|3.0.0|MIT +**[lodash._bindcallback](#759845849a0d94685fdf1a87cde520e49632ca378662469cdfe0c2be33cb3057)**|3.0.1|MIT +**[lodash._cacheindexof](#e2920f2aa3d3ef638e09c3952dd2cac1a42dca3929acc0bd76c3fc69f7cacfb7)**|3.0.2|MIT +**[lodash._createassigner](#c8f058ba3519bcdc9abd63b121fe2fab26acab4f4bcf2658efec676a3fdbaaa0)**|3.1.1|MIT +**[lodash._createcache](#072c756c562325194b5d955a7929da38e505fadd86c92a1a7d19ed9d251a58ef)**|3.1.2|MIT +**[lodash._createwrapper](#c3d6fd2a3e8a1412538ac86360c7608876b0841ea7f499ab96edc3e82ed120b2)**|3.2.0|MIT +**[lodash._getnative](#2a9507ae12db57c5319c675c4dbe5e100525a22f40b95339f9fc2d5f340ce09c)**|3.9.1|MIT +**[lodash._invokepath](#de9648080f5467f2559c407ca80b67fbd95a3767f8735507a7ff9802115379d8)**|3.7.2|MIT +**[lodash._isiterateecall](#2a87d94ff3c38e8d5da4ead575fec274d7655bc29e5645ff44b867a5b8926b4e)**|3.0.9|MIT +**[lodash._pickbyarray](#ce351b398064b4b254cd6189e4d91e14af322cb837142813fdf6d7f35e3a7e7a)**|3.0.2|MIT +**[lodash._pickbycallback](#5a4ef737299f75e14a058f857cdd3593cff7385db2c2d750516bd8c5fd1dac74)**|3.0.0|MIT +**[lodash._replaceholders](#c79e1ac85ddff7c5fe2d1170dc92a28f55b4a1ce6da74091d8775ed2c172c3a2)**|3.0.0|MIT +**[lodash._root](#b4c5b75f0ca57172edd2801a0107b22b1cc5b4bc258c4bfbe5d1b1fc052bb191)**|3.0.1|MIT +**[lodash._topath](#41ef14e011630cd3bea80b43c1d824c5bdada826f2bddaddda350eca30a93f4a)**|3.8.1|MIT +**[lodash.assign](#279f6350b38f924a812ff5d74a5f9c9023f5923a7c70dcb75bdb1670ad35ab50)**|3.2.0|MIT +**[lodash.before](#2fef595ae4ab5ca92be6f59e86e4d7f2b4ad0c224c22d828dfd0bae48af64645)**|3.0.3|MIT +**[lodash.bind](#3acab10f30bde74cc48a35928697ce1670df78f45fdca78b8bcb8c047a698b0e)**|3.1.0|MIT +**[lodash.difference](#43791df64f8fe405fc866c836325719f4060084c461c21882bef3b606d98ebcd)**|3.2.2|MIT +**[lodash.escape](#b2c0e0aeb488595574952c98b5f54e03f435b75e913a2bd5e5355645a576f866)**|3.2.0|MIT +**[lodash.find](#83ef2b0f6879ce20ff4050bf0aba209ccab6beceed27ea68be7dc15e088aed7c)**|3.2.1|MIT +**[lodash.flatten](#6adc3792aefcf12132c36a2d446686218a80ce413c20b2533d551509cc79c542)**|3.0.2|MIT +**[lodash.foreach](#27063675a97582e63d10521797ca5436c38ec0a71341733744333edec40fe4e1)**|3.0.3|MIT +**[lodash.forown](#b50edd80fd196dfaace7b3aa2a90290a00fed380636e15429b37a7d2f8e3776a)**|3.0.2|MIT +**[lodash.get](#632dd5085bea3b2734eae88903cfc1e91fb5b4ddb9213e10ffeadf7121ce5ea2)**|3.7.0|MIT +**[lodash.has](#d0e17f0b2e78b1a2618102c4f3b743c662a0f7cb0d3ef613b22a5595f46c3667)**|3.2.1|MIT +**[lodash.includes](#3adf597b6163c3ba3343235b44071cb955635e582da311d5b57ac35f2692f9b4)**|3.1.3|MIT +**[lodash.invoke](#43d25e539b3db0cb448dfaeac571c6f35c805ed7336f54c63392ccdb88c7ec91)**|3.2.3|MIT +**[lodash.isarguments](#fc005d458a81bf6d8d32c52123952311bdd5e02c5564720455bd4d9480b20da7)**|3.1.0|MIT +**[lodash.isarray](#0ec1c02a99d5b713fe4a1e0682e2917aedfbf6f16057f1dad1c7871c6f736575)**|3.0.4|MIT +**[lodash.isdate](#54396c41d452d46f8d06091b9ab83f35cbafd80f53b8a3337c4567d1009556f4)**|3.0.3|MIT +**[lodash.isempty](#f1f61f99f9012392c9bc1dd4b01eccd42224ff516c50b507c0041845df62bcbe)**|3.0.4|MIT +**[lodash.isequal](#3c009e1972544c1bf8dba82eb0bffe6230cf8760bd49d8ee6e120d20b4296b2c)**|3.0.4|MIT +**[lodash.isfunction](#037b8981ee3ca5d6ef852835683db8dfb102f43763b561aa365c7567a766ff60)**|3.0.9|MIT +**[lodash.isobject](#247f42305767fcd88c563da8a196a61fcaecdd7d4ddab3d72d1a9eb05bbf5405)**|3.0.2|MIT +**[lodash.isstring](#10489ff0ae921489d537bc6aecec98d63d40c04e55ced77d1f68331a7f2dcd56)**|3.0.1|MIT +**[lodash.istypedarray](#1968cf985099120c230a51c77054d5e662feeea4825ca0218c1c728f80b5839a)**|3.0.6|MIT +**[lodash.keys](#c588afca24b161c04c66b7fe976458f32d1871dbdc38343d2249c15af51e6df0)**|3.1.2|MIT +**[lodash.keysin](#eb438504bc7bde2a75d470d2723add90d5a7e2948c7a9320eebed39d20e9e133)**|3.0.8|MIT +**[lodash.last](#541caa1523f10bb2a8b2f52174d1de4ab2d64fb7a02719e69eb7d4e1e10b1065)**|3.0.0|MIT +**[lodash.merge](#996e40d63a94f1b8693d7c81e0cdfb874c6432d6bbd675976fc1b6b13652c8db)**|4.6.2|MIT +**[lodash.omit](#babde7076e3dbe66c1cd8dd0af071af1fcd4b49d2c7dbf8a306cc09b860c9ad9)**|3.1.0|MIT +**[lodash.once](#e794f12866dca62acdae15f1b5b4495ad6dee09c7150f71a96044adc2ced1286)**|3.0.1|MIT +**[lodash.pairs](#db90d2eca20d73caab322dc7ac851ecbc50db59e5e9e40d5c78d0f840cf03329)**|3.0.1|MIT +**[lodash.pick](#d54a2e0c0e3d3024a4b364b8917d59c1170262088fb3bfc4ab4a71f53ecbb3ae)**|3.1.0|MIT +**[lodash.restparam](#212ef51d65362b73a8d548dcc6dda631ef012bdd6d7d724281ab9bb0a1dbcec5)**|3.6.1|MIT +**[lodash.result](#7a09af41b88107096ee9071a254bacf1e324ecab5c9fb56d81dcda873144de35)**|3.1.2|MIT +**[lodash.union](#9ee2120113e7c91fbcbee571e2fae44f1e7f87afb331cca6eb46a3d318d6169e)**|3.1.0|MIT +**[lodash.uniqueid](#f4693b5b22365d675cec07ce8ca01fc235054f442963585ee0097efdae26995b)**|3.2.0|MIT +**[lodash](#adaac4144887ebc2c1b682380ff385210f681fc58b4bc1ef3986148cf8dcd28a)**|4.17.21|MIT +**[lru-cache](#8d10f71b6ab389fdca1b55e9aa96d77790f776843bd42ca91804a40a0d543f19)**|11.0.1|ISC +**[lru-cache](#fe7f0a2f2cf4c92f13c3a2a63f14f80f20f6919979306dc054e4f947c1234651)**|5.1.1|ISC +**[lru-cache](#938513411a6603ce29334db15563fb94b7d52f839d32b9bd78c18f5d3f98aa5a)**|6.0.0|ISC +**[lz-string](#a04d0916e49897705fe7a9d865134920984a19a03f8de501d4e46c6698a6b421)**|1.5.0|MIT +**[marky](#c5789082b93eeeb451a00e87792a533dd2589421119d3560a06c5f96b39414ea)**|1.2.2|Apache-2.0 +**[matches-selector](#ed68b9f3ecca4297cbb806474484688a85517361d99a33773e3152603a6771e6)**|0.0.1|MIT +**[matches-selector](#cec79a3cd38ecccf3066baf0e39cf87735fffea201040dd2799e4c6b5221d981)**|1.2.0|MIT +**[media-typer](#fa74be298a38f8f9351484e9124aba4a4086182a4cba24449f195219a2843784)**|0.3.0|MIT +**[memoize-one](#4d802a078eb32373fe5d8119384598a703537750aeeb5990aa28659939260789)**|5.2.1|MIT +**[memory-pager](#7fbdeab18f48c3527cae276a51cd879e42d15337aba1acb44fedcf748137608b)**|1.5.0|MIT +**[merge-descriptors](#0dc27d83f406152460ccee54a872599fa57bf48baa989aaa2165fc98eafd08da)**|1.0.3|MIT +**[merge-stream](#df06bda70cbfe392ea02ab42ab188d21ab5c15e3c1a172e6f2ce4cd9d304c01f)**|2.0.0|MIT +**[methods](#d2f0af2174fefc260353011b7a5dd7845576b8eb5f16c423378467dfd5b10f5f)**|1.1.2|MIT +**[mime-db](#7cfa78c6359b5b06cbb7cde9659b052fb92a58e290411458d496ea39857bc15b)**|1.52.0|MIT +**[mime-types](#a4d3481c7c7fa681b0c2a946f94b390ac9f96f0412b1ec63b79eba32dab82500)**|2.1.35|MIT +**[mime](#9b48af8a381b3c30ce0ed825fdb250ac917cf825ec677471e72657f421bece3a)**|1.6.0|MIT +**[mimic-fn](#5cdd2e226cc15411692ae7c6c44c95adde675477de818b755be01f0e7994f8d9)**|2.1.0|MIT +**[mimic-fn](#40db999726ca69c48458bec0492bb7351025a3719caeceb9ade4a08098817a0c)**|4.0.0|MIT +**[mimic-response](#0c868fd85c36cbce69ede58ff4693b89140b6a529a6794843f4985674d63642e)**|2.1.0|MIT +**[minimist](#837db6b00930af97755b724568aecf8b139361dc2148c7db77673ba6ae44a44d)**|1.2.6|MIT +**[mkdirp-classic](#e79cc875152b50c2eb57a97163d99f0155bf4e4af7ba4a7e01c12a17a4a3305c)**|0.5.3|MIT +**[modify-filename](#7153be07939379ccf0072006c519fba2bdf5ab79ca8bb59bc5273f87a7bacbf6)**|1.1.0|MIT +**[moment](#94975b5423311209f3beed9c2c6bb6157f622312a3f8563d507b52e804bf6285)**|2.29.4|MIT +**[mongodb-build-info](#f0a98c22ae0766702726f79e058ac6dc4e4bead8557b67b816f40bd13fb54170)**|1.7.2|Apache-2.0 +**[mongodb-client-encryption](#01c104ff07b0715f77217b6b7adfc9a0056f35ffd976182ffbf409f69b3a0df3)**|6.1.0|Apache-2.0 +**[mongodb-cloud-info](#a784f3b401cf51746f49964e044db933529b3e3791e557702715730f5a3f1e46)**|2.1.2|Apache-2.0 +**[mongodb-connection-string-url](#2e1146256a89ebd24e3398881e03807fe363d58444e6b7952ea50bd6108707bc)**|3.0.1|Apache-2.0 +**[mongodb-log-writer](#c4945018f8490fc8e56e1414e262fcf1b802800e05cd15f2bd6b7a9d0b94af85)**|1.4.2|Apache-2.0 +**[mongodb-ns](#68260f4d06e4d16a28d4139e391264d220e891ac6f0fb844b925a0cc37792aff)**|2.4.2|MIT +**[mongodb-query-parser](#871cbd55e42c522f9f44ee40a9a19b3edde2f543528582d5ac5f4bc60adeb336)**|4.2.3|Apache-2.0 +**[mongodb-redact](#f0766ec5011e3865ffb152537e7a24c89591d1ea5ee46777ca8f3e857a3e57d6)**|1.1.3|Apache-2.0 +**[mongodb-schema](#652dcef4a8a39849996a5f858fe48048e806fda4ce1aa0f757ada56bef011145)**|12.2.0|Apache-2.0 +**[mongodb](#6fec8e7c940738c785acba4b627a32d91425768e886601b770ad3b664670653e)**|6.8.0|Apache-2.0 +**[ms](#484b814b85d5028e34246147c8fc901d33570202bd7cdc3703c0ed1078eba0aa)**|2.0.0|MIT +**[ms](#0a987b2f79ff37005e452a5afa7dacd3042061a7077054d2ba9cabacd88506d2)**|2.1.2|MIT +**[ms](#2083576c5af8054927640b4788059806d07e250a26066c9ccb2d928394fb9226)**|2.1.3|MIT +**[napi-build-utils](#26912b5ff7632f262d64273f99cd1a869376c5c378960e24501585e35b31054a)**|1.0.2|MIT +**[negotiator](#e3856213d8f0a7d28cd4166e53ec7e2c019cb7becf4a8535097bac28d21e8579)**|0.6.3|MIT +**[netmask](#2bd5b8ff7fab9adace6c38d3fd32e7328484939fdd07836635b0155d0afc35b2)**|2.0.2|MIT +**[node-abi](#e95a83ce4ffe7621819fbbceed23c54f12e0e1066aad9e5b3093bbdc7c958e0b)**|3.68.0|MIT +**[node-addon-api](#af9f7588524ca4e68f4efe7b24aea46d9c8004263b1d7cf3b558f86d87a163e8)**|4.3.0|MIT +**[node-domexception](#3c25065fd2bc1b6b56856e30ac5b8f34ddae33ca87b225854f8d855b0ccabfbe)**|1.0.0|MIT +**[node-fetch](#364527ef1b51cc6ac34872b931049c9e25b5014f9b40e3898c84e1a830e21720)**|2.6.7|MIT +**[node-fetch](#23d7d5a419e9a25e6384dee4aa24f7162544418f0cdc2d92e94e2cf924507b8c)**|2.7.0|MIT +**[node-fetch](#22edb8ba3fe3457e8c1a02e497e6a8cb54e89775224f0c7680ea43772b5c1638)**|3.3.2|MIT +**[npm-run-path](#b21248abecb88119fcf2885e5471cd9235f40d356cba189a348def4b8a6046bd)**|4.0.1|MIT +**[npm-run-path](#17c35569bae8ecfc9314730bb16dde145a190d68c6fe6a29c78873c9c5520ed1)**|5.3.0|MIT +**[numeral](#b3c90be596160f7dccbd1ff771ddbffb9a1b19d0bb9456553d8822903386573e)**|1.5.6|MIT +**[numeral](#d274a180ad09fc1ae9325f01bf5dc1296caf553888d952fab7ebf524dfdc56a1)**|2.0.6|MIT +**[object-assign](#598e372231bb5bef26b7d61105282eb20e14ade430143052d064d2d406769b95)**|4.1.1|MIT +**[object-hash](#848d5d28b20a6a7f2e701e9b2b7e65b5518313269696dacf4ac69fa8bc5b571a)**|2.2.0|MIT +**[object-inspect](#b9d7050d521cb65fdc84f2212e39302b36e9bb0f7191e0be89ac3e4ea488b1fb)**|1.13.1|MIT +**[object-is](#d597163d660664be4b28b1f40171738a17ec18b028d62ee1cf2e264e30924d84)**|1.1.5|MIT +**[object-keys](#e9aac5890f5f1c6f8d56c08ce91012ba530b586511a89d1fa99ae2d7c39d8b2e)**|1.1.1|MIT +**[object.assign](#498d41061b8e766f5d53d287d41307891ca86b3d63eee61a1c4131f5dc5f185c)**|4.1.5|MIT +**[oidc-token-hash](#3beaf628821d1b6d7ec7b67b3c9ceea1d37727ea52253383f31d3e73141cf29f)**|5.0.3|MIT +**[on-finished](#d3c391e10faad1d82190a06f5be315d94a9194cff75aa389940432ef15cf45de)**|2.4.1|MIT +**[once](#d0d1303998dfae04e4f898f477380aac35568f4d6679f4ea913c2441cf9ebb0b)**|1.4.0|ISC +**[onetime](#5a35b0b7c7570756939e95a639f311d4676b87c61cd74cd94d6609334c2ee1a2)**|5.1.2|MIT +**[onetime](#8d8b66854ab397ef1815b6af9e17698a8e5f83b256a1202b74104ee5609c5d99)**|6.0.0|MIT +**[open](#6c66626cf6e18f59c76bef1f4ed0c2b541e68592d65325d4fb83a659e3078981)**|9.1.0|MIT +**[openid-client](#03ada662ee390db4436dc7bd38857b43e2a0407275d27e422ff915ec7738b035)**|5.6.5|MIT +**[os-dns-native](#ed8fb030877b8f0494551fd7f55288d885b2ddcece35dd7134434ad5c4c704de)**|1.2.1|MIT +**[pac-proxy-agent](#0c860d23706396c87370b49399bd004f0a3552427d65a829b16274a966c51304)**|7.0.2|MIT +**[pac-resolver](#7935fe0839f6e2b7c51abcc08705a6096eff5670dc2bdc3819fd096b8d114d8b)**|7.0.1|MIT +**[papaparse](#a94a34c1e6cf2f678ffd64381c6d54f9ad5f6b3c65281a0b077dd5b92f028684)**|5.3.2|MIT +**[parseurl](#c3fdd1b6fb725cb30e8fed82cf929953b46129d347d8404a4a51b633389fbae8)**|1.3.3|MIT +**[path-exists](#3ae48f237e1a4424a3b1b60cfc95f35ca29141cd956f8bda85e763d7969e12c7)**|4.0.0|MIT +**[path-key](#e1a2a032096ace66b422351e00b11b0229e42e4b49c2146f439f8fe442218451)**|3.1.1|MIT +**[path-key](#8e0734b8abb76579df2174822606e692914e985fc58363a78e6ad4b2a4a5831f)**|4.0.0|MIT +**[path-to-regexp](#96d230365f414cce8d80ceb9d99d855685dfa922f931b49ea01952a1efe64266)**|0.1.10|MIT +**[picocolors](#f964752f1f8cfd947506fd51ce1c148469ecf3b6f531d826511b720670e556f1)**|1.1.0|ISC +**[polished](#a7a5d1244e48a082dbc54de31b5309caf950b12aa6bd9fefbba39e362e705f06)**|4.2.2|MIT +**[possible-typed-array-names](#5ba4283f5512abd5d57e79c0a75acb3818d98d169df979afb01ad6867cefd312)**|1.0.0|MIT +**[prebuild-install](#93d13a9b3a51a6a802fcd35aa031d3ae7369aa6fd47d3a89f28a6d31ea3c9dc5)**|7.1.2|MIT +**[prettier](#2e1e2077936be4bb5f075fd4d279f9ece641322ccd12a8116edb3f99f08f7411)**|2.7.1|MIT +**[pretty-format](#0c53580441217a6c2b9c885eb1ec35adde420c312ccf9f408c856dc3845cce8b)**|27.5.1|MIT +**[prop-types](#e4dd0bb5b6f98fbf52f0ad7062b8514aadc56a47a692bf6d8aab369786b6039f)**|15.8.1|MIT +**[proxy-addr](#7b128e3d41d39ecb1a405a490a53ae86f70ef45f01079333ed3ca49939f5fba8)**|2.0.7|MIT +**[pump](#147f1bd3a6380306e696f0574feda0b1490121a1d12e4500e91ffb6e888ffa3a)**|3.0.0|MIT +**[punycode](#3fe331f5536b72438f24d644ea9804b5e462f791a4c72a6d94f37193af1086aa)**|2.3.1|MIT +**[pupa](#b05b7cc4c1bc01acd063dc811b9b1b0a1a4b3e0f17be77deaeaabade7dfeb095)**|2.1.1|MIT +**[qs](#2240c454f0418501921d6b094c1f6477603b0c893c4d7a8ed2bdfcab9e75c069)**|6.13.0|BSD-3-Clause +**[range-parser](#e973789240fef3c00f359e6acc8570dd769b70ee8b29fdcb679897fa2d696bff)**|1.2.1|MIT +**[raw-body](#fc0f8cf1771db07ef15ce7dafcac6db8e351607bb82caf0e5838f1769a796266)**|2.5.2|MIT +**[rc](#0dd705bd5862b4c60ed88e6b4a6f5ece23c627c97f6928233d32aefdd463c3f7)**|1.2.8|(BSD-2-Clause OR MIT OR Apache-2.0) +**[re-resizable](#ba463da4fb82093fffa407b9083835a23c9d44c84cd988f2536312f7e78f863d)**|6.9.0|MIT +**[react-dom](#6f313dd207f71f3d56121132c87ef27cba1beab9e5e349ac81c740cee6fd0774)**|17.0.2|MIT +**[react-hotkeys-hook](#6ce07fe9653ad69a76354e2d71137c70ab9a838377fe5a8f8e45c559cfbf41cc)**|4.3.7|MIT +**[react-intersection-observer](#84f998bdb33a5f9330d81ef063f7ad0897f1b004661fbf131725697b847a5b6a)**|8.34.0|MIT +**[react-is](#7183835e2bcaca6754fe10854fc3b65407d2cb9aa3b68b1c06ccaafb7b9be28a)**|16.13.1|MIT +**[react-is](#5ec174b50bba38f48ee8da3d8a5b9463a9e77c3f01d74a132ecc30a2be099c4b)**|17.0.2|MIT +**[react-is](#5746232ad830b635a6581ee7d3b826ee932c6877087c98cb46b94101eb5ce40b)**|18.2.0|MIT +**[react-keyed-flatten-children](#9c7ffa4be6351eaf0a19b808fc4048eb28455824378f089da7a566cdeb0bdd84)**|1.3.0|MIT +**[react-leaflet-draw](#d80b4b765d856cdefe411a073d3b3dde06100128005f1381b4d26d6cf53134c7)**|0.19.0|ISC +**[react-leaflet](#a5fc1f0504a89a932a12c5a183b75a748207329f20af6078f926e182d55aee8d)**|2.4.0|MIT +**[react-redux](#156f5c2e2cbbda376faae24e78cc75de697170101ff7e9d2955c0f891cffd6a8)**|8.1.3|MIT +**[react-transition-group](#f8a526737bf3e6cc7928ce77b3fa8e6a880da418fd9363a0dae1122922f92b72)**|4.4.5|BSD-3-Clause +**[react-virtual](#b9245d8b8a0d57eba1876cc38950eccd82b4db023c50026f4a70a6c66e16cb5c)**|2.10.4|MIT +**[react-virtualized-auto-sizer](#6c2551e5d023f4aa01efbb54d394f7cebd0627e78ca3b24a00a4364e3e7a3129)**|1.0.24|MIT +**[react-window](#1241166cdcf24220683cbe7d1460897436f3982e7795fc504323ba66f06e53f9)**|1.8.10|MIT +**[react](#2f31f78715f56093f4bb569e2e2ea931c518db6f4ee690482a0a2a1cd4d18b4c)**|17.0.2|MIT +**[readable-stream](#75bd2243ec5ecc92b8d7e9a2e9a1aa142f20f6a5aad6dc0d923cdab997766174)**|3.6.0|MIT +**[redux-thunk](#7eabcce4f7274e0c876829cb939804a9704770a9a60419d514c11e3e97c01623)**|2.4.2|MIT +**[redux](#98b5d53f97fab4eea98fb5f423cad33400855b69ac662f1fdf55f0fb9e33f2ab)**|4.2.1|MIT +**[reflux-core](#7af6ea33b0ed18717d672b44743ae53dcef843ae464690bb9e10eb1df048e9ea)**|0.3.0|BSD-3-Clause +**[reflux](#f892193924d403a4dd1a73a5861913838f1a9d704055d9d098eb0d40f752e053)**|0.4.1|BSD-3-Clause +**[regexp.prototype.flags](#51cb6c20041a1fef833bb3f46483fcbd99a186e3767ec2ad32f7b3db74d296f2)**|1.5.2|MIT +**[reservoir](#84f8998f94ad5bd85b50458378edf3815fff553cdcabf8ced3db418f05e85ff6)**|0.1.2|MIT +**[resolve-mongodb-srv](#2ae8b0c9dbe8e8c900bfaf5567bcf2af917e62fb0a24121b4d667dffbeaffa99)**|1.1.5|Apache-2.0 +**[run-applescript](#f4d3cc18b69c2dec9e4f1d19a1cb794c8fa2e548e530f4033dc6b0caf803bebc)**|5.0.0|MIT +**[safe-buffer](#952cf236ee56e7de5ea7e772caf3e256866f9dbdffc492539c48cd8c15ac9674)**|5.2.1|MIT +**[safer-buffer](#2fb14d3728e4ebf313be4634b146bd90cd3ad3559157baec03b64eec0878a0ba)**|2.1.2|MIT +**[scheduler](#950b09ca6f4766ded0bdde81e2697b5e184ed63925d74a8f512c978cab5bda6f)**|0.20.2|MIT +**[select](#12d30053a00882385c42a50004536696d477e8e694b047d6d39513947e5a39e9)**|1.1.2|MIT +**[semver](#8b8f657069cf84b7ca932ab17eb24a0a55a8053ccd2a36c03185dadab64db3f8)**|6.3.1|ISC +**[semver](#2c8b8c47dd7d24873eda4559b25851062c21d7584a396735b363f9bab626dd7b)**|7.6.3|ISC +**[send](#412cd4c4a8e6aaa433d5e67852c05a1e307fd4eb9dc362bdc30fa099313c24cb)**|0.19.0|MIT +**[serve-static](#9a2d04a479ef9c6e990f1fb614478dea4368c040af707296400ff7f9bb68d30b)**|1.16.2|MIT +**[set-function-length](#88ee3e1c8e8c22ac3653a290c1cdc68787d064f17a743020a070b31290bb4eb9)**|1.2.2|MIT +**[set-function-name](#f9d4c9272c71403774a64f46fc69cefd1039845f2ee1d252fb62cbd97f9e7fb4)**|2.0.2|MIT +**[setprototypeof](#7787a1d3bc2f39b65d75407d5d8d02d8ddb70f1cdb74897f15115e995fb64a56)**|1.2.0|ISC +**[shebang-command](#a9cba97b71b818fb0a4978f8b14875ae118f292a19ffa97c8b2d848f9a897d89)**|2.0.0|MIT +**[shebang-regex](#849fb37298f1c4dcdeb6065edc4242918c7533bcfda5c67747e6ce4620c587bb)**|3.0.0|MIT +**[side-channel](#b87368b55d9ba1ff553ed48946c9eb64686bc10b48bc0f5859c669427508a6b5)**|1.0.6|MIT +**[signal-exit](#5ad551060d44370794e770309e198719e94f939e46a3ea537b776c9c4fdad9e4)**|3.0.7|ISC +**[signal-exit](#09ce5ebc7ff1552bf0ed979e2479321c6a9a4b7a06d90ece7a70fa360007eff4)**|4.1.0|ISC +**[simple-concat](#7e08f893385d0a6d7059029da3885e8346ad01eb58d6e4561612d2fb653c15ec)**|1.0.1|MIT +**[simple-get](#c2c12990b6319daff653bdf953cadfa368185f0edc671124fb1028f6979df829)**|4.0.1|MIT +**[smart-buffer](#bc8fbee089eb9cddf673c4c9dbc15edd13839063c27e2814009b6a0448065875)**|4.2.0|MIT +**[socks-proxy-agent](#e192db394689e9e76e333aebe6a6958554ba85f63c4b2959bd6732f76ce1ed0d)**|8.0.4|MIT +**[socks](#0248dada9537f6f43ee753036902a8c3d06323744469309fdc207cd0b14f70e9)**|2.8.3|MIT +**[sort-keys-length](#af13db706339ff49fba434ce0fbda036b99f3dc30e66a530b64374afd5a1eec1)**|1.0.1|MIT +**[sort-keys](#714faeb378f5373d2aa5f80825d02c9f7ab2cacb699db02c84e675d193a6bfa8)**|1.1.2|MIT +**[source-code-pro](#0496fbae8c99eac4b7354b7eb0a394806e547de30fd2acbdf14f2ac77079e643)**|2.38.0|OFL-1.1 +**[source-map](#55fb2b4a8e114a26cce0c971365f26175ae0d834849c5edebbdb5adafaa08787)**|0.6.1|BSD-3-Clause +**[sparse-bitfield](#0cbcf2cac3ff859d288ae5ffc2c793bbd2430b120f5930bd09b6dba7259086d7)**|3.0.3|MIT +**[sprintf-js](#d8b6ff1ba6436283de681a756ad453428005e61986c5113a3a8088ced2b36eb7)**|1.1.3|BSD-3-Clause +**[ssh2](#caa88a7f6fedc946b33fe4cdcd84104598cca8b841b593d1ffb031578cd3d8c9)**|1.15.0|MIT +**[statuses](#a347e5a1994ef74647a2af80f58030a572f71173d5c1dfc0ce6eb55f4005b17d)**|2.0.1|MIT +**[stop-iteration-iterator](#b4a114e720966d8d69055a584424fa2465b603774072e8b7e35619282ff67afb)**|1.0.0|MIT +**[stream-chain](#dbe4594ad347bd2850f84bc41ea7ed1f0bebb82c38b9e7e0f6820d1c071e534c)**|2.2.5|BSD-3-Clause +**[stream-json](#ff32de703b38cb80287bf73b31ddc47fb97277eadcfb231017f31a06824e41e0)**|1.7.5|BSD-3-Clause +**[string_decoder](#b7999058a36380603fb66d82d8b9e36ddb8f0e5b81cd3f3233f31eac12b793fe)**|1.3.0|MIT +**[strip-bom-buf](#4f426c3eaeb7d288c70eb64ad2e2617952c0d8da8cdedf4f8cb29ba65bb3b65e)**|2.0.0|MIT +**[strip-bom-stream](#f7e90a4335dbb561f2b002d1b73cdb9d891c023959465fee58c1636e0216af2e)**|4.0.0|MIT +**[strip-final-newline](#a6dd80beeaaa538a553eca27a2bc8f9b22f02a61191d2f6981b02a2c1c12bf19)**|2.0.0|MIT +**[strip-final-newline](#0e84cc036056cb7e0b11c5f70c4d239d4adf3ca9253b0e215abd7e78639b1c61)**|3.0.0|MIT +**[strip-json-comments](#7e22a64e44ef0efd054f76d551df5305ac48eb5807079c025c8bf63c0a728c33)**|3.1.1|MIT +**[strnum](#84f6b71bdd647bcb9588183f13dc0b7a0c5b0a3103b2fc7e8e95012c0d6c631d)**|1.0.5|MIT +**[style-mod](#65cbf3eb373755d5dd9f5c58cf62d48dd4a33349e67d644af61d8d5438dbc1b5)**|4.1.2|MIT +**[stylis](#131ca0470639719771dc1f233c9962655afffb6d27143e894c43e967517107cf)**|4.2.0|MIT +**[supports-color](#113926f6cb42a3d41d1c11fb1209faf789d78f51fb458da90c61e5c1a2307a8e)**|5.5.0|MIT +**[supports-color](#b97a30572cac0a03b8cf442bc01621a041d5714550984f25cb71fac2587edbd6)**|7.2.0|MIT +**[system-ca](#f7020e15c3acda122c176b63132660540ac26981c7037d110fc2896e3551ab19)**|2.0.1|Apache-2.0 +**[tabbable](#0ebe87140b76c7f2135bbd5099e7973a5ec2b5d8fe2bec8e272608cf0b3f396a)**|5.3.3|MIT +**[tar-fs](#8e5bae5073977abd61cb5549abc7581354454558aedf4a4002b91e6fd7b9830d)**|2.1.1|MIT +**[tar-stream](#5605712784129d10d2559e12f8031603f0cf4e5ff206f09356e4bf1dc5ab1168)**|1.6.2|MIT +**[text-table](#408475075eb207dd5ae8858365d5b39a25bebe2b757601c43164cec36f315b23)**|0.2.0|MIT +**[tiny-emitter](#43eb8db7345f328bbd03f484accbed64a06fa649df3ab59db7492e65d9361def)**|2.1.0|MIT +**[titleize](#36b49586e2b5f60bee2c757b90d19871a99822f92e2b2e19202ef9efb9595766)**|3.0.0|MIT +**[to-buffer](#5934a0e0ea92470fb3bbe2a1d6869494c53208b1b06aaee8ffd31e4e040e4e85)**|1.1.1|MIT +**[to-fast-properties](#79afe8c8f3cc0bb1187c6ffaf6105b49888137e917978e870d67727353aba954)**|2.0.0|MIT +**[toidentifier](#2067d1f99d35f28c8384d3e9762282f3c2ded0041392af855caf28ba2209bd2a)**|1.0.1|MIT +**[tr46](#a94418e116fb43931c49abb9cd596d6814a55956c3d0d11b7e225592b9977197)**|0.0.3|MIT +**[tr46](#73a239b431778fd3a06957f11cd6de530a4ba35ca946f8656f46e02228113c2b)**|4.1.1|MIT +**[tslib](#c5fc5d0adaeec50d156fc1f9a16cbca801bfb431eb78f3647a1237a0e239ae35)**|2.6.2|0BSD +**[tslib](#bd15b467ea785206b74637cc23d2b9088ba8fa47aa3034d1217f3dea848c1d1e)**|2.6.3|0BSD +**[tunnel-agent](#09f746d17a1777efda5a12a6072da10c6820d7f56ea8aa0af202a2c83d6ccb67)**|0.6.0|Apache-2.0 +**[tweetnacl](#496caef692284d7a5d6acd31283b785ebca47d82b2d85c9af7ea1913bb4b49a8)**|0.14.5|Unlicense +**[type-is](#12dbb9fcc3a6de5bbd595659bff8b688d45fff57a2014441e4fe6779f5eeb7e2)**|1.6.18|MIT +**[universalify](#c381098afc5e144dfbd23d044afa2bf9bcf3dcadb7eb397d379f6cfd0ed47001)**|2.0.0|MIT +**[unpipe](#3a555405bd00c7e7e52b07a5600248bdaa683db613d7c286e425511cee8ed14a)**|1.0.0|MIT +**[untildify](#511cd56aa5943fd465da93776449b0a7249438206b5c5bfc22cc6d7e55ab0029)**|4.0.0|MIT +**[unused-filename](#5c8d4d94e0c17084eac0ca8c2eefa1fdb285e6a3dc47477e54d9acf7bf08eb2a)**|2.1.0|MIT +**[use-sync-external-store](#f7d4a0ea4ee9d814fb264db8103d6ad3a831aa79bf7f3ea70bfa182f8a930f0a)**|1.2.0|MIT +**[util-deprecate](#a1bd80d6a50b36e34032c402c5204d6276747d8212b68b164a9e3f895b90c2d6)**|1.0.2|MIT +**[utils-merge](#daf17cb7acc6dd4694e84d0920d7b32dba2be0fcf114309bfce8538812e7c458)**|1.0.1|MIT +**[uuid](#8e5d6b0bb24ea0188cd3a88b1f790f104e774bb8ed04c0dac0db7cfe2911227e)**|9.0.1|MIT +**[vary](#d308bd3935a6f29310b20de016cdb7b3de3aa40a7d4c3365b96e35d2c248d74a)**|1.1.2|MIT +**[w3c-keyname](#160316b2bf7a19e2cc0418d5ef94b5a999f9092fee3023ac9b2c7d76d2934f5b)**|2.2.6|MIT +**[warning](#02c159f6bf591ba6e8523609cb610cbd897ea68c214f64dac6f21d7b4e4d3a2d)**|4.0.3|MIT +**[web-streams-polyfill](#2349028b62115a87d9af122218c79a38cd90411e2b53a91c1cff7249e16f45f0)**|3.3.3|MIT +**[web-vitals](#66d3585417e14f352ce331e44fe42a97c4d03073d014efd601538735085f84fe)**|2.1.2|Apache-2.0 +**[web-worker](#8aa3d357e4e58928a87a1cfde9f21452b05f10e194f93e5d5908bdff9b94e20a)**|1.3.0|Apache-2.0 +**[webidl-conversions](#3604b2bfa479706fe7bd8068257240d32158704a3bffae30b414963343027aa1)**|3.0.1|BSD-2-Clause +**[webidl-conversions](#cb7c681998e7ee3c598e6e37432bcf448946924eefe816636c3cb122bae46e1c)**|7.0.0|BSD-2-Clause +**[webpack](#bd55cdb69f5b1b336d12c3f00d849ccb1f2c39987c257c89027d6a790f947496)**|5.94.0|MIT +**[whatwg-url](#3a968d9d3fed498fc1edf2f65459cc89b6a2fea277b5c9b5c3f3a0b41390835a)**|13.0.0|MIT +**[whatwg-url](#cd3f81c4a0fd856ab1d9c9fc99c1d7eaf2c12c4867b218e9901e5020a1ffcd85)**|5.0.0|MIT +**[which-boxed-primitive](#b3f94b6da310368951f52909c400e19c4c2c7a282ba67374f41ab2d070bf83f2)**|1.0.2|MIT +**[which-collection](#8d30c0dc07cdaccc2163cb70ff87fa91c48abdf4963bf5603218d66dbd6ae538)**|1.0.2|MIT +**[which-typed-array](#949a7e27fa7c5423fa71694a92b2c5e0d1b7f9e43ba00aab74414d4311e82530)**|1.1.15|MIT +**[which](#5a71f2b741944bf107d6e7f067241798a6e277e42e8ca1e28c4608ccc233f8ec)**|2.0.2|ISC +**[winreg-ts](#b1df7eee15fa28ae85b9086513c8316c08a21c254e8eda11e63c6321a03ac4a7)**|1.0.4|BSD-2-Clause +**[wrappy](#13cebf193d7ada5ee347b9ae819b96f5e6da21f9b53e7f268c7703b686158595)**|1.0.2|ISC +**[write-file-atomic](#f2c3af5826c073336660baeb567e1bb4453d5b6fadafaa880c59787bfdc4408f)**|5.0.1|ISC +**[xtend](#ef439651e21b69e8811099e984a3a42de35b6d0fc30a5c230715bea4c96e4940)**|4.0.2|MIT +**[yallist](#63b110ffd18712146937e9f182800c6f2b5783e76d1659a0bd4b457789b0df07)**|3.1.1|ISC +**[yallist](#d400799c4e1f58dbbbe68b4d9c1b6e80e023f744bd7d16da491005fd8439200f)**|4.0.0|ISC +**[yargs-parser](#617a7401008b7639df8cebae61c9c009bf04ca762c652da0975da4533bf33690)**|21.1.1|ISC +**[zod](#7e37bb8a0a232b053778166963faee52e7d1a9cfca82f4501d65e94f11d1c566)**|3.22.3|MIT ## Package details - ### [@ampproject/remapping](https://www.npmjs.com/package/@ampproject/remapping) (version 2.2.0) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -673,24 +671,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -698,7 +696,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -712,18 +710,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -739,24 +737,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -773,14 +771,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -788,12 +786,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -803,7 +801,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -815,7 +813,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -826,11 +824,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -839,45 +837,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Google LLC - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/client-cognito-identity](https://www.npmjs.com/package/@aws-sdk/client-cognito-identity) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -885,24 +882,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -910,7 +907,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -924,18 +921,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -951,24 +948,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -985,14 +982,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1000,12 +997,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1015,7 +1012,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1027,7 +1024,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1038,11 +1035,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1051,45 +1048,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/client-sso](https://www.npmjs.com/package/@aws-sdk/client-sso) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1097,24 +1093,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1122,7 +1118,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1136,18 +1132,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -1163,24 +1159,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -1197,14 +1193,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1212,12 +1208,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1227,7 +1223,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1239,7 +1235,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1250,11 +1246,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1263,45 +1259,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/client-sts](https://www.npmjs.com/package/@aws-sdk/client-sts) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1309,24 +1304,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1334,7 +1329,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1348,18 +1343,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -1375,24 +1370,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -1409,14 +1404,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1424,12 +1419,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1439,7 +1434,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1451,7 +1446,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1462,11 +1457,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1475,51 +1470,49 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/core](https://www.npmjs.com/package/@aws-sdk/core) (version 3.629.0) - License tags: Apache-2.0 - + ### [@aws-sdk/credential-provider-cognito-identity](https://www.npmjs.com/package/@aws-sdk/credential-provider-cognito-identity) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1527,24 +1520,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1552,7 +1545,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1566,18 +1559,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -1593,24 +1586,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -1627,14 +1620,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1642,12 +1635,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1657,7 +1650,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1669,7 +1662,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1680,11 +1673,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1693,45 +1686,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/credential-provider-env](https://www.npmjs.com/package/@aws-sdk/credential-provider-env) (version 3.620.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1739,24 +1731,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1764,7 +1756,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1778,18 +1770,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -1805,24 +1797,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -1839,14 +1831,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1854,12 +1846,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1869,7 +1861,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1881,7 +1873,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1892,11 +1884,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1905,51 +1897,48 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-http](https://www.npmjs.com/package/@aws-sdk/credential-provider-http) (version 3.622.0) - License tags: Apache-2.0 - + ### [@aws-sdk/credential-provider-ini](https://www.npmjs.com/package/@aws-sdk/credential-provider-ini) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1957,24 +1946,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1982,7 +1971,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1996,18 +1985,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2023,24 +2012,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2057,14 +2046,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2072,12 +2061,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2087,7 +2076,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2099,7 +2088,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2110,11 +2099,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2123,45 +2112,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-node](https://www.npmjs.com/package/@aws-sdk/credential-provider-node) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -2169,24 +2156,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -2194,7 +2181,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -2208,18 +2195,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2235,24 +2222,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2269,14 +2256,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2284,12 +2271,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2299,7 +2286,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2311,7 +2298,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2322,11 +2309,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2335,45 +2322,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-process](https://www.npmjs.com/package/@aws-sdk/credential-provider-process) (version 3.620.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -2381,24 +2366,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -2406,7 +2391,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -2420,18 +2405,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2447,24 +2432,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2481,14 +2466,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2496,12 +2481,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2511,7 +2496,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2523,7 +2508,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2534,11 +2519,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2547,45 +2532,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-sso](https://www.npmjs.com/package/@aws-sdk/credential-provider-sso) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -2593,24 +2576,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -2618,7 +2601,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -2632,18 +2615,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2659,24 +2642,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2693,14 +2676,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2708,12 +2691,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2723,7 +2706,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2735,7 +2718,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2746,11 +2729,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2759,45 +2742,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-web-identity](https://www.npmjs.com/package/@aws-sdk/credential-provider-web-identity) (version 3.621.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -2805,24 +2786,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -2830,7 +2811,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -2844,18 +2825,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2871,24 +2852,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2905,14 +2886,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2920,12 +2901,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2935,7 +2916,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2947,7 +2928,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2958,11 +2939,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2971,45 +2952,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-providers](https://www.npmjs.com/package/@aws-sdk/credential-providers) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3017,24 +2996,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3042,7 +3021,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3056,18 +3035,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3083,24 +3062,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3117,14 +3096,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3132,12 +3111,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3147,7 +3126,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -3159,7 +3138,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -3170,11 +3149,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -3183,45 +3162,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/middleware-host-header](https://www.npmjs.com/package/@aws-sdk/middleware-host-header) (version 3.620.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3229,24 +3206,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3254,7 +3231,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3268,18 +3245,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3295,24 +3272,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3329,14 +3306,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3344,12 +3321,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3359,7 +3336,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -3371,7 +3348,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -3382,11 +3359,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -3395,45 +3372,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/middleware-logger](https://www.npmjs.com/package/@aws-sdk/middleware-logger) (version 3.609.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3441,24 +3417,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3466,7 +3442,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3480,18 +3456,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3507,24 +3483,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3541,14 +3517,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3556,12 +3532,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3571,7 +3547,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -3583,7 +3559,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -3594,11 +3570,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -3607,45 +3583,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/middleware-recursion-detection](https://www.npmjs.com/package/@aws-sdk/middleware-recursion-detection) (version 3.620.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3653,24 +3627,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3678,7 +3652,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3692,18 +3666,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3719,24 +3693,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3753,14 +3727,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3768,12 +3742,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3783,7 +3757,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -3795,7 +3769,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -3806,11 +3780,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -3819,45 +3793,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/middleware-user-agent](https://www.npmjs.com/package/@aws-sdk/middleware-user-agent) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3865,24 +3838,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3890,7 +3863,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3904,18 +3877,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3931,24 +3904,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3965,14 +3938,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3980,12 +3953,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3995,7 +3968,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4007,7 +3980,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4018,11 +3991,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4031,45 +4004,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/region-config-resolver](https://www.npmjs.com/package/@aws-sdk/region-config-resolver) (version 3.614.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -4077,24 +4049,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -4102,7 +4074,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -4116,18 +4088,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -4143,24 +4115,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -4177,14 +4149,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -4192,12 +4164,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -4207,7 +4179,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4219,7 +4191,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4230,11 +4202,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4243,45 +4215,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/token-providers](https://www.npmjs.com/package/@aws-sdk/token-providers) (version 3.614.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -4289,24 +4259,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -4314,7 +4284,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -4328,18 +4298,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -4355,24 +4325,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -4389,14 +4359,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -4404,12 +4374,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -4419,7 +4389,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4431,7 +4401,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4442,11 +4412,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4455,45 +4425,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/util-endpoints](https://www.npmjs.com/package/@aws-sdk/util-endpoints) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -4501,24 +4469,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -4526,7 +4494,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -4540,18 +4508,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -4567,24 +4535,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -4601,14 +4569,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -4616,12 +4584,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -4631,7 +4599,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4643,7 +4611,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4654,11 +4622,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4667,45 +4635,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/util-user-agent-node](https://www.npmjs.com/package/@aws-sdk/util-user-agent-node) (version 3.614.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -4713,24 +4679,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -4738,7 +4704,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -4752,18 +4718,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -4779,24 +4745,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -4813,14 +4779,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -4828,12 +4794,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -4843,7 +4809,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4855,7 +4821,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4866,11 +4832,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4879,35 +4845,34 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@babel/code-frame](https://www.npmjs.com/package/@babel/code-frame) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -4915,10 +4880,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -4926,21 +4891,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/compat-data](https://www.npmjs.com/package/@babel/compat-data) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -4948,10 +4912,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -4959,21 +4923,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/core](https://www.npmjs.com/package/@babel/core) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -4981,10 +4944,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -4992,21 +4955,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/generator](https://www.npmjs.com/package/@babel/generator) (version 7.25.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5014,10 +4976,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5025,21 +4987,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-annotate-as-pure](https://www.npmjs.com/package/@babel/helper-annotate-as-pure) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5047,10 +5008,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5058,21 +5019,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-compilation-targets](https://www.npmjs.com/package/@babel/helper-compilation-targets) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5080,10 +5040,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5091,21 +5051,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-create-class-features-plugin](https://www.npmjs.com/package/@babel/helper-create-class-features-plugin) (version 7.22.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5113,10 +5072,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5124,21 +5083,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-environment-visitor](https://www.npmjs.com/package/@babel/helper-environment-visitor) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5146,10 +5104,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5157,21 +5115,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-function-name](https://www.npmjs.com/package/@babel/helper-function-name) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5179,10 +5136,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5190,21 +5147,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-member-expression-to-functions](https://www.npmjs.com/package/@babel/helper-member-expression-to-functions) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5212,10 +5168,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5223,21 +5179,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-module-imports](https://www.npmjs.com/package/@babel/helper-module-imports) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5245,10 +5200,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5256,21 +5211,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-module-transforms](https://www.npmjs.com/package/@babel/helper-module-transforms) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5278,10 +5232,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5289,21 +5243,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-optimise-call-expression](https://www.npmjs.com/package/@babel/helper-optimise-call-expression) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5311,10 +5264,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5322,21 +5275,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-plugin-utils](https://www.npmjs.com/package/@babel/helper-plugin-utils) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5344,10 +5296,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5355,21 +5307,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-replace-supers](https://www.npmjs.com/package/@babel/helper-replace-supers) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5377,10 +5328,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5388,21 +5339,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-simple-access](https://www.npmjs.com/package/@babel/helper-simple-access) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5410,10 +5360,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5421,21 +5371,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-skip-transparent-expression-wrappers](https://www.npmjs.com/package/@babel/helper-skip-transparent-expression-wrappers) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5443,10 +5392,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5454,21 +5403,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-split-export-declaration](https://www.npmjs.com/package/@babel/helper-split-export-declaration) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5476,10 +5424,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5487,21 +5435,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-string-parser](https://www.npmjs.com/package/@babel/helper-string-parser) (version 7.24.8) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5509,10 +5456,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5520,21 +5467,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-validator-identifier](https://www.npmjs.com/package/@babel/helper-validator-identifier) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5542,10 +5488,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5553,21 +5499,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-validator-option](https://www.npmjs.com/package/@babel/helper-validator-option) (version 7.24.8) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5575,10 +5520,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5586,21 +5531,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helpers](https://www.npmjs.com/package/@babel/helpers) (version 7.25.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5608,10 +5552,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5619,21 +5563,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/highlight](https://www.npmjs.com/package/@babel/highlight) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5641,10 +5584,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5652,29 +5595,28 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/parser](https://www.npmjs.com/package/@babel/parser) (version 7.25.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2012-2014 by various contributors (see AUTHORS) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -5682,21 +5624,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-syntax-jsx](https://www.npmjs.com/package/@babel/plugin-syntax-jsx) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5704,10 +5645,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5715,21 +5656,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-syntax-typescript](https://www.npmjs.com/package/@babel/plugin-syntax-typescript) (version 7.21.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5737,10 +5677,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5748,21 +5688,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-destructuring](https://www.npmjs.com/package/@babel/plugin-transform-destructuring) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5770,10 +5709,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5781,21 +5720,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-modules-commonjs](https://www.npmjs.com/package/@babel/plugin-transform-modules-commonjs) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5803,10 +5741,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5814,21 +5752,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-parameters](https://www.npmjs.com/package/@babel/plugin-transform-parameters) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5836,10 +5773,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5847,21 +5784,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-shorthand-properties](https://www.npmjs.com/package/@babel/plugin-transform-shorthand-properties) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5869,10 +5805,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5880,21 +5816,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-typescript](https://www.npmjs.com/package/@babel/plugin-transform-typescript) (version 7.21.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5902,10 +5837,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5913,21 +5848,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/preset-typescript](https://www.npmjs.com/package/@babel/preset-typescript) (version 7.21.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5935,10 +5869,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5946,21 +5880,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/runtime](https://www.npmjs.com/package/@babel/runtime) (version 7.21.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -5968,10 +5901,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5979,21 +5912,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/template](https://www.npmjs.com/package/@babel/template) (version 7.25.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -6001,10 +5933,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -6012,21 +5944,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/traverse](https://www.npmjs.com/package/@babel/traverse) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -6034,10 +5965,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -6045,21 +5976,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/types](https://www.npmjs.com/package/@babel/types) (version 7.25.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -6067,10 +5997,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -6078,31 +6008,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/autocomplete](https://www.npmjs.com/package/@codemirror/autocomplete) (version 6.17.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6110,31 +6039,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/commands](https://www.npmjs.com/package/@codemirror/commands) (version 6.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6142,31 +6070,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/lang-javascript](https://www.npmjs.com/package/@codemirror/lang-javascript) (version 6.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6174,31 +6101,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/lang-json](https://www.npmjs.com/package/@codemirror/lang-json) (version 6.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6206,31 +6132,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/language](https://www.npmjs.com/package/@codemirror/language) (version 6.3.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6238,31 +6163,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/lint](https://www.npmjs.com/package/@codemirror/lint) (version 6.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6270,31 +6194,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/state](https://www.npmjs.com/package/@codemirror/state) (version 6.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6302,31 +6225,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/view](https://www.npmjs.com/package/@codemirror/view) (version 6.28.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6334,31 +6256,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@dnd-kit/accessibility](https://www.npmjs.com/package/@dnd-kit/accessibility) (version 3.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021, Claudéric Demers - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6366,31 +6287,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@dnd-kit/core](https://www.npmjs.com/package/@dnd-kit/core) (version 6.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021, Claudéric Demers - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6398,31 +6318,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@dnd-kit/sortable](https://www.npmjs.com/package/@dnd-kit/sortable) (version 7.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021, Claudéric Demers - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6430,31 +6349,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@dnd-kit/utilities](https://www.npmjs.com/package/@dnd-kit/utilities) (version 3.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021, Claudéric Demers - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6462,19 +6380,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@electron/remote](https://www.npmjs.com/package/@electron/remote) (version 2.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2019-2022 Electron contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -6482,10 +6399,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -6493,31 +6410,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/cache](https://www.npmjs.com/package/@emotion/cache) (version 11.11.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6525,31 +6441,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/css](https://www.npmjs.com/package/@emotion/css) (version 11.11.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6557,31 +6472,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/hash](https://www.npmjs.com/package/@emotion/hash) (version 0.9.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6589,31 +6503,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/memoize](https://www.npmjs.com/package/@emotion/memoize) (version 0.8.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6621,31 +6534,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/serialize](https://www.npmjs.com/package/@emotion/serialize) (version 1.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6653,31 +6565,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/sheet](https://www.npmjs.com/package/@emotion/sheet) (version 1.2.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6685,31 +6596,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/unitless](https://www.npmjs.com/package/@emotion/unitless) (version 0.8.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6717,31 +6627,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/utils](https://www.npmjs.com/package/@emotion/utils) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6749,31 +6658,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/weak-memoize](https://www.npmjs.com/package/@emotion/weak-memoize) (version 0.3.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6781,29 +6689,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/gen-mapping](https://www.npmjs.com/package/@jridgewell/gen-mapping) (version 0.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2022 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6811,29 +6718,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/gen-mapping](https://www.npmjs.com/package/@jridgewell/gen-mapping) (version 0.3.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2022 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6841,29 +6747,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/resolve-uri](https://www.npmjs.com/package/@jridgewell/resolve-uri) (version 3.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2019 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6872,28 +6777,26 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [@jridgewell/set-array](https://www.npmjs.com/package/@jridgewell/set-array) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2022 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6901,31 +6804,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/sourcemap-codec](https://www.npmjs.com/package/@jridgewell/sourcemap-codec) (version 1.5.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License - + Copyright (c) 2015 Rich Harris - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6933,29 +6835,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/trace-mapping](https://www.npmjs.com/package/@jridgewell/trace-mapping) (version 0.3.25) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2022 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6963,31 +6864,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lezer/common](https://www.npmjs.com/package/@lezer/common) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6995,31 +6895,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lezer/highlight](https://www.npmjs.com/package/@lezer/highlight) (version 1.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -7027,31 +6926,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lezer/javascript](https://www.npmjs.com/package/@lezer/javascript) (version 1.3.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -7059,31 +6957,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lezer/json](https://www.npmjs.com/package/@lezer/json) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2020 by Marijn Haverbeke , Arun Srinivasan , and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -7092,30 +6989,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [@lezer/lr](https://www.npmjs.com/package/@lezer/lr) (version 1.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -7123,51 +7018,48 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lg-tools/test-harnesses](https://www.npmjs.com/package/@lg-tools/test-harnesses) (version 0.1.2) - License tags: Apache-2.0 - + ### [@lukeed/uuid](https://www.npmjs.com/package/@lukeed/uuid) (version 2.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Luke Edwards (lukeed.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@nicolo-ribaudo/semver-v6](https://www.npmjs.com/package/@nicolo-ribaudo/semver-v6) (version 6.3.3) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -7175,31 +7067,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [@react-aria/interactions](https://www.npmjs.com/package/@react-aria/interactions) (version 3.9.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -7207,24 +7098,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -7232,7 +7123,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -7246,18 +7137,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -7273,24 +7164,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -7307,14 +7198,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -7322,12 +7213,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -7337,7 +7228,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -7349,7 +7240,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -7360,11 +7251,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -7373,45 +7264,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@react-aria/ssr](https://www.npmjs.com/package/@react-aria/ssr) (version 3.2.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -7419,24 +7309,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -7444,7 +7334,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -7458,18 +7348,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -7485,24 +7375,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -7519,14 +7409,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -7534,12 +7424,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -7549,7 +7439,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -7561,7 +7451,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -7572,11 +7462,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -7585,45 +7475,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@react-aria/utils](https://www.npmjs.com/package/@react-aria/utils) (version 3.13.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -7631,24 +7520,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -7656,7 +7545,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -7670,18 +7559,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -7697,24 +7586,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -7731,14 +7620,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -7746,12 +7635,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -7761,7 +7650,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -7773,7 +7662,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -7784,11 +7673,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -7797,45 +7686,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@react-aria/visually-hidden](https://www.npmjs.com/package/@react-aria/visually-hidden) (version 3.3.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -7843,24 +7731,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -7868,7 +7756,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -7882,18 +7770,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -7909,24 +7797,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -7943,14 +7831,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -7958,12 +7846,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -7973,7 +7861,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -7985,7 +7873,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -7996,11 +7884,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -8009,45 +7897,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@react-stately/utils](https://www.npmjs.com/package/@react-stately/utils) (version 3.5.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8055,24 +7942,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -8080,7 +7967,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -8094,18 +7981,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -8121,24 +8008,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -8155,14 +8042,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -8170,12 +8057,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -8185,7 +8072,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -8197,7 +8084,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -8208,11 +8095,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -8221,45 +8108,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@segment/analytics-core](https://www.npmjs.com/package/@segment/analytics-core) (version 1.4.0) - License tags: MIT License files: - -- LICENSE.MD: +* LICENSE.MD: The MIT License (MIT) - + Copyright © 2021 Segment - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -8268,30 +8154,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [@segment/analytics-generic-utils](https://www.npmjs.com/package/@segment/analytics-generic-utils) (version 1.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright © 2023 Segment - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -8299,31 +8183,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@segment/analytics-node](https://www.npmjs.com/package/@segment/analytics-node) (version 1.1.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright © 2021 Segment - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -8331,31 +8214,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@smithy/config-resolver](https://www.npmjs.com/package/@smithy/config-resolver) (version 3.0.5) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8363,24 +8245,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -8388,7 +8270,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -8402,18 +8284,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -8429,24 +8311,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -8463,14 +8345,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -8478,12 +8360,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -8493,7 +8375,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -8505,7 +8387,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -8516,11 +8398,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -8529,45 +8411,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/core](https://www.npmjs.com/package/@smithy/core) (version 2.3.2) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8575,24 +8455,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -8600,7 +8480,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -8614,18 +8494,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -8641,24 +8521,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -8675,14 +8555,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -8690,12 +8570,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -8705,7 +8585,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -8717,7 +8597,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -8728,11 +8608,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -8741,45 +8621,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/credential-provider-imds](https://www.npmjs.com/package/@smithy/credential-provider-imds) (version 3.2.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8787,24 +8666,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -8812,7 +8691,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -8826,18 +8705,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -8853,24 +8732,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -8887,14 +8766,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -8902,12 +8781,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -8917,7 +8796,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -8929,7 +8808,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -8940,11 +8819,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -8953,45 +8832,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/fetch-http-handler](https://www.npmjs.com/package/@smithy/fetch-http-handler) (version 3.2.4) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8999,24 +8876,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9024,7 +8901,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9038,18 +8915,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9065,24 +8942,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9099,14 +8976,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9114,12 +8991,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9129,7 +9006,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9141,7 +9018,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -9152,11 +9029,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -9165,45 +9042,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/hash-node](https://www.npmjs.com/package/@smithy/hash-node) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -9211,24 +9086,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9236,7 +9111,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9250,18 +9125,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9277,24 +9152,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9311,14 +9186,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9326,12 +9201,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9341,7 +9216,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9353,7 +9228,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -9364,11 +9239,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -9377,45 +9252,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/is-array-buffer](https://www.npmjs.com/package/@smithy/is-array-buffer) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -9423,24 +9296,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9448,7 +9321,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9462,18 +9335,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9489,24 +9362,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9523,14 +9396,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9538,12 +9411,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9553,7 +9426,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9565,7 +9438,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -9576,11 +9449,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -9589,45 +9462,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/middleware-content-length](https://www.npmjs.com/package/@smithy/middleware-content-length) (version 3.0.5) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -9635,24 +9506,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9660,7 +9531,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9674,18 +9545,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9701,24 +9572,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9735,14 +9606,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9750,12 +9621,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9765,7 +9636,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9777,7 +9648,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -9788,11 +9659,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -9801,45 +9672,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/middleware-endpoint](https://www.npmjs.com/package/@smithy/middleware-endpoint) (version 3.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -9847,24 +9716,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9872,7 +9741,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9886,18 +9755,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9913,24 +9782,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9947,14 +9816,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9962,12 +9831,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9977,7 +9846,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9989,7 +9858,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10000,11 +9869,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10013,45 +9882,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/middleware-retry](https://www.npmjs.com/package/@smithy/middleware-retry) (version 3.0.14) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10059,24 +9926,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10084,7 +9951,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10098,18 +9965,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10125,24 +9992,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -10159,14 +10026,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -10174,12 +10041,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -10189,7 +10056,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -10201,7 +10068,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10212,11 +10079,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10225,45 +10092,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/middleware-serde](https://www.npmjs.com/package/@smithy/middleware-serde) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10271,24 +10137,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10296,7 +10162,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10310,18 +10176,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10337,24 +10203,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -10371,14 +10237,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -10386,12 +10252,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -10401,7 +10267,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -10413,7 +10279,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10424,11 +10290,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10437,45 +10303,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/middleware-stack](https://www.npmjs.com/package/@smithy/middleware-stack) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10483,24 +10348,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10508,7 +10373,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10522,18 +10387,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10549,24 +10414,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -10583,14 +10448,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -10598,12 +10463,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -10613,7 +10478,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -10625,7 +10490,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10636,11 +10501,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10649,45 +10514,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/node-config-provider](https://www.npmjs.com/package/@smithy/node-config-provider) (version 3.1.4) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10695,24 +10558,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10720,7 +10583,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10734,18 +10597,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10761,24 +10624,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -10795,14 +10658,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -10810,12 +10673,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -10825,7 +10688,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -10837,7 +10700,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10848,11 +10711,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10861,45 +10724,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/node-http-handler](https://www.npmjs.com/package/@smithy/node-http-handler) (version 3.1.4) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10907,24 +10768,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10932,7 +10793,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10946,18 +10807,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10973,24 +10834,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11007,14 +10868,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11022,12 +10883,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11037,7 +10898,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11049,7 +10910,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11060,11 +10921,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11073,45 +10934,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/property-provider](https://www.npmjs.com/package/@smithy/property-provider) (version 3.1.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11119,24 +10978,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11144,7 +11003,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -11158,18 +11017,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -11185,24 +11044,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11219,14 +11078,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11234,12 +11093,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11249,7 +11108,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11261,7 +11120,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11272,11 +11131,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11285,45 +11144,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/protocol-http](https://www.npmjs.com/package/@smithy/protocol-http) (version 4.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11331,24 +11188,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11356,7 +11213,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -11370,18 +11227,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -11397,24 +11254,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11431,14 +11288,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11446,12 +11303,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11461,7 +11318,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11473,7 +11330,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11484,11 +11341,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11497,45 +11354,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/querystring-builder](https://www.npmjs.com/package/@smithy/querystring-builder) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11543,24 +11399,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11568,7 +11424,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -11582,18 +11438,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -11609,24 +11465,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11643,14 +11499,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11658,12 +11514,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11673,7 +11529,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11685,7 +11541,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11696,11 +11552,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11709,45 +11565,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/querystring-parser](https://www.npmjs.com/package/@smithy/querystring-parser) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11755,24 +11610,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11780,7 +11635,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -11794,18 +11649,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -11821,24 +11676,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11855,14 +11710,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11870,12 +11725,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11885,7 +11740,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11897,7 +11752,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11908,11 +11763,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11921,45 +11776,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/service-error-classification](https://www.npmjs.com/package/@smithy/service-error-classification) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11967,24 +11821,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11992,7 +11846,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12006,18 +11860,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12033,24 +11887,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12067,14 +11921,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12082,12 +11936,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12097,7 +11951,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12109,7 +11963,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12120,11 +11974,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12133,45 +11987,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/shared-ini-file-loader](https://www.npmjs.com/package/@smithy/shared-ini-file-loader) (version 3.1.4) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -12179,24 +12032,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -12204,7 +12057,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12218,18 +12071,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12245,24 +12098,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12279,14 +12132,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12294,12 +12147,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12309,7 +12162,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12321,7 +12174,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12332,11 +12185,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12345,45 +12198,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/signature-v4](https://www.npmjs.com/package/@smithy/signature-v4) (version 4.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -12391,24 +12242,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -12416,7 +12267,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12430,18 +12281,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12457,24 +12308,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12491,14 +12342,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12506,12 +12357,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12521,7 +12372,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12533,7 +12384,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12544,11 +12395,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12557,45 +12408,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/smithy-client](https://www.npmjs.com/package/@smithy/smithy-client) (version 3.1.12) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -12603,24 +12452,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -12628,7 +12477,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12642,18 +12491,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12669,24 +12518,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12703,14 +12552,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12718,12 +12567,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12733,7 +12582,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12745,7 +12594,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12756,11 +12605,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12769,45 +12618,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/types](https://www.npmjs.com/package/@smithy/types) (version 3.3.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -12815,24 +12663,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -12840,7 +12688,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12854,18 +12702,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12881,24 +12729,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12915,14 +12763,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12930,12 +12778,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12945,7 +12793,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12957,7 +12805,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12968,11 +12816,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12981,45 +12829,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/url-parser](https://www.npmjs.com/package/@smithy/url-parser) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13027,24 +12874,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13052,7 +12899,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13066,18 +12913,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13093,24 +12940,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13127,14 +12974,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13142,12 +12989,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -13157,7 +13004,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -13169,7 +13016,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -13180,11 +13027,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -13193,45 +13040,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/util-base64](https://www.npmjs.com/package/@smithy/util-base64) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13239,24 +13085,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13264,7 +13110,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13278,18 +13124,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13305,24 +13151,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13339,14 +13185,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13354,12 +13200,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -13369,7 +13215,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -13381,7 +13227,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -13392,11 +13238,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -13405,45 +13251,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-body-length-node](https://www.npmjs.com/package/@smithy/util-body-length-node) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13451,24 +13295,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13476,7 +13320,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13490,18 +13334,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13517,24 +13361,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13551,14 +13395,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13566,12 +13410,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -13581,7 +13425,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -13593,7 +13437,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -13604,11 +13448,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -13617,45 +13461,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-buffer-from](https://www.npmjs.com/package/@smithy/util-buffer-from) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13663,24 +13505,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13688,7 +13530,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13702,18 +13544,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13729,24 +13571,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13763,14 +13605,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13778,12 +13620,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -13793,7 +13635,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -13805,7 +13647,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -13816,11 +13658,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -13829,45 +13671,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-config-provider](https://www.npmjs.com/package/@smithy/util-config-provider) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13875,24 +13715,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13900,7 +13740,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13914,18 +13754,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13941,24 +13781,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13975,14 +13815,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13990,12 +13830,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14005,7 +13845,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14017,7 +13857,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14028,11 +13868,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14041,45 +13881,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-defaults-mode-node](https://www.npmjs.com/package/@smithy/util-defaults-mode-node) (version 3.0.14) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14087,24 +13925,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14112,7 +13950,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14126,18 +13964,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -14153,24 +13991,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -14187,14 +14025,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -14202,12 +14040,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14217,7 +14055,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14229,7 +14067,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14240,11 +14078,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14253,45 +14091,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/util-endpoints](https://www.npmjs.com/package/@smithy/util-endpoints) (version 2.0.5) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14299,24 +14136,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14324,7 +14161,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14338,18 +14175,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -14365,24 +14202,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -14399,14 +14236,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -14414,12 +14251,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14429,7 +14266,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14441,7 +14278,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14452,11 +14289,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14465,45 +14302,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-hex-encoding](https://www.npmjs.com/package/@smithy/util-hex-encoding) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14511,24 +14346,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14536,7 +14371,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14550,18 +14385,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -14577,24 +14412,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -14611,14 +14446,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -14626,12 +14461,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14641,7 +14476,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14653,7 +14488,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14664,11 +14499,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14677,45 +14512,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-middleware](https://www.npmjs.com/package/@smithy/util-middleware) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14723,24 +14556,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14748,7 +14581,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14762,18 +14595,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -14789,24 +14622,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -14823,14 +14656,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -14838,12 +14671,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14853,7 +14686,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14865,7 +14698,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14876,11 +14709,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14889,45 +14722,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-retry](https://www.npmjs.com/package/@smithy/util-retry) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14935,24 +14766,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14960,7 +14791,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14974,18 +14805,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -15001,24 +14832,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -15035,14 +14866,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -15050,12 +14881,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -15065,7 +14896,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -15077,7 +14908,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -15088,11 +14919,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -15101,45 +14932,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-stream](https://www.npmjs.com/package/@smithy/util-stream) (version 3.1.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -15147,24 +14976,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -15172,7 +15001,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -15186,18 +15015,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -15213,24 +15042,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -15247,14 +15076,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -15262,12 +15091,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -15277,7 +15106,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -15289,7 +15118,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -15300,11 +15129,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -15313,45 +15142,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-uri-escape](https://www.npmjs.com/package/@smithy/util-uri-escape) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -15359,24 +15186,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -15384,7 +15211,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -15398,18 +15225,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -15425,24 +15252,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -15459,14 +15286,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -15474,12 +15301,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -15489,7 +15316,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -15501,7 +15328,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -15512,11 +15339,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -15525,45 +15352,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-utf8](https://www.npmjs.com/package/@smithy/util-utf8) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -15571,24 +15396,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -15596,7 +15421,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -15610,18 +15435,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -15637,24 +15462,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -15671,14 +15496,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -15686,12 +15511,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -15701,7 +15526,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -15713,7 +15538,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -15724,11 +15549,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -15737,45 +15562,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@tanstack/react-table](https://www.npmjs.com/package/@tanstack/react-table) (version 8.14.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Tanner Linsley - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15783,31 +15606,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@tanstack/table-core](https://www.npmjs.com/package/@tanstack/table-core) (version 8.14.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Tanner Linsley - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15815,30 +15637,29 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@testing-library/dom](https://www.npmjs.com/package/@testing-library/dom) (version 9.3.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) Copyright (c) 2017 Kent C. Dodds - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15846,31 +15667,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@tootallnate/quickjs-emscripten](https://www.npmjs.com/package/@tootallnate/quickjs-emscripten) (version 0.23.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + quickjs-emscripten copyright (c) 2019 Jake Teton-Landis - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15878,22 +15698,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [accepts](https://www.npmjs.com/package/accepts) (version 1.3.8) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -15901,10 +15720,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -15912,31 +15731,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [acorn](https://www.npmjs.com/package/acorn) (version 8.8.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2012-2022 by various contributors (see AUTHORS) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15944,31 +15762,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ag-grid-community](https://www.npmjs.com/package/ag-grid-community) (version 20.2.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: The MIT License - + Copyright (c) 2015-2016 AG GRID LTD - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15976,31 +15793,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ag-grid-react](https://www.npmjs.com/package/ag-grid-react) (version 20.2.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: The MIT License - + Copyright (c) 2015-2016 AG GRID LTD - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16008,21 +15824,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [agent-base](https://www.npmjs.com/package/agent-base) (version 7.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -16030,10 +15845,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16042,18 +15857,16 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [ampersand-class-extend](https://www.npmjs.com/package/ampersand-class-extend) (version 1.0.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16061,10 +15874,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16072,19 +15885,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-class-extend](https://www.npmjs.com/package/ampersand-class-extend) (version 2.0.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16092,10 +15904,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16103,19 +15915,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-collection-view](https://www.npmjs.com/package/ampersand-collection-view) (version 1.4.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16123,10 +15934,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16134,19 +15945,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-collection](https://www.npmjs.com/package/ampersand-collection) (version 2.0.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16154,10 +15964,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16165,19 +15975,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-dom-bindings](https://www.npmjs.com/package/ampersand-dom-bindings) (version 3.9.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright © 2015 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16185,10 +15994,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16196,19 +16005,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-dom](https://www.npmjs.com/package/ampersand-dom) (version 1.5.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16216,10 +16024,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16227,19 +16035,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-events](https://www.npmjs.com/package/ampersand-events) (version 1.1.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16247,10 +16054,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16259,18 +16066,16 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [ampersand-events](https://www.npmjs.com/package/ampersand-events) (version 2.0.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16278,10 +16083,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16290,18 +16095,16 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [ampersand-model](https://www.npmjs.com/package/ampersand-model) (version 8.0.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16309,10 +16112,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16320,19 +16123,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-state](https://www.npmjs.com/package/ampersand-state) (version 4.8.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16340,10 +16142,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16351,19 +16153,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-state](https://www.npmjs.com/package/ampersand-state) (version 5.0.3) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16371,10 +16172,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16382,19 +16183,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-view](https://www.npmjs.com/package/ampersand-view) (version 9.0.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16402,10 +16202,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16413,117 +16213,111 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ansi-regex](https://www.npmjs.com/package/ansi-regex) (version 5.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ansi-styles](https://www.npmjs.com/package/ansi-styles) (version 3.2.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ansi-styles](https://www.npmjs.com/package/ansi-styles) (version 4.3.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ansi-styles](https://www.npmjs.com/package/ansi-styles) (version 5.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [antlr4](https://www.npmjs.com/package/antlr4) (version 4.7.2) - License tags: BSD-3-Clause - + ### [aria-query](https://www.npmjs.com/package/aria-query) (version 5.1.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -16531,24 +16325,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -16556,7 +16350,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -16570,18 +16364,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -16597,24 +16391,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -16631,14 +16425,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -16646,12 +16440,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -16661,7 +16455,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -16673,7 +16467,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -16684,11 +16478,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -16697,45 +16491,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 A11yance - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [array-buffer-byte-length](https://www.npmjs.com/package/array-buffer-byte-length) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2023 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16743,31 +16536,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [array-flatten](https://www.npmjs.com/package/array-flatten) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16775,35 +16567,33 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [array-next](https://www.npmjs.com/package/array-next) (version 0.0.1) - License tags: MIT - + ### [asn1](https://www.npmjs.com/package/asn1) (version 0.2.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2011 Mark Cavage, All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16811,19 +16601,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE + - + ### [ast-types](https://www.npmjs.com/package/ast-types) (version 0.13.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2013 Ben Newman - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16831,10 +16620,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16842,31 +16631,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [available-typed-arrays](https://www.npmjs.com/package/available-typed-arrays) (version 1.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16874,29 +16662,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [aws4](https://www.npmjs.com/package/aws4) (version 1.11.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2013 Michael Hart (michael.hart.au@gmail.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16904,31 +16691,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [base64-js](https://www.npmjs.com/package/base64-js) (version 1.5.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jameson Little - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16936,29 +16722,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [basic-ftp](https://www.npmjs.com/package/basic-ftp) (version 5.0.5) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright (c) 2019 Patrick Juchli - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16967,24 +16752,22 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [bcrypt-pbkdf](https://www.npmjs.com/package/bcrypt-pbkdf) (version 1.0.2) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: The Blowfish portions are under the following license: - + Blowfish block cipher for OpenBSD Copyright 1997 Niels Provos All rights reserved. - + Implementation advice by David Mazieres . - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -16995,7 +16778,7 @@ License files: documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. @@ -17006,17 +16789,17 @@ License files: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - + + + The bcrypt_pbkdf portions are under the following license: - + Copyright (c) 2013 Ted Unangst - + Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -17024,18 +16807,18 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - - + + + Performance improvements (Javascript-specific): - + Copyright 2016, Joyent Inc Author: Alex Wilson - + Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -17043,79 +16826,54 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [big-integer](https://www.npmjs.com/package/big-integer) (version 1.6.52) - License tags: Unlicense License files: - -- LICENSE: - - This is free and unencumbered software released into the public domain. +* LICENSE: + + This is free and unencumbered software released into the public domain. + + Anyone is free to copy, modify, publish, use, compile, sell, or + distribute this software, either in source code form or as a compiled + binary, for any purpose, commercial or non-commercial, and by any + means. + + In jurisdictions that recognize copyright laws, the author or authors + of this software dedicate any and all copyright interest in the + software to the public domain. We make this dedication for the benefit + of the public at large and to the detriment of our heirs and + successors. We intend this dedication to be an overt act of + relinquishment in perpetuity of all present and future rights to this + software under copyright law. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + For more information, please refer to + + +### [bindings](https://www.npmjs.com/package/bindings) (version 1.5.0) +License tags: MIT - Anyone is free to copy, modify, publish, use, compile, sell, or - - distribute this software, either in source code form or as a compiled - - binary, for any purpose, commercial or non-commercial, and by any - - means. - - - - In jurisdictions that recognize copyright laws, the author or authors - - of this software dedicate any and all copyright interest in the - - software to the public domain. We make this dedication for the benefit - - of the public at large and to the detriment of our heirs and - - successors. We intend this dedication to be an overt act of - - relinquishment in perpetuity of all present and future rights to this - - software under copyright law. - - - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - - IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR - - OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - - OTHER DEALINGS IN THE SOFTWARE. - - - - For more information, please refer to - - - -### [bindings](https://www.npmjs.com/package/bindings) (version 1.5.0) - -License tags: MIT - -License files: - -- LICENSE.md: +License files: +* LICENSE.md: (The MIT License) - + Copyright (c) 2012 Nathan Rajlich <nathan@tootallnate.net> - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17123,10 +16881,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17134,46 +16892,44 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [bl](https://www.npmjs.com/package/bl) (version 4.1.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) ===================== - + Copyright (c) 2013-2019 bl contributors ---------------------------------- - + *bl contributors listed at * - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [body-parser](https://www.npmjs.com/package/body-parser) (version 1.20.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2014-2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17181,10 +16937,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17192,37 +16948,35 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [bplist-parser](https://www.npmjs.com/package/bplist-parser) (version 0.2.0) - License tags: MIT - + ### [bson](https://www.npmjs.com/package/bson) (version 6.7.0) - License tags: Apache-2.0 License files: - -- LICENSE.md: +* LICENSE.md: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -17230,24 +16984,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -17255,7 +17009,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -17269,18 +17023,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -17296,24 +17050,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -17330,14 +17084,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -17345,12 +17099,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -17360,7 +17114,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -17372,7 +17126,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -17383,11 +17137,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -17396,63 +17150,59 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [buffer-alloc-unsafe](https://www.npmjs.com/package/buffer-alloc-unsafe) (version 1.1.0) - License tags: MIT - + ### [buffer-alloc](https://www.npmjs.com/package/buffer-alloc) (version 1.2.0) - License tags: MIT - + ### [buffer-fill](https://www.npmjs.com/package/buffer-fill) (version 1.0.0) - License tags: MIT - + ### [buffer](https://www.npmjs.com/package/buffer) (version 5.7.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Feross Aboukhadijeh, and other contributors. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -17460,42 +17210,40 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [bundle-name](https://www.npmjs.com/package/bundle-name) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [bytes](https://www.npmjs.com/package/bytes) (version 3.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2014 TJ Holowaychuk Copyright (c) 2015 Jed Watson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17503,10 +17251,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17514,31 +17262,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [call-bind](https://www.npmjs.com/package/call-bind) (version 1.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -17546,85 +17293,81 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [chalk](https://www.npmjs.com/package/chalk) (version 2.4.2) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [chalk](https://www.npmjs.com/package/chalk) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [chalk](https://www.npmjs.com/package/chalk) (version 4.1.2) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [chownr](https://www.npmjs.com/package/chownr) (version 2.0.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -17632,51 +17375,49 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [clean-stack](https://www.npmjs.com/package/clean-stack) (version 2.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [clipboard](https://www.npmjs.com/package/clipboard) (version 2.0.10) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Zeno Rocha - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -17684,45 +17425,42 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [closest](https://www.npmjs.com/package/closest) (version 0.0.1) - License tags: MIT - + ### [clsx](https://www.npmjs.com/package/clsx) (version 1.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Luke Edwards (lukeed.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [color-convert](https://www.npmjs.com/package/color-convert) (version 1.9.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2011-2016 Heather Arthur - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -17730,10 +17468,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -17741,19 +17479,19 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [color-convert](https://www.npmjs.com/package/color-convert) (version 2.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2011-2016 Heather Arthur - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -17761,10 +17499,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -17772,79 +17510,60 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [color-name](https://www.npmjs.com/package/color-name) (version 1.1.3) - License tags: MIT License files: +* LICENSE: -- LICENSE: - - The MIT License (MIT) - - Copyright (c) 2015 Dmitry Ivanov - - - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - - + The MIT License (MIT) + Copyright (c) 2015 Dmitry Ivanov + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [color-name](https://www.npmjs.com/package/color-name) (version 1.1.4) - License tags: MIT License files: +* LICENSE: -- LICENSE: - - The MIT License (MIT) - - Copyright (c) 2015 Dmitry Ivanov - - - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - - + The MIT License (MIT) + Copyright (c) 2015 Dmitry Ivanov + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [component-event](https://www.npmjs.com/package/component-event) (version 0.1.4) - License tags: MIT - + ### [content-disposition](https://www.npmjs.com/package/content-disposition) (version 0.5.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17852,10 +17571,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17863,21 +17582,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [content-type](https://www.npmjs.com/package/content-type) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17885,10 +17603,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17896,20 +17614,19 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [convert-source-map](https://www.npmjs.com/package/convert-source-map) (version 2.0.0) - License tags: MIT License files: +* LICENSE: -- LICENSE: - - Copyright 2013 Thorsten Lorenz. + Copyright 2013 Thorsten Lorenz. All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without @@ -17918,10 +17635,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -17930,28 +17647,26 @@ License files: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [cookie-signature](https://www.npmjs.com/package/cookie-signature) (version 1.0.6) - License tags: MIT - + ### [cookie](https://www.npmjs.com/package/cookie) (version 0.6.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2014 Roman Shtylman Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17959,10 +17674,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17970,29 +17685,29 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [core-js](https://www.npmjs.com/package/core-js) (version 3.17.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2014-2021 Denis Pushkarev - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18000,77 +17715,56 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [cpu-features](https://www.npmjs.com/package/cpu-features) (version 0.0.9) - License tags: MIT License files: - -- LICENSE: - - Copyright Brian White. All rights reserved. - - - - Permission is hereby granted, free of charge, to any person obtaining a copy - - of this software and associated documentation files (the "Software"), to - - deal in the Software without restriction, including without limitation the - - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - - sell copies of the Software, and to permit persons to whom the Software is - - furnished to do so, subject to the following conditions: - - - - The above copyright notice and this permission notice shall be included in - - all copies or substantial portions of the Software. - - - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - +* LICENSE: + + Copyright Brian White. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [crelt](https://www.npmjs.com/package/crelt) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2020 by Marijn Haverbeke - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18078,31 +17772,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [cross-fetch](https://www.npmjs.com/package/cross-fetch) (version 3.1.8) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2017 Leonardo Quixadá - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18110,31 +17803,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [cross-spawn](https://www.npmjs.com/package/cross-spawn) (version 7.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2018 Made With MOXY Lda - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18142,19 +17834,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [css-loader](https://www.npmjs.com/package/css-loader) (version 4.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright JS Foundation and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -18162,10 +17853,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -18173,59 +17864,57 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [d3-flextree](https://www.npmjs.com/package/d3-flextree) (version 2.1.2) - License tags: WTFPL License files: - -- LICENSE: +* LICENSE: DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 - + Copyright (C) 2004 Sam Hocevar - + Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. - + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - + 0. You just DO WHAT THE FUCK YOU WANT TO. + + - ### [d3-hierarchy](https://www.npmjs.com/package/d3-hierarchy) (version 1.1.9) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright 2010-2016 Mike Bostock All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -18236,34 +17925,33 @@ License files: ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [d3-timer](https://www.npmjs.com/package/d3-timer) (version 1.0.3) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright 2010-2016 Mike Bostock All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -18274,33 +17962,32 @@ License files: ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [d3](https://www.npmjs.com/package/d3) (version 3.5.17) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright (c) 2010-2016, Michael Bostock All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * The name Michael Bostock may not be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -18311,27 +17998,25 @@ License files: OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [data-uri-to-buffer](https://www.npmjs.com/package/data-uri-to-buffer) (version 4.0.1) - License tags: MIT - + ### [data-uri-to-buffer](https://www.npmjs.com/package/data-uri-to-buffer) (version 6.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -18339,10 +18024,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -18351,169 +18036,166 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [debug](https://www.npmjs.com/package/debug) (version 2.6.9) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 TJ Holowaychuk - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the 'Software'), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the 'Software'), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT - LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [debug](https://www.npmjs.com/package/debug) (version 4.3.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 TJ Holowaychuk Copyright (c) 2018-2021 Josh Junon - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [debug](https://www.npmjs.com/package/debug) (version 4.3.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 TJ Holowaychuk Copyright (c) 2018-2021 Josh Junon - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [debug](https://www.npmjs.com/package/debug) (version 4.3.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 TJ Holowaychuk Copyright (c) 2018-2021 Josh Junon - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [decompress-response](https://www.npmjs.com/package/decompress-response) (version 5.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [deep-equal](https://www.npmjs.com/package/deep-equal) (version 2.2.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2012, 2013, 2014 James Halliday , 2009 Thomas Robinson <280north.com> - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18521,102 +18203,98 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [deep-extend](https://www.npmjs.com/package/deep-extend) (version 0.6.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013-2018, Viacheslav Lotsmanov - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [default-browser-id](https://www.npmjs.com/package/default-browser-id) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [default-browser](https://www.npmjs.com/package/default-browser) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [define-data-property](https://www.npmjs.com/package/define-data-property) (version 1.1.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2023 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18624,51 +18302,49 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [define-lazy-prop](https://www.npmjs.com/package/define-lazy-prop) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [define-properties](https://www.npmjs.com/package/define-properties) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (C) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18677,38 +18353,33 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [degenerator](https://www.npmjs.com/package/degenerator) (version 5.0.1) - License tags: MIT - + ### [delegate-events](https://www.npmjs.com/package/delegate-events) (version 1.1.1) - License tags: MIT - + ### [delegate](https://www.npmjs.com/package/delegate) (version 3.2.0) - License tags: MIT - + ### [depd](https://www.npmjs.com/package/depd) (version 2.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2018 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -18716,10 +18387,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -18727,32 +18398,32 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [destroy](https://www.npmjs.com/package/destroy) (version 1.2.0) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + The MIT License (MIT) - + Copyright (c) 2014 Jonathan Ong me@jongleberry.com Copyright (c) 2015-2022 Douglas Christopher Wilson doug@somethingdoug.com - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18760,31 +18431,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [detect-libc](https://www.npmjs.com/package/detect-libc) (version 2.0.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -18792,24 +18462,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -18817,7 +18487,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -18831,18 +18501,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -18858,24 +18528,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -18892,14 +18562,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -18907,12 +18577,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -18922,7 +18592,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -18934,7 +18604,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -18945,11 +18615,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -18958,45 +18628,45 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [diff-match-patch](https://www.npmjs.com/package/diff-match-patch) (version 1.0.5) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -19004,24 +18674,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -19029,7 +18699,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -19043,18 +18713,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -19070,24 +18740,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -19104,14 +18774,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -19119,12 +18789,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -19134,7 +18804,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -19146,7 +18816,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -19157,11 +18827,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -19170,45 +18840,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) (version 0.5.9) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2020 Sebastian Silbermann - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19216,31 +18884,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [dom-helpers](https://www.npmjs.com/package/dom-helpers) (version 5.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jason Quense - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19249,36 +18916,33 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [domify](https://www.npmjs.com/package/domify) (version 1.4.1) - License tags: MIT - + ### [dset](https://www.npmjs.com/package/dset) (version 3.1.4) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Luke Edwards (lukeed.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19286,31 +18950,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ee-first](https://www.npmjs.com/package/ee-first) (version 1.1.1) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + The MIT License (MIT) - + Copyright (c) 2014 Jonathan Ong me@jongleberry.com - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19318,51 +18982,49 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [electron-dl](https://www.npmjs.com/package/electron-dl) (version 3.5.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [electron-squirrel-startup](https://www.npmjs.com/package/electron-squirrel-startup) (version 1.0.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -19370,24 +19032,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -19395,7 +19057,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -19409,18 +19071,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -19436,24 +19098,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -19470,14 +19132,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -19485,12 +19147,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -19500,7 +19162,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -19512,7 +19174,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -19523,11 +19185,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -19536,34 +19198,33 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [electron](https://www.npmjs.com/package/electron) (version 30.5.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) Electron contributors Copyright (c) 2013-2020 GitHub Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -19571,10 +19232,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -19582,21 +19243,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [encodeurl](https://www.npmjs.com/package/encodeurl) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -19604,10 +19264,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -19615,21 +19275,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [encodeurl](https://www.npmjs.com/package/encodeurl) (version 2.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -19637,10 +19296,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -19648,31 +19307,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [end-of-stream](https://www.npmjs.com/package/end-of-stream) (version 1.4.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19681,50 +19339,47 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [ensure-error](https://www.npmjs.com/package/ensure-error) (version 3.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [es-define-property](https://www.npmjs.com/package/es-define-property) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2024 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19732,31 +19387,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [es-errors](https://www.npmjs.com/package/es-errors) (version 1.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2024 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19764,31 +19418,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [es-get-iterator](https://www.npmjs.com/package/es-get-iterator) (version 1.1.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19796,43 +19449,41 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [escape-goat](https://www.npmjs.com/package/escape-goat) (version 2.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [escape-html](https://www.npmjs.com/package/escape-html) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2013 TJ Holowaychuk Copyright (c) 2015 Andreas Lubbe Copyright (c) 2015 Tiancheng "Timothy" Gu - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -19840,10 +19491,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -19851,31 +19502,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [escape-string-regexp](https://www.npmjs.com/package/escape-string-regexp) (version 1.0.5) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19883,28 +19533,27 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [escodegen](https://www.npmjs.com/package/escodegen) (version 2.1.0) - License tags: BSD-2-Clause License files: - -- LICENSE.BSD: +* LICENSE.BSD: Copyright (C) 2012 Yusuke Suzuki (twitter: @Constellation) and other contributors. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -19915,28 +19564,27 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [esprima](https://www.npmjs.com/package/esprima) (version 4.0.1) - License tags: BSD-2-Clause License files: - -- LICENSE.BSD: +* LICENSE.BSD: Copyright JS Foundation and other contributors, https://js.foundation/ - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -19947,26 +19595,25 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [estraverse](https://www.npmjs.com/package/estraverse) (version 5.2.0) - License tags: BSD-2-Clause License files: - -- LICENSE.BSD: +* LICENSE.BSD: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -19977,26 +19624,25 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [esutils](https://www.npmjs.com/package/esutils) (version 2.0.3) - License tags: BSD-2-Clause License files: - -- LICENSE.BSD: +* LICENSE.BSD: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -20007,21 +19653,20 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [etag](https://www.npmjs.com/package/etag) (version 1.8.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20029,10 +19674,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20040,31 +19685,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [eventemitter3](https://www.npmjs.com/package/eventemitter3) (version 1.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Arnout Kazemier - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20072,31 +19716,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [eventemitter3](https://www.npmjs.com/package/eventemitter3) (version 4.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Arnout Kazemier - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20104,77 +19747,73 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [events-mixin](https://www.npmjs.com/package/events-mixin) (version 1.3.0) - License tags: MIT - + ### [execa](https://www.npmjs.com/package/execa) (version 5.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [execa](https://www.npmjs.com/package/execa) (version 7.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [expand-template](https://www.npmjs.com/package/expand-template) (version 2.0.3) - License tags: (MIT OR WTFPL) License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2018 Lars-Magnus Skog - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20183,22 +19822,20 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [express](https://www.npmjs.com/package/express) (version 4.21.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2009-2014 TJ Holowaychuk Copyright (c) 2013-2014 Roman Shtylman Copyright (c) 2014-2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20206,10 +19843,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20217,31 +19854,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ext-list](https://www.npmjs.com/package/ext-list) (version 2.2.2) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Kevin Mårtensson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20249,31 +19885,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ext-name](https://www.npmjs.com/package/ext-name) (version 5.0.0) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Kevin Mårtensson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20281,37 +19916,35 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [facepaint](https://www.npmjs.com/package/facepaint) (version 1.2.1) - License tags: MIT - + ### [fast-deep-equal](https://www.npmjs.com/package/fast-deep-equal) (version 2.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2017 Evgeny Poberezkin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20319,31 +19952,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fast-memoize](https://www.npmjs.com/package/fast-memoize) (version 2.5.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2016 Caio Gondim - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20351,31 +19983,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fast-xml-parser](https://www.npmjs.com/package/fast-xml-parser) (version 4.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2017 Amit Kumar Gupta - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20383,31 +20014,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fetch-blob](https://www.npmjs.com/package/fetch-blob) (version 3.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 David Frank - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20415,19 +20045,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [file-uri-to-path](https://www.npmjs.com/package/file-uri-to-path) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20435,10 +20064,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20446,21 +20075,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [finalhandler](https://www.npmjs.com/package/finalhandler) (version 1.3.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2022 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20468,10 +20096,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20479,51 +20107,49 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [first-chunk-stream](https://www.npmjs.com/package/first-chunk-stream) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [focus-trap-react](https://www.npmjs.com/package/focus-trap-react) (version 9.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 David Clark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20531,31 +20157,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [focus-trap](https://www.npmjs.com/package/focus-trap) (version 6.9.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015-2016 David Clark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20563,31 +20189,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [for-each](https://www.npmjs.com/package/for-each) (version 0.3.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2012 Raynos. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20595,31 +20220,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [formdata-polyfill](https://www.npmjs.com/package/formdata-polyfill) (version 4.0.10) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Jimmy Karl Roland Wärting - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20627,21 +20252,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [forwarded](https://www.npmjs.com/package/forwarded) (version 0.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20649,10 +20273,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20660,22 +20284,21 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fresh](https://www.npmjs.com/package/fresh) (version 0.5.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012 TJ Holowaychuk Copyright (c) 2016-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20683,10 +20306,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20694,31 +20317,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fs-constants](https://www.npmjs.com/package/fs-constants) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2018 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20726,55 +20348,53 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fs-extra](https://www.npmjs.com/package/fs-extra) (version 11.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2011-2017 JP Richardson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [function-bind](https://www.npmjs.com/package/function-bind) (version 1.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2013 Raynos. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20782,31 +20402,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [functions-have-names](https://www.npmjs.com/package/functions-have-names) (version 1.2.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20814,31 +20434,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fuse.js](https://www.npmjs.com/package/fuse.js) (version 6.5.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -20846,24 +20465,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -20871,7 +20490,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -20885,18 +20504,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -20912,24 +20531,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -20946,14 +20565,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -20961,12 +20580,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -20976,7 +20595,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -20988,7 +20607,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -20999,11 +20618,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -21012,63 +20631,61 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2017 Kirollos Risk - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [gensync](https://www.npmjs.com/package/gensync) (version 1.0.0-beta.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2018 Logan Smyth - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [get-intrinsic](https://www.npmjs.com/package/get-intrinsic) (version 1.2.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21076,41 +20693,39 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [get-stream](https://www.npmjs.com/package/get-stream) (version 6.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [get-uri](https://www.npmjs.com/package/get-uri) (version 6.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -21118,10 +20733,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -21130,85 +20745,80 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [github-from-package](https://www.npmjs.com/package/github-from-package) (version 0.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: This software is released under the MIT license: - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [globals](https://www.npmjs.com/package/globals) (version 11.12.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [good-listener](https://www.npmjs.com/package/good-listener) (version 1.2.2) - License tags: MIT - + ### [gopd](https://www.npmjs.com/package/gopd) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2022 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21216,25 +20826,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [graceful-fs](https://www.npmjs.com/package/graceful-fs) (version 4.2.11) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -21242,71 +20851,68 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [has-flag](https://www.npmjs.com/package/has-flag) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-flag](https://www.npmjs.com/package/has-flag) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-property-descriptors](https://www.npmjs.com/package/has-property-descriptors) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2022 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21314,31 +20920,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-proto](https://www.npmjs.com/package/has-proto) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2022 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21346,31 +20951,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-symbols](https://www.npmjs.com/package/has-symbols) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21378,31 +20982,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-tostringtag](https://www.npmjs.com/package/has-tostringtag) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21410,31 +21013,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [hasown](https://www.npmjs.com/package/hasown) (version 2.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Jordan Harband and contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21442,36 +21044,35 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [heap-js](https://www.npmjs.com/package/heap-js) (version 2.3.0) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: BSD 3-Clause License - + Copyright (c) 2017, Ignacio Lago All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -21482,36 +21083,35 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [highlight.js](https://www.npmjs.com/package/highlight.js) (version 11.5.1) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: BSD 3-Clause License - + Copyright (c) 2006, Ivan Sagalaev. All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -21522,31 +21122,30 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [highlightjs-graphql](https://www.npmjs.com/package/highlightjs-graphql) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 David Peek - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21554,27 +21153,26 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [hoist-non-react-statics](https://www.npmjs.com/package/hoist-non-react-statics) (version 3.3.2) - License tags: BSD-3-Clause License files: - -- LICENSE.md: +* LICENSE.md: Software License Agreement (BSD License) ======================================== - + Copyright (c) 2015, Yahoo! Inc. All rights reserved. ---------------------------------------------------- - + Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, @@ -21583,7 +21181,7 @@ License files: * Neither the name of Yahoo! Inc. nor the names of YUI's contributors may be used to endorse or promote products derived from this software without specific prior written permission of Yahoo! Inc. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -21594,32 +21192,32 @@ License files: ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [http-errors](https://www.npmjs.com/package/http-errors) (version 2.0.0) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + The MIT License (MIT) - + Copyright (c) 2014 Jonathan Ong me@jongleberry.com Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.com - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21627,21 +21225,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [http-proxy-agent](https://www.npmjs.com/package/http-proxy-agent) (version 7.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -21649,10 +21246,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -21660,21 +21257,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [https-proxy-agent](https://www.npmjs.com/package/https-proxy-agent) (version 7.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -21682,10 +21278,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -21694,30 +21290,28 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [human-signals](https://www.npmjs.com/package/human-signals) (version 2.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -21725,24 +21319,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -21750,7 +21344,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -21764,18 +21358,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -21791,24 +21385,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -21825,14 +21419,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -21840,12 +21434,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -21855,7 +21449,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -21867,7 +21461,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -21878,11 +21472,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -21891,45 +21485,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 ehmicky - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [human-signals](https://www.npmjs.com/package/human-signals) (version 4.3.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -21937,24 +21530,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -21962,7 +21555,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -21976,18 +21569,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -22003,24 +21596,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -22037,14 +21630,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -22052,12 +21645,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -22067,7 +21660,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -22079,7 +21672,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -22090,11 +21683,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -22103,33 +21696,32 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2022 ehmicky - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [iconv-lite](https://www.npmjs.com/package/iconv-lite) (version 0.4.24) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2011 Alexander Shtuchkin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -22137,10 +21729,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -22148,53 +21740,51 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [ieee754](https://www.npmjs.com/package/ieee754) (version 1.2.1) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright 2008 Fair Oaks Labs, Inc. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [imurmurhash](https://www.npmjs.com/package/imurmurhash) (version 0.1.4) - License tags: MIT - + ### [inherits](https://www.npmjs.com/package/inherits) (version 2.0.4) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, @@ -22202,25 +21792,25 @@ License files: LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + - + ### [ini](https://www.npmjs.com/package/ini) (version 1.3.8) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -22228,31 +21818,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [internal-slot](https://www.npmjs.com/package/internal-slot) (version 1.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22260,31 +21849,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [interruptor](https://www.npmjs.com/package/interruptor) (version 1.0.2) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -22292,24 +21881,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -22317,7 +21906,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -22331,18 +21920,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -22358,24 +21947,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -22392,14 +21981,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -22407,12 +21996,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -22422,7 +22011,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -22434,7 +22023,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -22445,45 +22034,45 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [ip-address](https://www.npmjs.com/package/ip-address) (version 9.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2011 by Beau Gunderson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22491,29 +22080,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ipaddr.js](https://www.npmjs.com/package/ipaddr.js) (version 1.9.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2011-2017 whitequark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22521,29 +22109,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ipaddr.js](https://www.npmjs.com/package/ipaddr.js) (version 2.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2011-2017 whitequark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22551,68 +22138,65 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ipv6-normalize](https://www.npmjs.com/package/ipv6-normalize) (version 1.0.1) - License tags: MIT - + ### [is-arguments](https://www.npmjs.com/package/is-arguments) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-array-buffer](https://www.npmjs.com/package/is-array-buffer) (version 3.0.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2015 Chen Gengyuan, Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22620,31 +22204,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-bigint](https://www.npmjs.com/package/is-bigint) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2018 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22652,31 +22235,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-boolean-object](https://www.npmjs.com/package/is-boolean-object) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22684,31 +22266,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-callable](https://www.npmjs.com/package/is-callable) (version 1.2.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22716,31 +22298,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-date-object](https://www.npmjs.com/package/is-date-object) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22748,97 +22330,93 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-docker](https://www.npmjs.com/package/is-docker) (version 2.2.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-docker](https://www.npmjs.com/package/is-docker) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-electron-renderer](https://www.npmjs.com/package/is-electron-renderer) (version 2.0.1) - License tags: MIT - + ### [is-inside-container](https://www.npmjs.com/package/is-inside-container) (version 1.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-map](https://www.npmjs.com/package/is-map) (version 2.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22846,31 +22424,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-number-object](https://www.npmjs.com/package/is-number-object) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22878,31 +22455,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-plain-obj](https://www.npmjs.com/package/is-plain-obj) (version 1.1.0) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22910,62 +22487,60 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-regex](https://www.npmjs.com/package/is-regex) (version 1.1.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-set](https://www.npmjs.com/package/is-set) (version 2.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22973,31 +22548,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-shared-array-buffer](https://www.npmjs.com/package/is-shared-array-buffer) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23005,71 +22579,68 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-stream](https://www.npmjs.com/package/is-stream) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-stream](https://www.npmjs.com/package/is-stream) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-string](https://www.npmjs.com/package/is-string) (version 1.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23077,31 +22648,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-symbol](https://www.npmjs.com/package/is-symbol) (version 1.0.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23109,51 +22680,50 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-utf8](https://www.npmjs.com/package/is-utf8) (version 0.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (C) 2014 Wei Fanzhe - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-weakmap](https://www.npmjs.com/package/is-weakmap) (version 2.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23161,31 +22731,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-weakset](https://www.npmjs.com/package/is-weakset) (version 2.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23193,51 +22762,49 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-wsl](https://www.npmjs.com/package/is-wsl) (version 2.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [isarray](https://www.npmjs.com/package/isarray) (version 2.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2013 Julian Gruber - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23245,25 +22812,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [isexe](https://www.npmjs.com/package/isexe) (version 2.0.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -23271,31 +22837,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [javascript-stringify](https://www.npmjs.com/package/javascript-stringify) (version 2.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013 Blake Embrey (hello@blakeembrey.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23303,31 +22868,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [jose](https://www.npmjs.com/package/jose) (version 4.15.5) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2018 Filip Skokan - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23335,31 +22899,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [js-tokens](https://www.npmjs.com/package/js-tokens) (version 4.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23367,31 +22930,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [js-yaml](https://www.npmjs.com/package/js-yaml) (version 3.14.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (C) 2011-2015 by Vitaly Puzrin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23399,31 +22961,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [js-yaml](https://www.npmjs.com/package/js-yaml) (version 4.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (C) 2011-2015 by Vitaly Puzrin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23431,22 +22992,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [jsbn](https://www.npmjs.com/package/jsbn) (version 1.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Licensing --------- - + This software is covered under the following copyright: - + /* * Copyright (c) 2003-2005 Tom Wu * All Rights Reserved. @@ -23462,9 +23022,9 @@ License files: * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. * * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER @@ -23477,24 +23037,23 @@ License files: * All redistributions must retain an intact copy of this copyright notice * and disclaimer. */ - + Address all questions regarding this license to: - + Tom Wu tjw@cs.Stanford.EDU + - + ### [jsesc](https://www.npmjs.com/package/jsesc) (version 2.5.2) - License tags: MIT License files: - -- LICENSE-MIT.txt: +* LICENSE-MIT.txt: Copyright Mathias Bynens - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -23502,10 +23061,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -23513,31 +23072,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [json5](https://www.npmjs.com/package/json5) (version 2.2.3) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2012-2018 Aseem Kishore, and [others]. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23545,65 +23103,62 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + [others]: https://github.com/json5/json5/contributors + - + ### [jsondiffpatch](https://www.npmjs.com/package/jsondiffpatch) (version 0.5.0) - License tags: MIT - + ### [jsonfile](https://www.npmjs.com/package/jsonfile) (version 6.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2015, JP Richardson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [kerberos](https://www.npmjs.com/package/kerberos) (version 2.1.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -23611,24 +23166,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -23636,7 +23191,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -23650,18 +23205,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -23677,24 +23232,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -23711,14 +23266,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -23726,12 +23281,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -23741,7 +23296,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -23753,7 +23308,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -23764,11 +23319,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -23777,39 +23332,37 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [key-tree-store](https://www.npmjs.com/package/key-tree-store) (version 1.3.0) - License tags: MIT - + ### [keytar](https://www.npmjs.com/package/keytar) (version 7.9.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) 2013 GitHub Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -23817,10 +23370,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -23828,32 +23381,31 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [leaflet-defaulticon-compatibility](https://www.npmjs.com/package/leaflet-defaulticon-compatibility) (version 0.1.1) - License tags: BSD-2-Clause License files: - -- LICENSE: +* LICENSE: BSD 2-Clause License - + Copyright (c) 2018, ghybs All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -23864,93 +23416,68 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [leaflet-draw](https://www.npmjs.com/package/leaflet-draw) (version 1.0.4) - License tags: MIT - + ### [leaflet](https://www.npmjs.com/package/leaflet) (version 1.5.1) - License tags: BSD-2-Clause License files: +* LICENSE: + + Copyright (c) 2010-2018, Vladimir Agafonkin + Copyright (c) 2010-2011, CloudMade + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + -- LICENSE: - - Copyright (c) 2010-2018, Vladimir Agafonkin - - Copyright (c) 2010-2011, CloudMade - - All rights reserved. - - - - Redistribution and use in source and binary forms, with or without modification, are - - permitted provided that the following conditions are met: - - - - 1. Redistributions of source code must retain the above copyright notice, this list of - - conditions and the following disclaimer. - - - - 2. Redistributions in binary form must reproduce the above copyright notice, this list - - of conditions and the following disclaimer in the documentation and/or other materials - - provided with the distribution. - - - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - - COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - - TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ### [local-links](https://www.npmjs.com/package/local-links) (version 1.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Luke Karrys - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23958,31 +23485,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash-es](https://www.npmjs.com/package/lodash-es) (version 4.17.21) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright OpenJS Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -23990,10 +23516,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24001,36 +23527,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - - -### [lodash.\_arrayeach](https://www.npmjs.com/package/lodash._arrayeach) (version 3.0.0) + +### [lodash._arrayeach](https://www.npmjs.com/package/lodash._arrayeach) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24038,10 +23563,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24049,21 +23574,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_arraymap](https://www.npmjs.com/package/lodash._arraymap) (version 3.0.0) + +### [lodash._arraymap](https://www.npmjs.com/package/lodash._arraymap) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24071,10 +23595,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24082,21 +23606,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseassign](https://www.npmjs.com/package/lodash._baseassign) (version 3.2.0) + +### [lodash._baseassign](https://www.npmjs.com/package/lodash._baseassign) (version 3.2.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24104,10 +23627,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24115,21 +23638,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basecallback](https://www.npmjs.com/package/lodash._basecallback) (version 3.3.1) + +### [lodash._basecallback](https://www.npmjs.com/package/lodash._basecallback) (version 3.3.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24137,10 +23659,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24148,21 +23670,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basecopy](https://www.npmjs.com/package/lodash._basecopy) (version 3.0.1) + +### [lodash._basecopy](https://www.npmjs.com/package/lodash._basecopy) (version 3.0.1) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24170,10 +23691,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24181,21 +23702,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basedifference](https://www.npmjs.com/package/lodash._basedifference) (version 3.0.3) + +### [lodash._basedifference](https://www.npmjs.com/package/lodash._basedifference) (version 3.0.3) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24203,10 +23723,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24214,21 +23734,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseeach](https://www.npmjs.com/package/lodash._baseeach) (version 3.0.4) + +### [lodash._baseeach](https://www.npmjs.com/package/lodash._baseeach) (version 3.0.4) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24236,10 +23755,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24247,21 +23766,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basefind](https://www.npmjs.com/package/lodash._basefind) (version 3.0.0) + +### [lodash._basefind](https://www.npmjs.com/package/lodash._basefind) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24269,10 +23787,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24280,21 +23798,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basefindindex](https://www.npmjs.com/package/lodash._basefindindex) (version 3.6.0) + +### [lodash._basefindindex](https://www.npmjs.com/package/lodash._basefindindex) (version 3.6.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24302,10 +23819,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24313,21 +23830,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseflatten](https://www.npmjs.com/package/lodash._baseflatten) (version 3.1.4) + +### [lodash._baseflatten](https://www.npmjs.com/package/lodash._baseflatten) (version 3.1.4) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24335,10 +23851,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24346,21 +23862,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basefor](https://www.npmjs.com/package/lodash._basefor) (version 3.0.3) + +### [lodash._basefor](https://www.npmjs.com/package/lodash._basefor) (version 3.0.3) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24368,10 +23883,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24379,21 +23894,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseget](https://www.npmjs.com/package/lodash._baseget) (version 3.7.2) + +### [lodash._baseget](https://www.npmjs.com/package/lodash._baseget) (version 3.7.2) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24401,10 +23915,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24412,21 +23926,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseindexof](https://www.npmjs.com/package/lodash._baseindexof) (version 3.1.0) + +### [lodash._baseindexof](https://www.npmjs.com/package/lodash._baseindexof) (version 3.1.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24434,10 +23947,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24445,21 +23958,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseisequal](https://www.npmjs.com/package/lodash._baseisequal) (version 3.0.7) + +### [lodash._baseisequal](https://www.npmjs.com/package/lodash._baseisequal) (version 3.0.7) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24467,32 +23979,31 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + -### [lodash.\_baseslice](https://www.npmjs.com/package/lodash._baseslice) (version 3.0.3) + +### [lodash._baseslice](https://www.npmjs.com/package/lodash._baseslice) (version 3.0.3) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24500,10 +24011,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24511,21 +24022,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseuniq](https://www.npmjs.com/package/lodash._baseuniq) (version 3.0.3) + +### [lodash._baseuniq](https://www.npmjs.com/package/lodash._baseuniq) (version 3.0.3) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24533,10 +24043,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24544,21 +24054,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basevalues](https://www.npmjs.com/package/lodash._basevalues) (version 3.0.0) + +### [lodash._basevalues](https://www.npmjs.com/package/lodash._basevalues) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24566,10 +24075,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24577,21 +24086,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_bindcallback](https://www.npmjs.com/package/lodash._bindcallback) (version 3.0.1) + +### [lodash._bindcallback](https://www.npmjs.com/package/lodash._bindcallback) (version 3.0.1) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24599,10 +24107,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24610,21 +24118,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_cacheindexof](https://www.npmjs.com/package/lodash._cacheindexof) (version 3.0.2) + +### [lodash._cacheindexof](https://www.npmjs.com/package/lodash._cacheindexof) (version 3.0.2) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24632,10 +24139,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24643,21 +24150,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_createassigner](https://www.npmjs.com/package/lodash._createassigner) (version 3.1.1) + +### [lodash._createassigner](https://www.npmjs.com/package/lodash._createassigner) (version 3.1.1) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24665,10 +24171,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24676,21 +24182,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_createcache](https://www.npmjs.com/package/lodash._createcache) (version 3.1.2) + +### [lodash._createcache](https://www.npmjs.com/package/lodash._createcache) (version 3.1.2) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24698,10 +24203,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24709,21 +24214,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_createwrapper](https://www.npmjs.com/package/lodash._createwrapper) (version 3.2.0) + +### [lodash._createwrapper](https://www.npmjs.com/package/lodash._createwrapper) (version 3.2.0) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24731,10 +24235,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24742,21 +24246,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_getnative](https://www.npmjs.com/package/lodash._getnative) (version 3.9.1) + +### [lodash._getnative](https://www.npmjs.com/package/lodash._getnative) (version 3.9.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24764,10 +24267,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24775,21 +24278,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_invokepath](https://www.npmjs.com/package/lodash._invokepath) (version 3.7.2) + +### [lodash._invokepath](https://www.npmjs.com/package/lodash._invokepath) (version 3.7.2) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24797,10 +24299,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24808,21 +24310,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_isiterateecall](https://www.npmjs.com/package/lodash._isiterateecall) (version 3.0.9) + +### [lodash._isiterateecall](https://www.npmjs.com/package/lodash._isiterateecall) (version 3.0.9) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24830,10 +24331,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24841,21 +24342,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_pickbyarray](https://www.npmjs.com/package/lodash._pickbyarray) (version 3.0.2) + +### [lodash._pickbyarray](https://www.npmjs.com/package/lodash._pickbyarray) (version 3.0.2) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24863,10 +24363,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24874,21 +24374,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_pickbycallback](https://www.npmjs.com/package/lodash._pickbycallback) (version 3.0.0) + +### [lodash._pickbycallback](https://www.npmjs.com/package/lodash._pickbycallback) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24896,10 +24395,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24907,21 +24406,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_replaceholders](https://www.npmjs.com/package/lodash._replaceholders) (version 3.0.0) + +### [lodash._replaceholders](https://www.npmjs.com/package/lodash._replaceholders) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24929,10 +24427,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24940,33 +24438,32 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_root](https://www.npmjs.com/package/lodash._root) (version 3.0.1) + +### [lodash._root](https://www.npmjs.com/package/lodash._root) (version 3.0.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -24974,21 +24471,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_topath](https://www.npmjs.com/package/lodash._topath) (version 3.8.1) + +### [lodash._topath](https://www.npmjs.com/package/lodash._topath) (version 3.8.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24996,10 +24492,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25007,21 +24503,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.assign](https://www.npmjs.com/package/lodash.assign) (version 3.2.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25029,10 +24524,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25040,21 +24535,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.before](https://www.npmjs.com/package/lodash.before) (version 3.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25062,10 +24556,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25073,21 +24567,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.bind](https://www.npmjs.com/package/lodash.bind) (version 3.1.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25095,10 +24588,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25106,21 +24599,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.difference](https://www.npmjs.com/package/lodash.difference) (version 3.2.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25128,10 +24620,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25139,21 +24631,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.escape](https://www.npmjs.com/package/lodash.escape) (version 3.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25161,10 +24652,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25172,21 +24663,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.find](https://www.npmjs.com/package/lodash.find) (version 3.2.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25194,10 +24684,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25205,21 +24695,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.flatten](https://www.npmjs.com/package/lodash.flatten) (version 3.0.2) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25227,10 +24716,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25238,21 +24727,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.foreach](https://www.npmjs.com/package/lodash.foreach) (version 3.0.3) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25260,10 +24748,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25271,21 +24759,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.forown](https://www.npmjs.com/package/lodash.forown) (version 3.0.2) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25293,10 +24780,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25304,21 +24791,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.get](https://www.npmjs.com/package/lodash.get) (version 3.7.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25326,10 +24812,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25337,21 +24823,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.has](https://www.npmjs.com/package/lodash.has) (version 3.2.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25359,10 +24844,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25370,21 +24855,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.includes](https://www.npmjs.com/package/lodash.includes) (version 3.1.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25392,10 +24876,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25403,21 +24887,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.invoke](https://www.npmjs.com/package/lodash.invoke) (version 3.2.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25425,10 +24908,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25436,31 +24919,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isarguments](https://www.npmjs.com/package/lodash.isarguments) (version 3.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright jQuery Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25468,10 +24950,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25479,36 +24961,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lodash.isarray](https://www.npmjs.com/package/lodash.isarray) (version 3.0.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25516,10 +24997,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25527,21 +25008,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isdate](https://www.npmjs.com/package/lodash.isdate) (version 3.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25549,10 +25029,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25560,21 +25040,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isempty](https://www.npmjs.com/package/lodash.isempty) (version 3.0.4) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25582,10 +25061,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25593,21 +25072,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isequal](https://www.npmjs.com/package/lodash.isequal) (version 3.0.4) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25615,10 +25093,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25626,31 +25104,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isfunction](https://www.npmjs.com/package/lodash.isfunction) (version 3.0.9) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright JS Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25658,10 +25135,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25669,36 +25146,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lodash.isobject](https://www.npmjs.com/package/lodash.isobject) (version 3.0.2) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25706,10 +25182,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25717,21 +25193,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isstring](https://www.npmjs.com/package/lodash.isstring) (version 3.0.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25739,10 +25214,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25750,31 +25225,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.istypedarray](https://www.npmjs.com/package/lodash.istypedarray) (version 3.0.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright jQuery Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25782,10 +25256,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25793,36 +25267,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lodash.keys](https://www.npmjs.com/package/lodash.keys) (version 3.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25830,10 +25303,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25841,21 +25314,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.keysin](https://www.npmjs.com/package/lodash.keysin) (version 3.0.8) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25863,10 +25335,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25874,21 +25346,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.last](https://www.npmjs.com/package/lodash.last) (version 3.0.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25896,10 +25367,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25907,31 +25378,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.merge](https://www.npmjs.com/package/lodash.merge) (version 4.6.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright OpenJS Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25939,10 +25409,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25950,36 +25420,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lodash.omit](https://www.npmjs.com/package/lodash.omit) (version 3.1.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25987,10 +25456,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25998,21 +25467,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.once](https://www.npmjs.com/package/lodash.once) (version 3.0.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26020,10 +25488,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26031,21 +25499,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.pairs](https://www.npmjs.com/package/lodash.pairs) (version 3.0.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26053,10 +25520,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26064,21 +25531,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.pick](https://www.npmjs.com/package/lodash.pick) (version 3.1.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26086,10 +25552,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26097,21 +25563,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.restparam](https://www.npmjs.com/package/lodash.restparam) (version 3.6.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26119,10 +25584,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26130,21 +25595,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.result](https://www.npmjs.com/package/lodash.result) (version 3.1.2) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26152,10 +25616,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26163,21 +25627,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.union](https://www.npmjs.com/package/lodash.union) (version 3.1.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26185,10 +25648,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26196,21 +25659,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.uniqueid](https://www.npmjs.com/package/lodash.uniqueid) (version 3.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26218,10 +25680,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26229,31 +25691,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash](https://www.npmjs.com/package/lodash) (version 4.17.21) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright OpenJS Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26261,10 +25722,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26272,40 +25733,39 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lru-cache](https://www.npmjs.com/package/lru-cache) (version 11.0.1) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) 2010-2023 Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -26313,25 +25773,24 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [lru-cache](https://www.npmjs.com/package/lru-cache) (version 5.1.1) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -26339,25 +25798,24 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [lru-cache](https://www.npmjs.com/package/lru-cache) (version 6.0.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -26365,31 +25823,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [lz-string](https://www.npmjs.com/package/lz-string) (version 1.5.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2013 pieroxy - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26397,31 +25854,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [marky](https://www.npmjs.com/package/marky) (version 1.2.2) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the @@ -26429,24 +25885,24 @@ License files: entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, @@ -26454,7 +25910,7 @@ License files: License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for @@ -26468,22 +25924,22 @@ License files: discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. - + Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. - + Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent @@ -26498,24 +25954,24 @@ License files: contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. - + You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and - + 2. You must cause any modified files to carry prominent notices stating that You changed the files; and - + 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding @@ -26530,32 +25986,32 @@ License files: distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. - + Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. - + This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. - + Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, @@ -26564,9 +26020,9 @@ License files: FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. - + In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed @@ -26577,9 +26033,9 @@ License files: for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. - + While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with @@ -26589,11 +26045,11 @@ License files: each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be @@ -26601,50 +26057,49 @@ License files: recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2016 Nolan Lawson - - + + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [matches-selector](https://www.npmjs.com/package/matches-selector) (version 0.0.1) - License tags: MIT - + ### [matches-selector](https://www.npmjs.com/package/matches-selector) (version 1.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2013 Forbes Lindesay - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26653,20 +26108,18 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [media-typer](https://www.npmjs.com/package/media-typer) (version 0.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26674,10 +26127,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26685,31 +26138,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [memoize-one](https://www.npmjs.com/package/memoize-one) (version 5.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Alexander Reardon - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26718,30 +26170,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [memory-pager](https://www.npmjs.com/package/memory-pager) (version 1.5.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2017 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26749,22 +26199,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [merge-descriptors](https://www.npmjs.com/package/merge-descriptors) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Jonathan Ong Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26772,10 +26221,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26783,31 +26232,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [merge-stream](https://www.npmjs.com/package/merge-stream) (version 2.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Stephen Sugden (stephensugden.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26815,22 +26263,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [methods](https://www.npmjs.com/package/methods) (version 1.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013-2014 TJ Holowaychuk Copyright (c) 2015-2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26838,10 +26285,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26849,22 +26296,22 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [mime-db](https://www.npmjs.com/package/mime-db) (version 1.52.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2015-2022 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26872,10 +26319,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26883,22 +26330,21 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mime-types](https://www.npmjs.com/package/mime-types) (version 2.1.35) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26906,10 +26352,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26917,31 +26363,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mime](https://www.npmjs.com/package/mime) (version 1.6.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2010 Benjamin Thomas, Robert Kieffer - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26949,120 +26394,115 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mimic-fn](https://www.npmjs.com/package/mimic-fn) (version 2.1.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mimic-fn](https://www.npmjs.com/package/mimic-fn) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mimic-response](https://www.npmjs.com/package/mimic-response) (version 2.1.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [minimist](https://www.npmjs.com/package/minimist) (version 1.2.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: This software is released under the MIT license: - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mkdirp-classic](https://www.npmjs.com/package/mkdirp-classic) (version 0.5.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2020 James Halliday (mail@substack.net) and Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -27070,31 +26510,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [modify-filename](https://www.npmjs.com/package/modify-filename) (version 1.1.0) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -27102,19 +26541,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [moment](https://www.npmjs.com/package/moment) (version 2.29.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) JS Foundation and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without @@ -27123,10 +26561,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -27135,31 +26573,30 @@ License files: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mongodb-build-info](https://www.npmjs.com/package/mongodb-build-info) (version 1.7.2) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -27167,24 +26604,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -27192,7 +26629,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -27206,18 +26643,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -27233,24 +26670,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -27267,14 +26704,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -27282,12 +26719,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -27297,7 +26734,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -27309,7 +26746,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -27320,11 +26757,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -27333,45 +26770,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2016 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-client-encryption](https://www.npmjs.com/package/mongodb-client-encryption) (version 6.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -27379,24 +26815,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -27404,7 +26840,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -27418,18 +26854,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -27445,24 +26881,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -27479,14 +26915,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -27494,12 +26930,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -27509,7 +26945,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -27521,7 +26957,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -27532,11 +26968,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -27545,45 +26981,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-cloud-info](https://www.npmjs.com/package/mongodb-cloud-info) (version 2.1.2) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -27591,24 +27026,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -27616,7 +27051,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -27630,18 +27065,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -27657,24 +27092,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -27691,14 +27126,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -27706,12 +27141,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -27721,7 +27156,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -27733,7 +27168,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -27744,11 +27179,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -27757,45 +27192,45 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-connection-string-url](https://www.npmjs.com/package/mongodb-connection-string-url) (version 3.0.1) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -27803,24 +27238,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -27828,7 +27263,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -27842,18 +27277,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -27869,24 +27304,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -27903,14 +27338,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -27918,12 +27353,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -27933,7 +27368,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -27945,7 +27380,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -27956,47 +27391,48 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [mongodb-log-writer](https://www.npmjs.com/package/mongodb-log-writer) (version 1.4.2) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28004,24 +27440,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28029,7 +27465,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28043,18 +27479,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28070,24 +27506,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28104,14 +27540,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28119,12 +27555,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -28134,7 +27570,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -28146,7 +27582,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -28157,78 +27593,77 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [mongodb-ns](https://www.npmjs.com/package/mongodb-ns) (version 2.4.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Lucas Hrabovsky - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mongodb-query-parser](https://www.npmjs.com/package/mongodb-query-parser) (version 4.2.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28236,24 +27671,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28261,7 +27696,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28275,18 +27710,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28302,24 +27737,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28336,14 +27771,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28351,12 +27786,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -28366,7 +27801,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -28378,7 +27813,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -28389,11 +27824,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -28402,45 +27837,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-redact](https://www.npmjs.com/package/mongodb-redact) (version 1.1.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28448,24 +27882,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28473,7 +27907,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28487,18 +27921,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28514,24 +27948,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28548,14 +27982,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28563,12 +27997,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -28578,7 +28012,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -28590,7 +28024,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -28601,11 +28035,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -28614,45 +28048,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-schema](https://www.npmjs.com/package/mongodb-schema) (version 12.2.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28660,24 +28093,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28685,7 +28118,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28699,18 +28132,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28726,24 +28159,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28760,14 +28193,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28775,12 +28208,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -28790,7 +28223,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -28802,7 +28235,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -28813,11 +28246,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -28826,45 +28259,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb](https://www.npmjs.com/package/mongodb) (version 6.8.0) - License tags: Apache-2.0 License files: - -- LICENSE.md: +* LICENSE.md: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28872,24 +28304,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28897,7 +28329,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28911,18 +28343,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28938,24 +28370,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28972,14 +28404,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28987,12 +28419,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -29002,7 +28434,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -29014,7 +28446,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -29025,11 +28457,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -29038,45 +28470,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [ms](https://www.npmjs.com/package/ms) (version 2.0.0) - License tags: MIT License files: - -- license.md: +* license.md: The MIT License (MIT) - + Copyright (c) 2016 Zeit, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29084,31 +28514,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ms](https://www.npmjs.com/package/ms) (version 2.1.2) - License tags: MIT License files: - -- license.md: +* license.md: The MIT License (MIT) - + Copyright (c) 2016 Zeit, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29116,31 +28545,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ms](https://www.npmjs.com/package/ms) (version 2.1.3) - License tags: MIT License files: - -- license.md: +* license.md: The MIT License (MIT) - + Copyright (c) 2020 Vercel, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29148,31 +28576,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [napi-build-utils](https://www.npmjs.com/package/napi-build-utils) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2018 inspiredware - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29180,23 +28607,22 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [negotiator](https://www.npmjs.com/package/negotiator) (version 0.6.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2014 Federico Romero Copyright (c) 2012-2014 Isaac Z. Schlueter Copyright (c) 2014-2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -29204,10 +28630,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -29215,37 +28641,35 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [netmask](https://www.npmjs.com/package/netmask) (version 2.0.2) - License tags: MIT - + ### [node-abi](https://www.npmjs.com/package/node-abi) (version 3.68.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Lukas Geiger - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29253,55 +28677,52 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [node-addon-api](https://www.npmjs.com/package/node-addon-api) (version 4.3.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) ===================== - + Copyright (c) 2017 Node.js API collaborators ----------------------------------- - + *Node.js API collaborators listed at * - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [node-domexception](https://www.npmjs.com/package/node-domexception) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021 Jimmy Wärting - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29309,31 +28730,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [node-fetch](https://www.npmjs.com/package/node-fetch) (version 2.6.7) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2016 David Frank - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29341,31 +28761,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [node-fetch](https://www.npmjs.com/package/node-fetch) (version 2.7.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2016 David Frank - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29373,31 +28793,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [node-fetch](https://www.npmjs.com/package/node-fetch) (version 3.3.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2016 - 2020 Node Fetch Team - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29405,59 +28825,57 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [npm-run-path](https://www.npmjs.com/package/npm-run-path) (version 4.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [npm-run-path](https://www.npmjs.com/package/npm-run-path) (version 5.3.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [numeral](https://www.npmjs.com/package/numeral) (version 1.5.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2014 Adam Draper - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without @@ -29466,10 +28884,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -29479,18 +28897,16 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [numeral](https://www.npmjs.com/package/numeral) (version 2.0.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2016 Adam Draper - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without @@ -29499,10 +28915,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -29511,31 +28927,30 @@ License files: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [object-assign](https://www.npmjs.com/package/object-assign) (version 4.1.1) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29543,31 +28958,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [object-hash](https://www.npmjs.com/package/object-hash) (version 2.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 object-hash contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29575,31 +28989,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [object-inspect](https://www.npmjs.com/package/object-inspect) (version 1.13.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2013 James Halliday - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29607,62 +29021,60 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [object-is](https://www.npmjs.com/package/object-is) (version 1.1.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [object-keys](https://www.npmjs.com/package/object-keys) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (C) 2013 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29671,30 +29083,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [object.assign](https://www.npmjs.com/package/object.assign) (version 4.1.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29703,30 +29113,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [oidc-token-hash](https://www.npmjs.com/package/oidc-token-hash) (version 5.0.3) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2015 Filip Skokan - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29734,22 +29142,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [on-finished](https://www.npmjs.com/package/on-finished) (version 2.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Jonathan Ong Copyright (c) 2014 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -29757,10 +29164,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -29768,25 +29175,24 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [once](https://www.npmjs.com/package/once) (version 1.4.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -29794,91 +29200,87 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [onetime](https://www.npmjs.com/package/onetime) (version 5.1.2) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [onetime](https://www.npmjs.com/package/onetime) (version 6.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [open](https://www.npmjs.com/package/open) (version 9.1.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [openid-client](https://www.npmjs.com/package/openid-client) (version 5.6.5) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2016 Filip Skokan - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29886,31 +29288,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [os-dns-native](https://www.npmjs.com/package/os-dns-native) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2021 MongoDB, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29918,21 +29319,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [pac-proxy-agent](https://www.npmjs.com/package/pac-proxy-agent) (version 7.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -29940,10 +29341,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -29951,21 +29352,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [pac-resolver](https://www.npmjs.com/package/pac-resolver) (version 7.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -29973,10 +29373,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -29985,52 +29385,50 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [papaparse](https://www.npmjs.com/package/papaparse) (version 5.3.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Matthew Holt - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [parseurl](https://www.npmjs.com/package/parseurl) (version 1.3.3) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2014-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -30038,10 +29436,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -30049,91 +29447,87 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [path-exists](https://www.npmjs.com/package/path-exists) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [path-key](https://www.npmjs.com/package/path-key) (version 3.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [path-key](https://www.npmjs.com/package/path-key) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [path-to-regexp](https://www.npmjs.com/package/path-to-regexp) (version 0.1.10) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30141,25 +29535,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [picocolors](https://www.npmjs.com/package/picocolors) (version 1.1.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: ISC License - + Copyright (c) 2021-2024 Oleksii Raspopov, Kostiantyn Denysov, Anton Verinov - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -30167,31 +29560,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [polished](https://www.npmjs.com/package/polished) (version 4.2.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2016 - 2021 Brian Hough and Maximilian Stoiber - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30199,31 +29591,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [possible-typed-array-names](https://www.npmjs.com/package/possible-typed-array-names) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2024 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30231,31 +29622,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [prebuild-install](https://www.npmjs.com/package/prebuild-install) (version 7.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30263,50 +29653,49 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [prettier](https://www.npmjs.com/package/prettier) (version 2.7.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: # Prettier license - + Prettier is released under the MIT license: - + Copyright © James Long and contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ## Licenses of bundled dependencies - + The published Prettier artifact additionally contains code with the following licenses: MIT, ISC, BSD-2-Clause, BSD-3-Clause, Apache-2.0, 0BSD - + ## Bundled dependencies - + ### @angular/compiler@v12.2.16 - + License: MIT By: angular Repository: - + ---------------------------------------- - + ### @babel/code-frame@v7.16.7 - + License: MIT By: The Babel Team Repository: - + > MIT License > > Copyright (c) 2014-present Sebastian McKenzie and other contributors @@ -30329,15 +29718,15 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### @babel/helper-validator-identifier@v7.16.7 - + License: MIT By: The Babel Team Repository: - + > MIT License > > Copyright (c) 2014-present Sebastian McKenzie and other contributors @@ -30360,15 +29749,15 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### @babel/highlight@v7.16.10 - + License: MIT By: The Babel Team Repository: - + > MIT License > > Copyright (c) 2014-present Sebastian McKenzie and other contributors @@ -30391,15 +29780,15 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### @babel/parser@v7.18.0 - + License: MIT By: The Babel Team Repository: - + > Copyright (C) 2012-2014 by various contributors (see AUTHORS) > > Permission is hereby granted, free of charge, to any person obtaining a copy @@ -30419,13 +29808,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### @glimmer/env@v0.1.7 - + License: MIT - + > Copyright (c) 2017 Martin Muñoz and contributors. > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -30445,13 +29834,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @glimmer/syntax@v0.84.2 - + License: MIT - + > Copyright (c) 2015 Tilde, Inc. > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -30471,13 +29860,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @glimmer/util@v0.84.2 - + License: MIT - + > Copyright (c) 2015 Tilde, Inc. > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -30497,22 +29886,22 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @handlebars/parser@v2.0.0 - + License: ISC Repository: - + ---------------------------------------- - + ### @iarna/toml@v2.2.5 - + License: ISC By: Rebecca Turner Repository: - + > Copyright (c) 2016, Rebecca Turner > > Permission to use, copy, modify, and/or distribute this software for any @@ -30526,13 +29915,13 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF > OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### @nodelib/fs.scandir@v2.1.5 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) Denis Malinochkin @@ -30554,13 +29943,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @nodelib/fs.stat@v2.0.5 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) Denis Malinochkin @@ -30582,13 +29971,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @nodelib/fs.walk@v1.2.8 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) Denis Malinochkin @@ -30610,14 +29999,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @typescript-eslint/types@v5.27.0 - + License: MIT Repository: - + > MIT License > > Copyright (c) 2019 TypeScript ESLint and other contributors @@ -30639,14 +30028,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @typescript-eslint/typescript-estree@v5.27.0 - + License: BSD-2-Clause Repository: - + > TypeScript ESTree > > Originally extracted from: @@ -30673,14 +30062,14 @@ License files: > ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### @typescript-eslint/visitor-keys@v5.27.0 - + License: MIT Repository: - + > MIT License > > Copyright (c) 2019 TypeScript ESLint and other contributors @@ -30702,14 +30091,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### acorn@v8.7.0 - + License: MIT Repository: - + > MIT License > > Copyright (C) 2012-2020 by various contributors (see AUTHORS) @@ -30731,14 +30120,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### acorn-jsx@v5.3.2 - + License: MIT Repository: - + > Copyright (C) 2012-2017 by Ingvar Stepanyan > > Permission is hereby granted, free of charge, to any person obtaining a copy @@ -30758,14 +30147,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### aggregate-error@v3.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -30775,14 +30164,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### angular-estree-parser@v2.5.1 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -30804,14 +30193,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### angular-html-parser@v1.8.0 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -30833,14 +30222,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### ansi-regex@v6.0.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -30850,14 +30239,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### ansi-styles@v3.2.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -30867,14 +30256,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### array-union@v2.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -30884,14 +30273,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### bail@v1.0.5 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -30914,15 +30303,15 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### balanced-match@v1.0.2 - + License: MIT By: Julian Gruber Repository: - + > (MIT) > > Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> @@ -30944,15 +30333,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### brace-expansion@v1.1.11 - + License: MIT By: Julian Gruber Repository: - + > MIT License > > Copyright (c) 2013 Julian Gruber @@ -30974,14 +30363,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### braces@v3.0.2 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-2018, Jon Schlinkert. @@ -31003,14 +30392,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### camelcase@v6.3.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31020,14 +30409,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### ccount@v1.1.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31050,13 +30439,13 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### chalk@v2.4.2 - + License: MIT - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -31066,13 +30455,13 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### chalk@v5.0.1 - + License: MIT - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31082,14 +30471,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### character-entities@v1.2.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31112,14 +30501,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### character-entities-legacy@v1.1.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31142,14 +30531,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### character-reference-invalid@v1.1.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31172,15 +30561,15 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### ci-info@v3.3.0 - + License: MIT By: Thomas Watson Steen Repository: - + > The MIT License (MIT) > > Copyright (c) 2016-2021 Thomas Watson Steen @@ -31202,14 +30591,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### clean-stack@v2.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -31219,15 +30608,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### clone@v1.0.4 - + License: MIT By: Paul Vorbach Repository: - + > Copyright © 2011-2015 Paul Vorbach > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -31246,14 +30635,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### collapse-white-space@v1.0.6 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31276,14 +30665,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### color-convert@v1.9.3 - + License: MIT By: Heather Arthur - + > Copyright (c) 2011-2016 Heather Arthur > > Permission is hereby granted, free of charge, to any person obtaining @@ -31304,72 +30693,65 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### color-name@v1.1.3 - + License: MIT By: DY Repository: - - > The MIT License (MIT) - - > Copyright (c) 2015 Dmitry Ivanov - - > - - > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - > - - > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - > - + + > The MIT License (MIT) + > Copyright (c) 2015 Dmitry Ivanov + > + > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + > + > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### commondir@v1.0.1 - + License: MIT By: James Halliday Repository: - + > The MIT License > > Copyright (c) 2013 James Halliday (mail@substack.net) > - > Permission is hereby granted, free of charge, - > to any person obtaining a copy of this software and - > associated documentation files (the "Software"), to - > deal in the Software without restriction, including - > without limitation the rights to use, copy, modify, - > merge, publish, distribute, sublicense, and/or sell - > copies of the Software, and to permit persons to whom - > the Software is furnished to do so, + > Permission is hereby granted, free of charge, + > to any person obtaining a copy of this software and + > associated documentation files (the "Software"), to + > deal in the Software without restriction, including + > without limitation the rights to use, copy, modify, + > merge, publish, distribute, sublicense, and/or sell + > copies of the Software, and to permit persons to whom + > the Software is furnished to do so, > subject to the following conditions: > - > The above copyright notice and this permission notice + > The above copyright notice and this permission notice > shall be included in all copies or substantial portions of the Software. > - > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - > OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR - > ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + > OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + > ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### concat-map@v0.0.1 - + License: MIT By: James Halliday Repository: - + > This software is released under the MIT license: > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -31388,15 +30770,15 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### cosmiconfig@v7.0.1 - + License: MIT By: David Clark Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 David Clark @@ -31418,15 +30800,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### cross-spawn@v7.0.3 - + License: MIT By: André Cruz Repository: - + > The MIT License (MIT) > > Copyright (c) 2018 Made With MOXY Lda @@ -31448,14 +30830,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### crypto-random-string@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31465,14 +30847,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### css-units-list@v1.1.0 - + License: MIT By: fisker Cheung - + > MIT License > > Copyright (c) fisker Cheung (https://www.fiskercheung.com/) @@ -31494,14 +30876,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### dashify@v2.0.0 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2015-present, Jon Schlinkert. @@ -31523,15 +30905,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### debug@v4.3.4 - + License: MIT By: Josh Junon Repository: - + > (The MIT License) > > Copyright (c) 2014-2017 TJ Holowaychuk @@ -31551,15 +30933,15 @@ License files: > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### defaults@v1.0.3 - + License: MIT By: Elijah Insua Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Elijah Insua @@ -31581,14 +30963,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### del@v6.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31598,14 +30980,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### detect-newline@v3.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -31615,14 +30997,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### diff@v5.0.0 - + License: BSD-3-Clause Repository: - + > Software License Agreement (BSD License) > > Copyright (c) 2009-2015, Kevin Decker @@ -31654,14 +31036,14 @@ License files: > DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER > IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT > OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### dir-glob@v3.0.1 - + License: MIT By: Kevin Mårtensson - + > MIT License > > Copyright (c) Kevin Mårtensson (github.com/kevva) @@ -31671,15 +31053,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### editorconfig@v0.15.3 - + License: MIT By: EditorConfig Team Repository: - + > Copyright © 2012 EditorConfig Team > > Permission is hereby granted, free of charge, to any person obtaining a copy @@ -31699,23 +31081,23 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### editorconfig-to-prettier@v0.2.0 - + License: ISC By: Joseph Frazier Repository: - + ---------------------------------------- - + ### emoji-regex@v9.2.2 - + License: MIT By: Mathias Bynens Repository: - + > Copyright Mathias Bynens > > Permission is hereby granted, free of charge, to any person obtaining @@ -31736,13 +31118,13 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### error-ex@v1.3.2 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) 2015 JD Ballard @@ -31764,14 +31146,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### escape-string-regexp@v1.0.5 - + License: MIT By: Sindre Sorhus - + > The MIT License (MIT) > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -31793,14 +31175,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### escape-string-regexp@v5.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31810,14 +31192,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### eslint-visitor-keys@v3.3.0 - + License: Apache-2.0 By: Toru Nagashima - + > Apache License > Version 2.0, January 2004 > http://www.apache.org/licenses/ @@ -32019,14 +31401,14 @@ License files: > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > See the License for the specific language governing permissions and > limitations under the License. - + ---------------------------------------- - + ### espree@v9.3.1 - + License: BSD-2-Clause By: Nicholas C. Zakas - + > BSD 2-Clause License > > Copyright (c) Open JS Foundation @@ -32052,14 +31434,14 @@ License files: > CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, > OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE > OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### esutils@v2.0.3 - + License: BSD-2-Clause Repository: - + > Redistribution and use in source and binary forms, with or without > modification, are permitted provided that the following conditions are met: > @@ -32079,14 +31461,14 @@ License files: > ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### execa@v6.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -32096,15 +31478,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### extend@v3.0.2 - + License: MIT By: Stefan Thomas Repository: - + > The MIT License (MIT) > > Copyright (c) 2014 Stefan Thomas @@ -32127,14 +31509,14 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### fast-glob@v3.2.11 - + License: MIT By: Denis Malinochkin - + > The MIT License (MIT) > > Copyright (c) Denis Malinochkin @@ -32156,15 +31538,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### fast-json-stable-stringify@v2.1.0 - + License: MIT By: James Halliday Repository: - + > This software is released under the MIT license: > > Copyright (c) 2017 Evgeny Poberezkin @@ -32186,15 +31568,15 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### fastq@v1.13.0 - + License: ISC By: Matteo Collina Repository: - + > Copyright (c) 2015-2020, Matteo Collina > > Permission to use, copy, modify, and/or distribute this software for any @@ -32208,14 +31590,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF > OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### file-entry-cache@v6.0.1 - + License: MIT By: Roy Riojas - + > The MIT License (MIT) > > Copyright (c) 2015 Roy Riojas @@ -32237,14 +31619,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### fill-range@v7.0.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-present, Jon Schlinkert. @@ -32266,13 +31648,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### find-cache-dir@v3.3.2 - + License: MIT - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -32282,16 +31664,16 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### find-parent-dir@v0.3.1 - + License: MIT By: Thorsten Lorenz Repository: - - > Copyright 2013 Thorsten Lorenz. + + > Copyright 2013 Thorsten Lorenz. > All rights reserved. > > Permission is hereby granted, free of charge, to any person @@ -32314,14 +31696,14 @@ License files: > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### find-up@v4.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -32331,14 +31713,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### flat-cache@v3.0.4 - + License: MIT By: Roy Riojas - + > The MIT License (MIT) > > Copyright (c) 2015 Roy Riojas @@ -32360,15 +31742,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### flatted@v3.2.5 - + License: ISC By: Andrea Giammarchi Repository: - + > ISC License > > Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection @@ -32384,15 +31766,15 @@ License files: > LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE > OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR > PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### flatten@v1.0.3 - + License: MIT By: Joshua Holbrook Repository: - + > The MIT License (MIT) > > Copyright (c) 2016 Joshua Holbrook @@ -32414,23 +31796,23 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### flow-parser@v0.180.0 - + License: MIT By: Flow Team Repository: - + ---------------------------------------- - + ### fs.realpath@v1.0.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -32474,14 +31856,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### function-bind@v1.1.1 - + License: MIT By: Raynos - + > Copyright (c) 2013 Raynos. > > Permission is hereby granted, free of charge, to any person obtaining a copy @@ -32501,14 +31883,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### get-stdin@v8.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -32518,14 +31900,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### get-stream@v6.0.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -32535,15 +31917,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### glob@v7.2.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -32565,14 +31947,14 @@ License files: > Glob's logo created by Tanya Brassie , licensed > under a Creative Commons Attribution-ShareAlike 4.0 International License > https://creativecommons.org/licenses/by-sa/4.0/ - + ---------------------------------------- - + ### glob-parent@v5.1.2 - + License: ISC By: Gulp Team - + > The ISC License > > Copyright (c) 2015, 2019 Elan Shanker @@ -32588,14 +31970,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### globby@v11.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -32605,14 +31987,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### graceful-fs@v4.2.9 - + License: ISC Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors @@ -32628,14 +32010,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### graphql@v15.6.1 - + License: MIT Repository: - + > MIT License > > Copyright (c) GraphQL Contributors @@ -32657,15 +32039,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### has@v1.0.3 - + License: MIT By: Thiago de Arruda Repository: - + > Copyright (c) 2013 Thiago de Arruda > > Permission is hereby granted, free of charge, to any person @@ -32688,14 +32070,14 @@ License files: > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### has-flag@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -32705,14 +32087,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### html-element-attributes@v3.1.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -32735,14 +32117,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### html-tag-names@v2.0.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -32765,14 +32147,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### html-void-elements@v2.0.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -32795,14 +32177,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### human-signals@v3.0.1 - + License: Apache-2.0 By: ehmicky - + > Apache License > Version 2.0, January 2004 > http://www.apache.org/licenses/ @@ -33004,15 +32386,15 @@ License files: > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > See the License for the specific language governing permissions and > limitations under the License. - + ---------------------------------------- - + ### ignore@v5.2.0 - + License: MIT By: kael Repository: - + > Copyright (c) 2013 Kael Zhang , contributors > http://kael.me/ > @@ -33034,14 +32416,14 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### import-fresh@v3.3.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -33051,14 +32433,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### indent-string@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33068,46 +32450,46 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### indexes-of@v1.0.1 - + License: MIT By: Dominic Tarr Repository: - + > Copyright (c) 2013 Dominic Tarr > - > Permission is hereby granted, free of charge, - > to any person obtaining a copy of this software and - > associated documentation files (the "Software"), to - > deal in the Software without restriction, including - > without limitation the rights to use, copy, modify, - > merge, publish, distribute, sublicense, and/or sell - > copies of the Software, and to permit persons to whom - > the Software is furnished to do so, + > Permission is hereby granted, free of charge, + > to any person obtaining a copy of this software and + > associated documentation files (the "Software"), to + > deal in the Software without restriction, including + > without limitation the rights to use, copy, modify, + > merge, publish, distribute, sublicense, and/or sell + > copies of the Software, and to permit persons to whom + > the Software is furnished to do so, > subject to the following conditions: > - > The above copyright notice and this permission notice + > The above copyright notice and this permission notice > shall be included in all copies or substantial portions of the Software. > - > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - > OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR - > ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + > OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + > ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### inflight@v1.0.6 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter @@ -33123,13 +32505,13 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### inherits@v2.0.4 - + License: ISC - + > The ISC License > > Copyright (c) Isaac Z. Schlueter @@ -33145,14 +32527,14 @@ License files: > LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR > OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR > PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### is-alphabetical@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33175,14 +32557,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-alphanumerical@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33205,15 +32587,15 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-arrayish@v0.2.1 - + License: MIT By: Qix Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 JD Ballard @@ -33235,15 +32617,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-buffer@v2.0.5 - + License: MIT By: Feross Aboukhadijeh Repository: - + > The MIT License (MIT) > > Copyright (c) Feross Aboukhadijeh @@ -33265,15 +32647,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-core-module@v2.8.1 - + License: MIT By: Jordan Harband Repository: - + > The MIT License (MIT) > > Copyright (c) 2014 Dave Justice @@ -33294,14 +32676,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-decimal@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33324,14 +32706,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-extglob@v2.1.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-2016, Jon Schlinkert @@ -33353,14 +32735,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-fullwidth-code-point@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -33370,14 +32752,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-glob@v4.0.3 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-2017, Jon Schlinkert. @@ -33399,14 +32781,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-hexadecimal@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33429,14 +32811,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-number@v7.0.0 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-present, Jon Schlinkert. @@ -33458,14 +32840,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-path-cwd@v2.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33475,14 +32857,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-path-inside@v3.0.3 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33492,14 +32874,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-plain-obj@v2.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33509,14 +32891,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-stream@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -33526,14 +32908,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-whitespace-character@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33556,14 +32938,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-word-character@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33586,15 +32968,15 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### isexe@v2.0.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -33610,14 +32992,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### jest-docblock@v27.5.1 - + License: MIT Repository: - + > MIT License > > Copyright (c) Facebook, Inc. and its affiliates. @@ -33639,14 +33021,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### js-tokens@v4.0.0 - + License: MIT By: Simon Lydell - + > The MIT License (MIT) > > Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell @@ -33668,14 +33050,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### json-parse-even-better-errors@v2.3.1 - + License: MIT By: Kat Marchán - + > Copyright 2017 Kat Marchán > Copyright npm, Inc. > @@ -33701,15 +33083,15 @@ License files: > > This library is a fork of 'better-json-errors' by Kat Marchán, extended and > distributed under the terms of the MIT license above. - + ---------------------------------------- - + ### json5@v2.2.1 - + License: MIT By: Aseem Kishore Repository: - + > MIT License > > Copyright (c) 2012-2018 Aseem Kishore, and [others]. @@ -33733,14 +33115,14 @@ License files: > SOFTWARE. > > [others]: https://github.com/json5/json5/contributors - + ---------------------------------------- - + ### leven@v2.1.0 - + License: MIT By: Sindre Sorhus - + > The MIT License (MIT) > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33762,14 +33144,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### leven@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -33779,15 +33161,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### lines-and-columns@v1.2.4 - + License: MIT By: Brian Donovan Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Brian Donovan @@ -33809,15 +33191,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### lines-and-columns@v2.0.3 - + License: MIT By: Brian Donovan Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Brian Donovan @@ -33839,14 +33221,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### linguist-languages@v7.21.0 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -33868,14 +33250,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### locate-path@v5.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33885,14 +33267,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### lru-cache@v4.1.5 - + License: ISC By: Isaac Z. Schlueter - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -33908,14 +33290,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### lru-cache@v6.0.0 - + License: ISC By: Isaac Z. Schlueter - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -33931,14 +33313,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### make-dir@v3.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33948,14 +33330,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### map-age-cleaner@v0.1.3 - + License: MIT By: Sam Verschueren - + > MIT License > > Copyright (c) Sam Verschueren (github.com/SamVerschueren) @@ -33965,14 +33347,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### markdown-escapes@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33995,14 +33377,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### mem@v9.0.2 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34012,14 +33394,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### merge-stream@v2.0.0 - + License: MIT By: Stephen Sugden - + > The MIT License (MIT) > > Copyright (c) Stephen Sugden (stephensugden.com) @@ -34041,14 +33423,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### merge2@v1.4.1 - + License: MIT Repository: - + > The MIT License (MIT) > > Copyright (c) 2014-2020 Teambition @@ -34070,15 +33452,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### meriyah@v4.2.1 - + License: ISC By: Kenny F. Repository: - + > ISC License > > Copyright (c) 2019 and later, KFlash and others. @@ -34086,14 +33468,14 @@ License files: > Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. > > THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### micromatch@v4.0.5 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-present, Jon Schlinkert. @@ -34115,14 +33497,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### mimic-fn@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34132,15 +33514,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### minimatch@v3.1.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -34156,15 +33538,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### minimist@v1.2.6 - + License: MIT By: James Halliday Repository: - + > This software is released under the MIT license: > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -34183,13 +33565,13 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### ms@v2.1.2 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) 2016 Zeit, Inc. @@ -34211,15 +33593,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### n-readlines@v1.0.1 - + License: MIT By: Yoan Arnaudov Repository: - + > The MIT License (MIT) > > Copyright (c) 2013 Liucw @@ -34240,14 +33622,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### npm-run-path@v5.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34257,15 +33639,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### once@v1.4.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -34281,14 +33663,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### onetime@v6.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34298,15 +33680,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### outdent@v0.8.0 - + License: MIT By: Andrew Bradley Repository: - + > The MIT License (MIT) > > Copyright (c) 2016 Andrew Bradley @@ -34328,14 +33710,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### p-defer@v1.0.0 - + License: MIT By: Sindre Sorhus - + > The MIT License (MIT) > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34357,14 +33739,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### p-limit@v2.3.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34374,14 +33756,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### p-locate@v4.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34391,14 +33773,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### p-map@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34408,14 +33790,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### p-try@v2.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34425,14 +33807,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### parse-entities@v2.0.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -34455,14 +33837,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### parse-json@v5.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34472,15 +33854,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### parse-srcset@v1.0.2 - + License: MIT By: Alex Bell Repository: - + > The MIT License (MIT) > > Copyright (c) 2014 Alex Bell @@ -34502,14 +33884,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### path-exists@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34519,14 +33901,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### path-is-absolute@v1.0.1 - + License: MIT By: Sindre Sorhus - + > The MIT License (MIT) > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34548,14 +33930,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### path-key@v3.1.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34565,15 +33947,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### path-parse@v1.0.7 - + License: MIT By: Javier Blanco Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Javier Blanco @@ -34595,14 +33977,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### path-type@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34612,14 +33994,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### picocolors@v0.2.1 - + License: ISC By: Alexey Raspopov - + > ISC License > > Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov @@ -34635,14 +34017,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF > OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### picomatch@v2.3.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2017-present, Jon Schlinkert. @@ -34664,14 +34046,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### pkg-dir@v4.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34681,18 +34063,18 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### please-upgrade-node@v3.2.0 - + License: MIT By: typicode Repository: - + > MIT License > - > Copyright (c) 2017 + > Copyright (c) 2017 > > Permission is hereby granted, free of charge, to any person obtaining a copy > of this software and associated documentation files (the "Software"), to deal @@ -34711,14 +34093,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### postcss@v7.0.39 - + License: MIT By: Andrey Sitnik - + > The MIT License (MIT) > > Copyright 2013 Andrey Sitnik @@ -34739,14 +34121,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### postcss-less@v3.1.4 - + License: MIT By: Denys Kniazevych - + > The MIT License (MIT) > > Copyright (c) 2013 Andrey Sitnik @@ -34771,22 +34153,22 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### postcss-media-query-parser@v0.2.3 - + License: MIT By: dryoma Repository: - + ---------------------------------------- - + ### postcss-scss@v2.1.1 - + License: MIT By: Andrey Sitnik - + > The MIT License (MIT) > > Copyright 2013 Andrey Sitnik @@ -34807,14 +34189,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### postcss-selector-parser@v2.2.3 - + License: MIT By: Ben Briggs - + > Copyright (c) Ben Briggs (http://beneb.info) > > Permission is hereby granted, free of charge, to any person @@ -34837,14 +34219,14 @@ License files: > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### postcss-values-parser@v2.0.1 - + License: MIT By: Andrew Powell (shellscape) - + > Copyright (c) Andrew Powell > > Permission is hereby granted, free of charge, to any person @@ -34867,15 +34249,15 @@ License files: > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### pseudomap@v1.0.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -34891,15 +34273,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### queue-microtask@v1.2.3 - + License: MIT By: Feross Aboukhadijeh Repository: - + > The MIT License (MIT) > > Copyright (c) Feross Aboukhadijeh @@ -34920,14 +34302,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### remark-footnotes@v2.0.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2020 Titus Wormer @@ -34950,28 +34332,28 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### remark-math@v3.0.1 - + License: MIT By: Junyoung Choi - + ---------------------------------------- - + ### remark-parse@v8.0.3 - + License: MIT By: Titus Wormer - + ---------------------------------------- - + ### repeat-string@v1.6.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-2016, Jon Schlinkert. @@ -34993,15 +34375,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### resolve@v1.22.0 - + License: MIT By: James Halliday Repository: - + > MIT License > > Copyright (c) 2012 James Halliday @@ -35023,14 +34405,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### resolve-from@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35040,15 +34422,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### reusify@v1.0.4 - + License: MIT By: Matteo Collina Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Matteo Collina @@ -35070,14 +34452,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### rimraf@v3.0.2 - + License: ISC By: Isaac Z. Schlueter - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -35093,14 +34475,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### rollup-plugin-node-polyfills@v0.2.1 - + License: MIT Repository: - + > The MIT License (MIT) > > Copyright (c) 2019 these people @@ -35110,15 +34492,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### run-parallel@v1.2.0 - + License: MIT By: Feross Aboukhadijeh Repository: - + > The MIT License (MIT) > > Copyright (c) Feross Aboukhadijeh @@ -35139,14 +34521,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### sdbm@v2.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35156,13 +34538,13 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### semver@v6.3.0 - + License: ISC - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -35178,15 +34560,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### semver@v7.3.7 - + License: ISC By: GitHub Inc. Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -35202,15 +34584,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### semver-compare@v1.0.0 - + License: MIT By: James Halliday Repository: - + > This software is released under the MIT license: > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -35229,14 +34611,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### shebang-command@v2.0.0 - + License: MIT By: Kevin Mårtensson - + > MIT License > > Copyright (c) Kevin Mårtensson (github.com/kevva) @@ -35246,14 +34628,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### shebang-regex@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35263,15 +34645,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### sigmund@v1.0.1 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -35287,15 +34669,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### signal-exit@v3.0.7 - + License: ISC By: Ben Coe Repository: - + > The ISC License > > Copyright (c) 2015, Contributors @@ -35312,14 +34694,14 @@ License files: > OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, > WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, > ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### simple-html-tokenizer@v0.5.11 - + License: MIT Repository: - + > Copyright (c) 2014 Yehuda Katz and contributors > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -35339,14 +34721,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### slash@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35356,14 +34738,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### state-toggle@v1.0.3 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -35386,14 +34768,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### string-width@v5.0.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35403,14 +34785,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### strip-ansi@v7.0.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35420,14 +34802,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### strip-final-newline@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35437,14 +34819,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### supports-color@v5.5.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35454,14 +34836,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### temp-dir@v2.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35471,14 +34853,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### tempy@v2.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35488,14 +34870,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### to-regex-range@v5.0.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2015-present, Jon Schlinkert. @@ -35517,20 +34899,20 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### trim@v0.0.1 - + By: TJ Holowaychuk - + ---------------------------------------- - + ### trim-trailing-lines@v1.1.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -35553,14 +34935,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### trough@v1.0.5 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -35582,214 +34964,129 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### tslib@v1.14.1 - + License: 0BSD By: Microsoft Corp. Repository: - - > Copyright (c) Microsoft Corporation. - - > - - > Permission to use, copy, modify, and/or distribute this software for any - - > purpose with or without fee is hereby granted. - - > - - > THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - > REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - > AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - > INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - > LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - > OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - + + > Copyright (c) Microsoft Corporation. + > + > Permission to use, copy, modify, and/or distribute this software for any + > purpose with or without fee is hereby granted. + > + > THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + > REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + > AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + > INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + > LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + > OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR > PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### tsutils@v3.21.0 - + License: MIT By: Klaus Meinhardt Repository: - - > The MIT License (MIT) - - > - - > Copyright (c) 2017 Klaus Meinhardt - - > - - > Permission is hereby granted, free of charge, to any person obtaining a copy - - > of this software and associated documentation files (the "Software"), to deal - - > in the Software without restriction, including without limitation the rights - - > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - - > copies of the Software, and to permit persons to whom the Software is - - > furnished to do so, subject to the following conditions: - - > - - > The above copyright notice and this permission notice shall be included in all - - > copies or substantial portions of the Software. - - > - - > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - - > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - - > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - - > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - - > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - - > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - + + > The MIT License (MIT) + > + > Copyright (c) 2017 Klaus Meinhardt + > + > Permission is hereby granted, free of charge, to any person obtaining a copy + > of this software and associated documentation files (the "Software"), to deal + > in the Software without restriction, including without limitation the rights + > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + > copies of the Software, and to permit persons to whom the Software is + > furnished to do so, subject to the following conditions: + > + > The above copyright notice and this permission notice shall be included in all + > copies or substantial portions of the Software. + > + > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### typescript@v4.7.2 - + License: Apache-2.0 By: Microsoft Corp. Repository: - - > Apache License - - > - - > Version 2.0, January 2004 - - > - - > http://www.apache.org/licenses/ - - > - - > TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - > - - > 1. Definitions. - - > - - > "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - - > - - > "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - - > - - > "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - - > - - > "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - - > - - > "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - - > - - > "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - - > - - > "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - - > - - > "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - - > - - > "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - - > - - > "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - - > - - > 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - - > - - > 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - - > - - > 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - - > - - > You must give any other recipients of the Work or Derivative Works a copy of this License; and - - > - - > You must cause any modified files to carry prominent notices stating that You changed the files; and - - > - - > You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - - > - - > If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - - > - - > 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - - > - - > 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - - > - - > 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - - > - - > 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - - > - - > 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - - > - + + > Apache License + > + > Version 2.0, January 2004 + > + > http://www.apache.org/licenses/ + > + > TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + > + > 1. Definitions. + > + > "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + > + > "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + > + > "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + > + > "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + > + > "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + > + > "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + > + > "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + > + > "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + > + > "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + > + > "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + > + > 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + > + > 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + > + > 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + > + > You must give any other recipients of the Work or Derivative Works a copy of this License; and + > + > You must cause any modified files to carry prominent notices stating that You changed the files; and + > + > You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + > + > If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + > + > 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + > + > 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + > + > 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + > + > 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + > + > 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + > > END OF TERMS AND CONDITIONS - + ---------------------------------------- - + ### unherit@v1.1.3 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -35811,14 +35108,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### unified@v9.2.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -35840,15 +35137,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### uniq@v1.0.1 - + License: MIT By: Mikola Lysenko Repository: - + > The MIT License (MIT) > > Copyright (c) 2013 Mikola Lysenko @@ -35870,14 +35167,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### unique-string@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35887,14 +35184,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-is@v4.1.0 - + License: MIT By: Titus Wormer - + > (The MIT license) > > Copyright (c) 2015 Titus Wormer @@ -35917,14 +35214,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-remove-position@v2.0.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -35947,14 +35244,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-stringify-position@v2.0.3 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -35977,14 +35274,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-visit@v2.0.3 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -36007,14 +35304,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-visit-parents@v3.1.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -36037,14 +35334,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### vfile@v4.2.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -36066,14 +35363,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### vfile-location@v3.2.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -36096,14 +35393,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### vfile-message@v2.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2017 Titus Wormer @@ -36126,14 +35423,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### vnopts@v1.0.2 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -36155,15 +35452,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### wcwidth@v1.0.1 - + License: MIT By: Tim Oxley Repository: - + > wcwidth.js: JavaScript Portng of Markus Kuhn's wcwidth() Implementation > ======================================================================= > @@ -36193,15 +35490,15 @@ License files: > IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### which@v2.0.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -36217,15 +35514,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### wrappy@v1.0.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -36241,14 +35538,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### xtend@v4.0.2 - + License: MIT By: Raynos - + > The MIT License (MIT) > Copyright (c) 2012-2014 Raynos. > @@ -36269,15 +35566,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### yallist@v2.1.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -36293,15 +35590,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### yallist@v4.0.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -36317,14 +35614,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### yaml@v1.10.2 - + License: ISC By: Eemeli Aro - + > Copyright 2018 Eemeli Aro > > Permission to use, copy, modify, and/or distribute this software for any purpose @@ -36338,14 +35635,14 @@ License files: > OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER > TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF > THIS SOFTWARE. - + ---------------------------------------- - + ### yaml-unist-parser@v1.3.1 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -36367,31 +35664,30 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. + - + ### [pretty-format](https://www.npmjs.com/package/pretty-format) (version 27.5.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36399,31 +35695,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [prop-types](https://www.npmjs.com/package/prop-types) (version 15.8.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2013-present, Facebook, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36431,21 +35726,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [proxy-addr](https://www.npmjs.com/package/proxy-addr) (version 2.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -36453,10 +35747,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -36464,31 +35758,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [pump](https://www.npmjs.com/package/pump) (version 3.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36497,18 +35790,16 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [punycode](https://www.npmjs.com/package/punycode) (version 2.3.1) - License tags: MIT License files: - -- LICENSE-MIT.txt: +* LICENSE-MIT.txt: Copyright Mathias Bynens - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -36516,10 +35807,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -36527,56 +35818,54 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [pupa](https://www.npmjs.com/package/pupa) (version 2.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [qs](https://www.npmjs.com/package/qs) (version 6.13.0) - License tags: BSD-3-Clause License files: - -- LICENSE.md: +* LICENSE.md: BSD 3-Clause License - + Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors) All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -36587,22 +35876,21 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [range-parser](https://www.npmjs.com/package/range-parser) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2014 TJ Holowaychuk Copyright (c) 2015-2016 Douglas Christopher Wilson + ### [raw-body](https://www.npmjs.com/package/raw-body) (version 2.5.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013-2014 Jonathan Ong Copyright (c) 2014-2022 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36654,47 +35941,47 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [rc](https://www.npmjs.com/package/rc) (version 1.2.8) - License tags: (BSD-2-Clause OR MIT OR Apache-2.0) License files: - -- LICENSE.APACHE2: +* LICENSE.APACHE2: Apache License, Version 2.0 - + Copyright (c) 2011 Dominic Tarr - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + -- LICENSE.BSD: +* LICENSE.BSD: Copyright (c) 2013, Dominic Tarr All rights reserved. - + Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - + modification, are permitted provided that the following conditions are met: + 1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. + list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - + and/or other materials provided with the distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -36705,62 +35992,62 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + The views and conclusions contained in the software and documentation are those - of the authors and should not be interpreted as representing official policies, + of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. + -- LICENSE.MIT: +* LICENSE.MIT: The MIT License - + Copyright (c) 2011 Dominic Tarr - - Permission is hereby granted, free of charge, - to any person obtaining a copy of this software and - associated documentation files (the "Software"), to - deal in the Software without restriction, including - without limitation the rights to use, copy, modify, - merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom - the Software is furnished to do so, + + Permission is hereby granted, free of charge, + to any person obtaining a copy of this software and + associated documentation files (the "Software"), to + deal in the Software without restriction, including + without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom + the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR - ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [re-resizable](https://www.npmjs.com/package/re-resizable) (version 6.9.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2018 @bokuweb - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36768,31 +36055,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-dom](https://www.npmjs.com/package/react-dom) (version 17.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36800,31 +36086,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-hotkeys-hook](https://www.npmjs.com/package/react-hotkeys-hook) (version 4.3.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2018 Johannes Klauss - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36832,31 +36117,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-intersection-observer](https://www.npmjs.com/package/react-intersection-observer) (version 8.34.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2022 React Intersection Observer authors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36864,31 +36148,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-is](https://www.npmjs.com/package/react-is) (version 16.13.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36896,31 +36179,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-is](https://www.npmjs.com/package/react-is) (version 17.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36928,31 +36210,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-is](https://www.npmjs.com/package/react-is) (version 18.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36960,31 +36241,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-keyed-flatten-children](https://www.npmjs.com/package/react-keyed-flatten-children) (version 1.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Tom McKenzie - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36992,37 +36272,35 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-leaflet-draw](https://www.npmjs.com/package/react-leaflet-draw) (version 0.19.0) - License tags: ISC - + ### [react-leaflet](https://www.npmjs.com/package/react-leaflet) (version 2.4.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015-present Paul Le Cam and contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37030,89 +36308,67 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-redux](https://www.npmjs.com/package/react-redux) (version 8.1.3) - License tags: MIT License files: +* LICENSE.md: + + The MIT License (MIT) + + Copyright (c) 2015-present Dan Abramov + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + -- LICENSE.md: - - The MIT License (MIT) - - - - Copyright (c) 2015-present Dan Abramov - - - - Permission is hereby granted, free of charge, to any person obtaining a copy - - of this software and associated documentation files (the "Software"), to deal - - in the Software without restriction, including without limitation the rights - - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - - copies of the Software, and to permit persons to whom the Software is - - furnished to do so, subject to the following conditions: - - - - The above copyright notice and this permission notice shall be included in all - - copies or substantial portions of the Software. - - - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - - SOFTWARE. - ### [react-transition-group](https://www.npmjs.com/package/react-transition-group) (version 4.4.5) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: BSD 3-Clause License - + Copyright (c) 2018, React Community Forked from React (https://github.com/facebook/react) Copyright 2013-present, Facebook, Inc. All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -37123,31 +36379,30 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [react-virtual](https://www.npmjs.com/package/react-virtual) (version 2.10.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Tanner Linsley - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37155,31 +36410,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-virtualized-auto-sizer](https://www.npmjs.com/package/react-virtualized-auto-sizer) (version 1.0.24) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2023 Brian Vaughn - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37187,31 +36441,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-window](https://www.npmjs.com/package/react-window) (version 1.8.10) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2018 Brian Vaughn - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37219,31 +36472,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react](https://www.npmjs.com/package/react) (version 17.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37251,32 +36503,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [readable-stream](https://www.npmjs.com/package/readable-stream) (version 3.6.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Node.js is licensed for use as follows: - + """ Copyright Node.js contributors. All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37285,10 +36536,10 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - + This license applies to parts of Node.js originating from the https://github.com/joyent/node repository: - + """ Copyright Joyent, Inc. and other Node contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy @@ -37297,10 +36548,10 @@ License files: rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37309,83 +36560,61 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ + - + ### [redux-thunk](https://www.npmjs.com/package/redux-thunk) (version 2.4.2) - License tags: MIT License files: - -- LICENSE.md: - - The MIT License (MIT) - - - - Copyright (c) 2015-present Dan Abramov - - - - Permission is hereby granted, free of charge, to any person obtaining a copy - - of this software and associated documentation files (the "Software"), to deal - - in the Software without restriction, including without limitation the rights - - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - - copies of the Software, and to permit persons to whom the Software is - - furnished to do so, subject to the following conditions: +* LICENSE.md: + + The MIT License (MIT) + + Copyright (c) 2015-present Dan Abramov + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + - - The above copyright notice and this permission notice shall be included in all - - copies or substantial portions of the Software. - - - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - - SOFTWARE. - - ### [redux](https://www.npmjs.com/package/redux) (version 4.2.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2015-present Dan Abramov - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37393,77 +36622,72 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [reflux-core](https://www.npmjs.com/package/reflux-core) (version 0.3.0) - License tags: BSD-3-Clause License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) 2014, Mikael Brassman All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ### [reflux](https://www.npmjs.com/package/reflux) (version 0.4.1) - License tags: BSD-3-Clause License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) 2014, Mikael Brassman All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ### [regexp.prototype.flags](https://www.npmjs.com/package/regexp.prototype.flags) (version 1.5.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (C) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37471,37 +36695,37 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [reservoir](https://www.npmjs.com/package/reservoir) (version 0.1.2) - License tags: MIT - + ### [resolve-mongodb-srv](https://www.npmjs.com/package/resolve-mongodb-srv) (version 1.1.5) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -37509,24 +36733,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -37534,7 +36758,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -37548,18 +36772,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -37575,24 +36799,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -37609,14 +36833,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -37624,12 +36848,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -37639,7 +36863,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -37651,7 +36875,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -37662,67 +36886,66 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [run-applescript](https://www.npmjs.com/package/run-applescript) (version 5.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [safe-buffer](https://www.npmjs.com/package/safe-buffer) (version 5.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Feross Aboukhadijeh - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37730,31 +36953,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [safer-buffer](https://www.npmjs.com/package/safer-buffer) (version 2.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2018 Nikita Skovoroda - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37762,31 +36984,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [scheduler](https://www.npmjs.com/package/scheduler) (version 0.20.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37794,31 +37015,29 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [select](https://www.npmjs.com/package/select) (version 1.1.2) - License tags: MIT - + ### [semver](https://www.npmjs.com/package/semver) (version 6.3.1) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -37826,25 +37045,24 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [semver](https://www.npmjs.com/package/semver) (version 7.6.3) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -37852,22 +37070,21 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [send](https://www.npmjs.com/package/send) (version 0.19.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012 TJ Holowaychuk Copyright (c) 2014-2022 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -37875,10 +37092,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -37886,24 +37103,23 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [serve-static](https://www.npmjs.com/package/serve-static) (version 1.16.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2010 Sencha Inc. Copyright (c) 2011 LearnBoost Copyright (c) 2011 TJ Holowaychuk Copyright (c) 2014-2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -37911,10 +37127,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -37922,31 +37138,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [set-function-length](https://www.npmjs.com/package/set-function-length) (version 1.2.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Jordan Harband and contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37954,31 +37169,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [set-function-name](https://www.npmjs.com/package/set-function-name) (version 2.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Jordan Harband and contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37986,23 +37200,22 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [setprototypeof](https://www.npmjs.com/package/setprototypeof) (version 1.2.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: Copyright (c) 2015, Wes Todd - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY @@ -38010,71 +37223,68 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [shebang-command](https://www.npmjs.com/package/shebang-command) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Kevin Mårtensson (github.com/kevva) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [shebang-regex](https://www.npmjs.com/package/shebang-regex) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [side-channel](https://www.npmjs.com/package/side-channel) (version 1.0.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38082,26 +37292,25 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [signal-exit](https://www.npmjs.com/package/signal-exit) (version 3.0.7) - License tags: ISC License files: - -- LICENSE.txt: +* LICENSE.txt: The ISC License - + Copyright (c) 2015, Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE @@ -38109,26 +37318,25 @@ License files: OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [signal-exit](https://www.npmjs.com/package/signal-exit) (version 4.1.0) - License tags: ISC License files: - -- LICENSE.txt: +* LICENSE.txt: The ISC License - + Copyright (c) 2015-2023 Benjamin Coe, Isaac Z. Schlueter, and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE @@ -38136,114 +37344,110 @@ License files: OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [simple-concat](https://www.npmjs.com/package/simple-concat) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Feross Aboukhadijeh - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [simple-get](https://www.npmjs.com/package/simple-get) (version 4.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Feross Aboukhadijeh - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [smart-buffer](https://www.npmjs.com/package/smart-buffer) (version 4.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013-2017 Josh Glazebrook - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [socks-proxy-agent](https://www.npmjs.com/package/socks-proxy-agent) (version 8.0.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -38251,10 +37455,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -38263,59 +37467,56 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [socks](https://www.npmjs.com/package/socks) (version 2.8.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013 Josh Glazebrook - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [sort-keys-length](https://www.npmjs.com/package/sort-keys-length) (version 1.0.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) Kevin Mårtensson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38323,31 +37524,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [sort-keys](https://www.npmjs.com/package/sort-keys) (version 1.1.2) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38355,230 +37555,137 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [source-code-pro](https://www.npmjs.com/package/source-code-pro) (version 2.38.0) - License tags: OFL-1.1 License files: - -- LICENSE.md: - - Copyright 2010-2019 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. - - - - This Font Software is licensed under the SIL Open Font License, Version 1.1. - - - - This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL - - - - - - ----------------------------------------------------------- - - SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 - - ----------------------------------------------------------- - - - - PREAMBLE - - The goals of the Open Font License (OFL) are to stimulate worldwide - - development of collaborative font projects, to support the font creation - - efforts of academic and linguistic communities, and to provide a free and - - open framework in which fonts may be shared and improved in partnership - - with others. - - - - The OFL allows the licensed fonts to be used, studied, modified and - - redistributed freely as long as they are not sold by themselves. The - - fonts, including any derivative works, can be bundled, embedded, - - redistributed and/or sold with any software provided that any reserved - - names are not used by derivative works. The fonts and derivatives, - - however, cannot be released under any other type of license. The - - requirement for fonts to remain under this license does not apply - - to any document created using the fonts or their derivatives. - - - - DEFINITIONS - - "Font Software" refers to the set of files released by the Copyright - - Holder(s) under this license and clearly marked as such. This may - - include source files, build scripts and documentation. - - - - "Reserved Font Name" refers to any names specified as such after the - - copyright statement(s). - - - - "Original Version" refers to the collection of Font Software components as - - distributed by the Copyright Holder(s). - +* LICENSE.md: + + Copyright 2010-2019 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. + + This Font Software is licensed under the SIL Open Font License, Version 1.1. + + This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + + ----------------------------------------------------------- + SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 + ----------------------------------------------------------- + + PREAMBLE + The goals of the Open Font License (OFL) are to stimulate worldwide + development of collaborative font projects, to support the font creation + efforts of academic and linguistic communities, and to provide a free and + open framework in which fonts may be shared and improved in partnership + with others. + + The OFL allows the licensed fonts to be used, studied, modified and + redistributed freely as long as they are not sold by themselves. The + fonts, including any derivative works, can be bundled, embedded, + redistributed and/or sold with any software provided that any reserved + names are not used by derivative works. The fonts and derivatives, + however, cannot be released under any other type of license. The + requirement for fonts to remain under this license does not apply + to any document created using the fonts or their derivatives. + + DEFINITIONS + "Font Software" refers to the set of files released by the Copyright + Holder(s) under this license and clearly marked as such. This may + include source files, build scripts and documentation. + + "Reserved Font Name" refers to any names specified as such after the + copyright statement(s). + + "Original Version" refers to the collection of Font Software components as + distributed by the Copyright Holder(s). + + "Modified Version" refers to any derivative made by adding to, deleting, + or substituting -- in part or in whole -- any of the components of the + Original Version, by changing formats or by porting the Font Software to a + new environment. + + "Author" refers to any designer, engineer, programmer, technical + writer or other person who contributed to the Font Software. + + PERMISSION & CONDITIONS + Permission is hereby granted, free of charge, to any person obtaining + a copy of the Font Software, to use, study, copy, merge, embed, modify, + redistribute, and sell modified and unmodified copies of the Font + Software, subject to the following conditions: + + 1) Neither the Font Software nor any of its individual components, + in Original or Modified Versions, may be sold by itself. + + 2) Original or Modified Versions of the Font Software may be bundled, + redistributed and/or sold with any software, provided that each copy + contains the above copyright notice and this license. These can be + included either as stand-alone text files, human-readable headers or + in the appropriate machine-readable metadata fields within text or + binary files as long as those fields can be easily viewed by the user. + + 3) No Modified Version of the Font Software may use the Reserved Font + Name(s) unless explicit written permission is granted by the corresponding + Copyright Holder. This restriction only applies to the primary font name as + presented to the users. + + 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font + Software shall not be used to promote, endorse or advertise any + Modified Version, except to acknowledge the contribution(s) of the + Copyright Holder(s) and the Author(s) or with their explicit written + permission. + + 5) The Font Software, modified or unmodified, in part or in whole, + must be distributed entirely under this license, and must not be + distributed under any other license. The requirement for fonts to + remain under this license does not apply to any document created + using the Font Software. + + TERMINATION + This license becomes null and void if any of the above conditions are + not met. + + DISCLAIMER + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE + COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM + OTHER DEALINGS IN THE FONT SOFTWARE. + - "Modified Version" refers to any derivative made by adding to, deleting, - - or substituting -- in part or in whole -- any of the components of the - - Original Version, by changing formats or by porting the Font Software to a - - new environment. - - - - "Author" refers to any designer, engineer, programmer, technical - - writer or other person who contributed to the Font Software. - - - - PERMISSION & CONDITIONS - - Permission is hereby granted, free of charge, to any person obtaining - - a copy of the Font Software, to use, study, copy, merge, embed, modify, - - redistribute, and sell modified and unmodified copies of the Font - - Software, subject to the following conditions: - - - - 1) Neither the Font Software nor any of its individual components, - - in Original or Modified Versions, may be sold by itself. - - - - 2) Original or Modified Versions of the Font Software may be bundled, - - redistributed and/or sold with any software, provided that each copy - - contains the above copyright notice and this license. These can be - - included either as stand-alone text files, human-readable headers or - - in the appropriate machine-readable metadata fields within text or - - binary files as long as those fields can be easily viewed by the user. - - - - 3) No Modified Version of the Font Software may use the Reserved Font - - Name(s) unless explicit written permission is granted by the corresponding - - Copyright Holder. This restriction only applies to the primary font name as - - presented to the users. - - - - 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font - - Software shall not be used to promote, endorse or advertise any - - Modified Version, except to acknowledge the contribution(s) of the - - Copyright Holder(s) and the Author(s) or with their explicit written - - permission. - - - - 5) The Font Software, modified or unmodified, in part or in whole, - - must be distributed entirely under this license, and must not be - - distributed under any other license. The requirement for fonts to - - remain under this license does not apply to any document created - - using the Font Software. - - - - TERMINATION - - This license becomes null and void if any of the above conditions are - - not met. - - - - DISCLAIMER - - THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF - - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT - - OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE - - COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - - INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL - - DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - - FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM - - OTHER DEALINGS IN THE FONT SOFTWARE. - - ### [source-map](https://www.npmjs.com/package/source-map) (version 0.6.1) - License tags: BSD-3-Clause License files: +* LICENSE: -- LICENSE: - + Copyright (c) 2009-2011, Mozilla Foundation and contributors All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the names of the Mozilla Foundation nor the names of project contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -38589,31 +37696,30 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [sparse-bitfield](https://www.npmjs.com/package/sparse-bitfield) (version 3.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2016 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38621,20 +37727,19 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [sprintf-js](https://www.npmjs.com/package/sprintf-js) (version 1.1.3) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright (c) 2007-present, Alexandru Mărășteanu All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright @@ -38645,7 +37750,7 @@ License files: * Neither the name of this software nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -38656,29 +37761,28 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [ssh2](https://www.npmjs.com/package/ssh2) (version 1.15.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright Brian White. All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38687,31 +37791,30 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [statuses](https://www.npmjs.com/package/statuses) (version 2.0.1) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + The MIT License (MIT) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38719,31 +37822,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [stop-iteration-iterator](https://www.npmjs.com/package/stop-iteration-iterator) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2023 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38751,54 +37853,52 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [stream-chain](https://www.npmjs.com/package/stream-chain) (version 2.2.5) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright 2019 Eugene Lazutkin - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [stream-json](https://www.npmjs.com/package/stream-json) (version 1.7.5) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: This library is available under the terms of the modified BSD license. No external contributions are allowed under licenses which are fundamentally incompatible with the BSD license that this library is distributed under. - + The text of the BSD license is reproduced below. - + ------------------------------------------------------------------------------- The "New" BSD License: ********************** - + Copyright (c) 2005-2018, Eugene Lazutkin All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, @@ -38807,7 +37907,7 @@ License files: * Neither the name of Eugene Lazutkin nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -38818,32 +37918,31 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [string_decoder](https://www.npmjs.com/package/string_decoder) (version 1.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Node.js is licensed for use as follows: - + """ Copyright Node.js contributors. All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38852,10 +37951,10 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - + This license applies to parts of Node.js originating from the https://github.com/joyent/node repository: - + """ Copyright Joyent, Inc. and other Node contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy @@ -38864,10 +37963,10 @@ License files: rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38876,131 +37975,126 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ + + - + ### [strip-bom-buf](https://www.npmjs.com/package/strip-bom-buf) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strip-bom-stream](https://www.npmjs.com/package/strip-bom-stream) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strip-final-newline](https://www.npmjs.com/package/strip-final-newline) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strip-final-newline](https://www.npmjs.com/package/strip-final-newline) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strip-json-comments](https://www.npmjs.com/package/strip-json-comments) (version 3.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strnum](https://www.npmjs.com/package/strnum) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021 Natural Intelligence - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39008,29 +38102,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [style-mod](https://www.npmjs.com/package/style-mod) (version 4.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39038,31 +38131,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [stylis](https://www.npmjs.com/package/stylis) (version 4.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016-present Sultan Tarimo - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39070,71 +38162,69 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [supports-color](https://www.npmjs.com/package/supports-color) (version 5.5.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [supports-color](https://www.npmjs.com/package/supports-color) (version 7.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [system-ca](https://www.npmjs.com/package/system-ca) (version 2.0.1) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -39142,24 +38232,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -39167,7 +38257,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -39181,18 +38271,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -39208,24 +38298,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -39242,14 +38332,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -39257,12 +38347,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -39272,7 +38362,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -39284,7 +38374,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -39295,47 +38385,47 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [tabbable](https://www.npmjs.com/package/tabbable) (version 5.3.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 David Clark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39343,31 +38433,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [tar-fs](https://www.npmjs.com/package/tar-fs) (version 2.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39376,30 +38466,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [tar-stream](https://www.npmjs.com/package/tar-stream) (version 1.6.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39408,59 +38496,56 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [text-table](https://www.npmjs.com/package/text-table) (version 0.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: This software is released under the MIT license: - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [tiny-emitter](https://www.npmjs.com/package/tiny-emitter) (version 2.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2017 Scott Corgan - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39468,51 +38553,50 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [titleize](https://www.npmjs.com/package/titleize) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [to-buffer](https://www.npmjs.com/package/to-buffer) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2016 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39520,52 +38604,50 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [to-fast-properties](https://www.npmjs.com/package/to-fast-properties) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) 2014 Petka Antonov 2015 Sindre Sorhus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [toidentifier](https://www.npmjs.com/package/toidentifier) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39573,37 +38655,35 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [tr46](https://www.npmjs.com/package/tr46) (version 0.0.3) - License tags: MIT - + ### [tr46](https://www.npmjs.com/package/tr46) (version 4.1.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) Sebastian Mayr - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39611,218 +38691,167 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [tslib](https://www.npmjs.com/package/tslib) (version 2.6.2) - License tags: 0BSD License files: - -- CopyrightNotice.txt: - - /****************************************************************************** - - Copyright (c) Microsoft Corporation. - - - - Permission to use, copy, modify, and/or distribute this software for any - - purpose with or without fee is hereby granted. - - - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - +* CopyrightNotice.txt: + + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + + +* LICENSE.txt: + + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */ - -- LICENSE.txt: - - Copyright (c) Microsoft Corporation. - - - - Permission to use, copy, modify, and/or distribute this software for any - - purpose with or without fee is hereby granted. - - - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - - PERFORMANCE OF THIS SOFTWARE. - ### [tslib](https://www.npmjs.com/package/tslib) (version 2.6.3) - License tags: 0BSD License files: - -- CopyrightNotice.txt: - - /****************************************************************************** - - Copyright (c) Microsoft Corporation. - - - - Permission to use, copy, modify, and/or distribute this software for any - - purpose with or without fee is hereby granted. - - - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - +* CopyrightNotice.txt: + + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + + +* LICENSE.txt: + + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */ - -- LICENSE.txt: - - Copyright (c) Microsoft Corporation. - - - - Permission to use, copy, modify, and/or distribute this software for any - - purpose with or without fee is hereby granted. - - - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - - PERFORMANCE OF THIS SOFTWARE. - ### [tunnel-agent](https://www.npmjs.com/package/tunnel-agent) (version 0.6.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License - + Version 2.0, January 2004 - + http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + You must give any other recipients of the Work or Derivative Works a copy of this License; and - + You must cause any modified files to carry prominent notices stating that You changed the files; and - + You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + ### [tweetnacl](https://www.npmjs.com/package/tweetnacl) (version 0.14.5) - License tags: Unlicense License files: - -- LICENSE: +* LICENSE: This is free and unencumbered software released into the public domain. - + Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. - + In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit @@ -39830,7 +38859,7 @@ License files: successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -39838,24 +38867,23 @@ License files: OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + For more information, please refer to + - + ### [type-is](https://www.npmjs.com/package/type-is) (version 1.6.18) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2014-2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -39863,10 +38891,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -39874,52 +38902,50 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [universalify](https://www.npmjs.com/package/universalify) (version 2.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2017, Ryan Zimmerman - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [unpipe](https://www.npmjs.com/package/unpipe) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -39927,10 +38953,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -39938,71 +38964,68 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [untildify](https://www.npmjs.com/package/untildify) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [unused-filename](https://www.npmjs.com/package/unused-filename) (version 2.1.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [use-sync-external-store](https://www.npmjs.com/package/use-sync-external-store) (version 1.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40010,21 +39033,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [util-deprecate](https://www.npmjs.com/package/util-deprecate) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without @@ -40033,10 +39055,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -40045,72 +39067,69 @@ License files: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [utils-merge](https://www.npmjs.com/package/utils-merge) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013-2017 Jared Hanson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [uuid](https://www.npmjs.com/package/uuid) (version 9.0.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2010-2020 Robert Kieffer and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [vary](https://www.npmjs.com/package/vary) (version 1.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -40118,10 +39137,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -40129,29 +39148,28 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [w3c-keyname](https://www.npmjs.com/package/w3c-keyname) (version 2.2.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2016 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40159,31 +39177,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [warning](https://www.npmjs.com/package/warning) (version 4.0.3) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2013-present, Facebook, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40191,32 +39208,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [web-streams-polyfill](https://www.npmjs.com/package/web-streams-polyfill) (version 3.3.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2024 Mattias Buelens Copyright (c) 2016 Diwank Singh Tomer - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40224,31 +39240,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [web-vitals](https://www.npmjs.com/package/web-vitals) (version 2.1.2) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -40256,24 +39272,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -40281,7 +39297,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -40295,18 +39311,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -40322,24 +39338,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -40356,14 +39372,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -40371,12 +39387,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -40386,7 +39402,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -40398,7 +39414,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -40409,11 +39425,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -40422,45 +39438,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 Google LLC - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + https://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [web-worker](https://www.npmjs.com/package/web-worker) (version 1.3.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -40468,24 +39483,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -40493,7 +39508,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -40507,18 +39522,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -40534,24 +39549,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -40568,14 +39583,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -40583,12 +39598,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -40598,7 +39613,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -40610,7 +39625,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -40621,11 +39636,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -40634,79 +39649,75 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [webidl-conversions](https://www.npmjs.com/package/webidl-conversions) (version 3.0.1) - License tags: BSD-2-Clause License files: - -- LICENSE.md: +* LICENSE.md: # The BSD 2-Clause License - + Copyright (c) 2014, Domenic Denicola All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [webidl-conversions](https://www.npmjs.com/package/webidl-conversions) (version 7.0.0) - License tags: BSD-2-Clause License files: - -- LICENSE.md: +* LICENSE.md: # The BSD 2-Clause License - + Copyright (c) 2014, Domenic Denicola All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [webpack](https://www.npmjs.com/package/webpack) (version 5.94.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright JS Foundation and other contributors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -40714,10 +39725,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -40725,31 +39736,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [whatwg-url](https://www.npmjs.com/package/whatwg-url) (version 13.0.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: The MIT License (MIT) - + Copyright (c) Sebastian Mayr - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40757,31 +39767,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [whatwg-url](https://www.npmjs.com/package/whatwg-url) (version 5.0.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: The MIT License (MIT) - + Copyright (c) 2015–2016 Sebastian Mayr - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40789,31 +39798,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [which-boxed-primitive](https://www.npmjs.com/package/which-boxed-primitive) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40821,31 +39829,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [which-collection](https://www.npmjs.com/package/which-collection) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40853,31 +39860,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [which-typed-array](https://www.npmjs.com/package/which-typed-array) (version 1.1.15) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40885,25 +39891,25 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [which](https://www.npmjs.com/package/which) (version 2.0.2) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -40911,31 +39917,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [winreg-ts](https://www.npmjs.com/package/winreg-ts) (version 1.0.4) - License tags: BSD-2-Clause License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Emmanuel Kimmerlin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40943,25 +39948,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [wrappy](https://www.npmjs.com/package/wrappy) (version 1.0.2) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -40969,46 +39973,45 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [write-file-atomic](https://www.npmjs.com/package/write-file-atomic) (version 5.0.1) - License tags: ISC License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) 2015, Rebecca Turner - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + - + ### [xtend](https://www.npmjs.com/package/xtend) (version 4.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) Copyright (c) 2012-2014 Raynos. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -41016,25 +40019,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [yallist](https://www.npmjs.com/package/yallist) (version 3.1.1) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -41042,25 +40044,24 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [yallist](https://www.npmjs.com/package/yallist) (version 4.0.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -41068,24 +40069,23 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [yargs-parser](https://www.npmjs.com/package/yargs-parser) (version 21.1.1) - License tags: ISC License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright (c) 2016, Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE @@ -41093,31 +40093,30 @@ License files: OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [zod](https://www.npmjs.com/package/zod) (version 3.22.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Colin McDonnell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -41125,3 +40124,6 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 6f640c165fe..716ed6f3347 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 1, 2024 at 01:54 PM +Generated on Wed, Oct 2, 2024 at 08:47 AM ## Table of Contents From e46cc6d699788ddebb4c217ecaff1490889b22b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Wed, 2 Oct 2024 18:13:17 +0200 Subject: [PATCH 17/31] fix(hadron-build): use `ditto` instead of zip to package on MacOS COMPASS-7737 (#6315) Use ditto instead of zip to package on MacOS --- packages/hadron-build/lib/zip.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/hadron-build/lib/zip.js b/packages/hadron-build/lib/zip.js index 63c720405e1..557f6f300d3 100644 --- a/packages/hadron-build/lib/zip.js +++ b/packages/hadron-build/lib/zip.js @@ -24,8 +24,15 @@ async function zip(_opts, done) { if (opts.platform !== 'darwin') { await promisify(zipFolder)(opts.dir, opts.outPath); } else { - const args = ['-r', '--symlinks', opts.outPath, './']; - execFileSync('zip', args, { + const args = [ + '-V', // Print a line for every file copied + '-c', // Create an archive at the destination path + '-k', // PKZip archive + '--sequesterRsrc', // Preserve resource forks and HFS meta-data in the subdirectory __MACOSX + './', + opts.outPath, + ]; + execFileSync('ditto', args, { env: process.env, cwd: path.join(opts.dir, '..'), stdio: 'inherit', From 7424a4e00737e699bb080653472cb054f8309c3b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:19:55 +0000 Subject: [PATCH 18/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6319) Update report Co-authored-by: kraenhansen <1243959+kraenhansen@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 716ed6f3347..8f45b6a7b36 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Wed, Oct 2, 2024 at 08:47 AM +Generated on Wed, Oct 2, 2024 at 04:19 PM ## Table of Contents From b5efca6100f6574e3ad808905c5cd762b6022bab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Wed, 2 Oct 2024 18:35:56 +0200 Subject: [PATCH 19/31] chore(ci): use "archive.targz_pack" command to archive e2e logs (#6316) Use "archive.targz_pack" command to archive e2e logs --- .evergreen/functions.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.evergreen/functions.yml b/.evergreen/functions.yml index 68b4dd24be7..945007a4c97 100644 --- a/.evergreen/functions.yml +++ b/.evergreen/functions.yml @@ -81,12 +81,12 @@ variables: # This is here with the variables because anchors aren't supported across includes post: - - command: shell.exec + - command: archive.targz_pack params: - working_dir: src - shell: bash - script: | - tar czf all-e2e-logs.tgz packages/compass-e2e-tests/.log + target: src/all-e2e-logs.tgz + source_dir: src/packages/compass-e2e-tests/.log + include: + - "**" - command: s3.put params: <<: *save-artifact-params-private From c79c68efaaf973a737d22ffb2c51933e45c7d300 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:42:44 +0000 Subject: [PATCH 20/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6320) Update report Co-authored-by: kraenhansen <1243959+kraenhansen@users.noreply.github.com> --- AUTHORS | 1 + docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 469ce9a8c9b..d33515d2c0e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -90,3 +90,4 @@ Betsy Button <36177962+betsybutton@users.noreply.github.com> Vivian Xiao <57568527+VivianTNT@users.noreply.github.com> admin-token-bot <36773031+admin-token-bot@users.noreply.github.com> Kræn Hansen +Kræn Hansen diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 8f45b6a7b36..3eee2fb1401 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Wed, Oct 2, 2024 at 04:19 PM +Generated on Wed, Oct 2, 2024 at 04:42 PM ## Table of Contents From d68c185a60691b82208f145eaacd1e61dbc0b475 Mon Sep 17 00:00:00 2001 From: Le Roux Bodenstein Date: Thu, 3 Oct 2024 16:50:38 +0100 Subject: [PATCH 21/31] feat(compass-indexes): Poll rolling indexes where available, add status column COMPASS-8217 COMPASS-8329 (#6318) * WIP * add polling for rolling indexes, status column * minus comment * add ticket number * feedback, tests * test rolling index fetch * info icon and tooltip on the rolling index build badge * tweaks --- .../src/components/indexes/indexes.spec.tsx | 15 +-- .../regular-indexes-table/property-field.tsx | 49 +------ .../regular-indexes-table.spec.tsx | 107 ++++++++++++++- .../regular-indexes-table.tsx | 126 +++++++++++++++--- .../regular-indexes-table/status-field.tsx | 102 ++++++++++++++ .../src/modules/regular-indexes.spec.ts | 60 ++++++++- .../src/modules/regular-indexes.ts | 42 +++++- .../src/modules/rolling-indexes-service.ts | 4 +- 8 files changed, 419 insertions(+), 86 deletions(-) create mode 100644 packages/compass-indexes/src/components/regular-indexes-table/status-field.tsx diff --git a/packages/compass-indexes/src/components/indexes/indexes.spec.tsx b/packages/compass-indexes/src/components/indexes/indexes.spec.tsx index 4706d23a155..0c2511a5081 100644 --- a/packages/compass-indexes/src/components/indexes/indexes.spec.tsx +++ b/packages/compass-indexes/src/components/indexes/indexes.spec.tsx @@ -222,11 +222,11 @@ describe('Indexes Component', function () { }); const indexesList = screen.getByTestId('indexes-list'); - const indexPropertyField = within(indexesList).getAllByTestId( - 'indexes-properties-field' - )[1]; - expect(indexPropertyField).to.contain.text('In Progress ...'); + const indexStatusField = within(indexesList).getAllByTestId( + 'indexes-status-field' + )[1]; + expect(indexStatusField).to.contain.text('In Progress'); const dropIndexButton = within(indexesList).queryByTestId( 'index-actions-delete-action' @@ -278,11 +278,10 @@ describe('Indexes Component', function () { }); const indexesList = screen.getByTestId('indexes-list'); - const indexPropertyField = within(indexesList).getAllByTestId( - 'indexes-properties-field' + const indexStatusField = within(indexesList).getAllByTestId( + 'indexes-status-field' )[1]; - - expect(indexPropertyField).to.contain.text('Failed'); + expect(indexStatusField).to.contain.text('Failed'); const dropIndexButton = within(indexesList).getByTestId( 'index-actions-delete-action' diff --git a/packages/compass-indexes/src/components/regular-indexes-table/property-field.tsx b/packages/compass-indexes/src/components/regular-indexes-table/property-field.tsx index 2c09340139e..e9994e21d1d 100644 --- a/packages/compass-indexes/src/components/regular-indexes-table/property-field.tsx +++ b/packages/compass-indexes/src/components/regular-indexes-table/property-field.tsx @@ -1,19 +1,8 @@ import React from 'react'; import getIndexHelpLink from '../../utils/index-link-helper'; -import { - spacing, - css, - Tooltip, - Body, - Badge, - BadgeVariant, - useDarkMode, -} from '@mongodb-js/compass-components'; -import type { - InProgressIndex, - RegularIndex, -} from '../../modules/regular-indexes'; +import { spacing, css, Tooltip, Body } from '@mongodb-js/compass-components'; +import type { RegularIndex } from '../../modules/regular-indexes'; import BadgeWithIconLink from '../indexes-table/badge-with-icon-link'; const containerStyles = css({ @@ -61,42 +50,19 @@ const PropertyBadgeWithTooltip: React.FunctionComponent<{ ); }; -const ErrorBadgeWithTooltip: React.FunctionComponent<{ - tooltip?: string | null; - darkMode?: boolean; -}> = ({ tooltip, darkMode }) => { - return ( - Failed} - > - {tooltip} - - ); -}; - type PropertyFieldProps = { cardinality?: RegularIndex['cardinality']; extra?: RegularIndex['extra']; properties: RegularIndex['properties']; - - // TODO(COMPASS-8329): these belong in their own column - status?: InProgressIndex['status']; - error?: InProgressIndex['error']; }; const HIDDEN_INDEX_TEXT = 'HIDDEN'; const PropertyField: React.FunctionComponent = ({ - status, extra, properties, cardinality, - error, }) => { - const darkMode = useDarkMode(); - return (
{extra && @@ -122,17 +88,6 @@ const PropertyField: React.FunctionComponent = ({ link={getIndexHelpLink(HIDDEN_INDEX_TEXT) ?? '#'} /> )} - {status === 'inprogress' && ( - - In Progress ... - - )} - {status === 'failed' && ( - - )}
); }; diff --git a/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.spec.tsx b/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.spec.tsx index 48210c2ac1b..dc98401ac5c 100644 --- a/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.spec.tsx +++ b/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.spec.tsx @@ -12,6 +12,7 @@ import { RegularIndexesTable } from './regular-indexes-table'; import type { RegularIndex, InProgressIndex, + RollingIndex, } from '../../modules/regular-indexes'; import { mockRegularIndex } from '../../../test/helpers'; @@ -132,6 +133,21 @@ const inProgressIndexes: InProgressIndex[] = [ }, ]; +const rollingIndexes: RollingIndex[] = [ + { + indexName: 'my-rolling-index', + indexType: { + label: 'regular', + }, + keys: [ + { + name: 'title', + value: 'text', + }, + ], + }, +]; + const renderIndexList = ( props: Partial> = {} ) => { @@ -139,6 +155,7 @@ const renderIndexList = ( within(indexRow).getByTestId('index-actions-hide-action')).to + .throw; + expect(() => within(indexRow).getByTestId('index-actions-delete-action')) + .to.throw; + + userEvent.click(within(indexRow).getByLabelText('Expand row')); + const detailsRow = indexRow.nextSibling as HTMLTableRowElement; + expect(detailsRow).to.exist; + + const details = within(detailsRow).getByTestId( + `indexes-details-${index.indexName}` + ); + expect(details).to.exist; + + for (const key of index.keys) { + expect(within(details).getByTestId(`${key.name}-key`)); + } + } + }); + + it('strips out regular indexes that are also rolling indexes', function () { + const indexesWithRollingIndex: RegularIndex[] = [ + ...indexes, + { + name: rollingIndexes[0].indexName, + fields: rollingIndexes[0].keys.map(({ name, value }) => ({ + field: name, + value, + })), + type: rollingIndexes[0].indexType.label as RegularIndex['type'], + cardinality: 'single', + properties: [], + extra: {}, + size: 11111, + relativeSize: 0, + }, + ]; + + // first do a sanity check to make sure that we would render it as a regular + // index if it didn't also exist as a rolling index + renderIndexList({ + isWritable: true, + readOnly: false, + indexes: indexesWithRollingIndex, + }); + + let indexRow = screen.getByTestId( + `indexes-row-${rollingIndexes[0].indexName}` + ); + expect(within(indexRow).getByTestId('index-ready')).to.exist; + expect(() => within(indexRow).getByTestId('index-building')).to.throw; + + cleanup(); + + // then render it along with a rolling index to make sure it is not showing + // up as a regular index too + renderIndexList({ + isWritable: true, + readOnly: false, + indexes: indexesWithRollingIndex, + rollingIndexes, + }); + + indexRow = screen.getByTestId(`indexes-row-${rollingIndexes[0].indexName}`); + expect(() => within(indexRow).getByTestId('index-ready')).to.throw; + expect(within(indexRow).getByTestId('index-building')).to.exist; + }); + it('does not render the list if there is an error', function () { renderIndexList({ isWritable: true, @@ -331,10 +430,10 @@ describe('RegularIndexesTable Component', function () { expect(getIndexNames()).to.deep.eq(['b', 'a', 'c']); - clickSort('Name and Definition'); + clickSort('Name & Definition'); expect(getIndexNames()).to.deep.eq(['a', 'b', 'c']); - clickSort('Name and Definition'); + clickSort('Name & Definition'); expect(getIndexNames()).to.deep.eq(['c', 'b', 'a']); }); @@ -349,10 +448,10 @@ describe('RegularIndexesTable Component', function () { expect(getIndexNames()).to.deep.eq(['b', 'a', 'c']); - clickSort('Name and Definition'); + clickSort('Name & Definition'); expect(getIndexNames()).to.deep.eq(['a', 'b', 'c']); - clickSort('Name and Definition'); + clickSort('Name & Definition'); expect(getIndexNames()).to.deep.eq(['c', 'b', 'a']); }); diff --git a/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.tsx b/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.tsx index c30158e6fa4..c1235866633 100644 --- a/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.tsx +++ b/packages/compass-indexes/src/components/regular-indexes-table/regular-indexes-table.tsx @@ -15,6 +15,7 @@ import TypeField from './type-field'; import SizeField from './size-field'; import UsageField from './usage-field'; import PropertyField from './property-field'; +import StatusField from './status-field'; import RegularIndexActions from './regular-index-actions'; import InProgressIndexActions from './in-progress-index-actions'; import { IndexesTable } from '../indexes-table'; @@ -31,11 +32,13 @@ import { import type { RegularIndex, InProgressIndex, + RollingIndex, } from '../../modules/regular-indexes'; type RegularIndexesTableProps = { indexes: RegularIndex[]; inProgressIndexes: InProgressIndex[]; + rollingIndexes: RollingIndex[]; serverVersion: string; isWritable?: boolean; onHideIndexClick: (name: string) => void; @@ -56,6 +59,7 @@ type IndexInfo = { size: React.ReactNode; usageCount: React.ReactNode; properties: React.ReactNode; + status: React.ReactNode; actions: undefined | React.ReactNode; renderExpandedContent: React.ReactNode; }; @@ -84,7 +88,7 @@ function sortByProperties(a: MergedIndex, b: MergedIndex) { return 0; } -type SortableField = 'name' | 'type' | 'size' | 'usageCount'; +type SortableField = 'name' | 'type' | 'size' | 'usageCount' | 'status'; function mergedIndexFieldValue( index: MergedIndex, @@ -101,13 +105,40 @@ function mergedIndexFieldValue( return index[field]; } + if (index.compassIndexType === 'rolling-index') { + if (field === 'size' || field === 'usageCount') { + return 0; + } + if (field === 'name') { + return index.indexName; + } + if (field === 'type') { + return index.indexType.label; + } + if (field === 'status') { + return 'building'; + } + return index[field]; + } + + if (field === 'status') { + return 'ready'; + } + return index[field]; } function isSupportedSortField( field: string -): field is 'name' | 'type' | 'size' | 'usageCount' | 'properties' { - return ['name', 'type', 'size', 'usageCount', 'properties'].includes(field); +): field is 'name' | 'type' | 'size' | 'usageCount' | 'properties' | 'status' { + return [ + 'name', + 'type', + 'size', + 'usageCount', + 'properties', + 'status', + ].includes(field); } function sortFn( @@ -142,7 +173,7 @@ function sortFn( const COLUMNS: LGColumnDef[] = [ { accessorKey: 'name', - header: 'Name and Definition', + header: 'Name & Definition', enableSorting: true, }, { @@ -176,6 +207,13 @@ const COLUMNS: LGColumnDef[] = [ sortingFn: sortFn, enableSorting: true, }, + { + accessorKey: 'status', + header: 'Status', + cell: (info) => info.getValue(), + sortingFn: sortFn, + enableSorting: true, + }, ]; const COLUMNS_WITH_ACTIONS: LGColumnDef[] = [ @@ -192,23 +230,54 @@ type MappedRegularIndex = RegularIndex & { compassIndexType: 'regular-index' }; type MappedInProgressIndex = InProgressIndex & { compassIndexType: 'in-progress-index'; }; +type MappedRollingIndex = RollingIndex & { + compassIndexType: 'rolling-index'; + fields: RegularIndex['fields']; +}; -type MergedIndex = MappedRegularIndex | MappedInProgressIndex; +type MergedIndex = + | MappedRegularIndex + | MappedInProgressIndex + | MappedRollingIndex; function mergeIndexes( indexes: RegularIndex[], - inProgressIndexes: InProgressIndex[] + inProgressIndexes: InProgressIndex[], + rollingIndexes: RollingIndex[] ): MergedIndex[] { - const mappedIndexes: MappedRegularIndex[] = indexes.map((index) => { - return { ...index, compassIndexType: 'regular-index' }; - }); + const rollingIndexNames = new Set( + rollingIndexes.map((index) => index.indexName) + ); + + const mappedIndexes: MappedRegularIndex[] = indexes + // exclude partially-built indexes so that we don't include indexes that + // only exist on the primary node and then duplicate those as rolling + // builds in the same table + .filter((index) => !rollingIndexNames.has(index.name)) + .map((index) => { + return { ...index, compassIndexType: 'regular-index' }; + }); const mappedInProgressIndexes: MappedInProgressIndex[] = inProgressIndexes.map((index) => { return { ...index, compassIndexType: 'in-progress-index' }; }); - return [...mappedIndexes, ...mappedInProgressIndexes]; + const mappedRollingIndexes: MappedRollingIndex[] = rollingIndexes.map( + (index) => { + return { + ...index, + compassIndexType: 'rolling-index', + fields: index.keys.map((k) => ({ field: k.name, value: k.value })), + }; + } + ); + + return [ + ...mappedIndexes, + ...mappedInProgressIndexes, + ...mappedRollingIndexes, + ]; } type CommonIndexInfo = Omit; @@ -228,13 +297,9 @@ function getInProgressIndexInfo( type: , size: , usageCount: , - properties: ( - - ), + // TODO(COMPASS-8335): add properties for in-progress indexes + properties: null, + status: , actions: ( , + size: , + usageCount: , + // TODO(COMPASS-7589): add properties for rolling indexes + properties: null, + status: , + actions: null, + }; +} + function getRegularIndexInfo( index: MappedRegularIndex, { @@ -274,6 +355,7 @@ function getRegularIndexInfo( properties={index.properties} /> ), + status: , actions: index.name !== '_id_' && ( []>( () => @@ -321,6 +408,8 @@ export const RegularIndexesTable: React.FunctionComponent< indexData = getInProgressIndexInfo(index, { onDeleteFailedIndexClick, }); + } else if (index.compassIndexType === 'rolling-index') { + indexData = getRollingIndexInfo(index); } else { indexData = getRegularIndexInfo(index, { serverVersion, @@ -379,6 +468,7 @@ const mapState = ({ serverVersion, indexes: regularIndexes.indexes, inProgressIndexes: regularIndexes.inProgressIndexes, + rollingIndexes: regularIndexes.rollingIndexes ?? [], error: regularIndexes.error, }); diff --git a/packages/compass-indexes/src/components/regular-indexes-table/status-field.tsx b/packages/compass-indexes/src/components/regular-indexes-table/status-field.tsx new file mode 100644 index 00000000000..d7386ae1099 --- /dev/null +++ b/packages/compass-indexes/src/components/regular-indexes-table/status-field.tsx @@ -0,0 +1,102 @@ +import React from 'react'; + +import { + spacing, + css, + Tooltip, + Body, + Badge, + BadgeVariant, + useDarkMode, + Icon, +} from '@mongodb-js/compass-components'; +import type { InProgressIndex } from '../../modules/regular-indexes'; + +const statusFieldStyles = css({ + display: 'flex', + gap: spacing[1], + minWidth: spacing[3] * 7, + alignItems: 'baseline', +}); + +const iconBadgeStyles = css({ + gap: spacing[200], +}); + +const ErrorBadgeWithTooltip: React.FunctionComponent<{ + ['data-testid']?: string; + text: string; + tooltip?: string | null; + darkMode?: boolean; +}> = ({ ['data-testid']: dataTestId, text, tooltip, darkMode }) => { + return ( + + {text} + + } + > + {tooltip} + + ); +}; + +type StatusFieldProps = { + status: InProgressIndex['status'] | 'ready' | 'building'; + error?: InProgressIndex['error']; +}; + +const StatusField: React.FunctionComponent = ({ + status, + error, +}) => { + const darkMode = useDarkMode(); + + return ( +
+ {status === 'ready' && ( + + Ready + + )} + + {status === 'building' && ( + + Building + + + } + > + This index is being built in a rolling process + + )} + + {status === 'inprogress' && ( + + In Progress + + )} + + {status === 'failed' && ( + + )} +
+ ); +}; + +export default StatusField; diff --git a/packages/compass-indexes/src/modules/regular-indexes.spec.ts b/packages/compass-indexes/src/modules/regular-indexes.spec.ts index 6fa4cec9632..87385686acd 100644 --- a/packages/compass-indexes/src/modules/regular-indexes.spec.ts +++ b/packages/compass-indexes/src/modules/regular-indexes.spec.ts @@ -26,6 +26,8 @@ import { import * as regularIndexesSlice from './regular-indexes'; import type { FetchStatus } from '../utils/fetch-status'; import { waitFor } from '@mongodb-js/testing-library-compass'; +import type { ConnectionInfoRef } from '@mongodb-js/compass-connections/provider'; +import type { AtlasService } from '@mongodb-js/atlas-service/provider'; describe('regular-indexes module', function () { before(() => { @@ -36,7 +38,7 @@ describe('regular-indexes module', function () { sinon.restore(); }); - describe('#fetchRegularIndexees action', function () { + describe('#fetchRegularIndexes action', function () { it('sets status to ERROR and sets the error when there is an error', async function () { const error = new Error('failed to connect to server'); const store = await setupStoreAndWait( @@ -59,6 +61,62 @@ describe('regular-indexes module', function () { expect(state.status).to.equal('ERROR'); expect(state.indexes).to.deep.equal(defaultSortedIndexes); }); + + it('fetches rolling indexes when supported', async function () { + const connectionInfoRef = { + current: { + atlasMetadata: { + metricsType: 'cluster', + instanceSize: 'M10', + }, + }, + } as ConnectionInfoRef; + + const atlasServiceStub = { + automationAgentRequest: sinon.stub(), + automationAgentAwait: sinon.stub(), + }; + + atlasServiceStub.automationAgentRequest.resolves({ + _id: '_id', + requestType: 'requestType', + }); + atlasServiceStub.automationAgentAwait.resolves({ + response: [ + { indexName: 'abc', status: 'rolling build' }, + { indexName: 'cba', status: 'exists' }, + ], + }); + + const indexesStub = sinon.stub().resolves(defaultSortedIndexes); + + const store = await setupStoreAndWait( + {}, + { + indexes: indexesStub, + }, + { + connectionInfoRef, + atlasService: atlasServiceStub as unknown as AtlasService, + } + ); + + // it fetches immediately + await waitFor(() => { + expect(store.getState().regularIndexes.status).to.eq('READY'); + }); + + expect(indexesStub.callCount).to.equal(1); + expect(atlasServiceStub.automationAgentRequest.callCount).to.equal(1); + expect(atlasServiceStub.automationAgentAwait.callCount).to.equal(1); + + expect(store.getState().regularIndexes.indexes).to.have.lengthOf( + defaultSortedIndexes.length + ); + expect(store.getState().regularIndexes.rollingIndexes).to.have.lengthOf( + 1 + ); + }); }); describe('#refreshRegularIndexes action', function () { diff --git a/packages/compass-indexes/src/modules/regular-indexes.ts b/packages/compass-indexes/src/modules/regular-indexes.ts index 0b71b617b97..c43d8c9f25c 100644 --- a/packages/compass-indexes/src/modules/regular-indexes.ts +++ b/packages/compass-indexes/src/modules/regular-indexes.ts @@ -19,6 +19,8 @@ import { } from '../utils/modal-descriptions'; import type { IndexSpecification, CreateIndexesOptions } from 'mongodb'; import { hasColumnstoreIndex } from '../utils/columnstore-indexes'; +import type { AtlasIndexStats } from './rolling-indexes-service'; +import { connectionSupports } from '@mongodb-js/compass-connections'; export type RegularIndex = Partial & Pick< @@ -42,6 +44,14 @@ export type InProgressIndex = Pick & { error?: string; }; +export type RollingIndex = Partial & + Pick< + AtlasIndexStats, + // These are the only ones we're treating as required because they are the + // ones we use. Everything else is treated as optional. + 'indexName' | 'indexType' | 'keys' + >; + const prepareInProgressIndex = ( id: string, { @@ -52,9 +62,9 @@ const prepareInProgressIndex = ( spec: CreateIndexSpec; } ): InProgressIndex => { - const inProgressIndexFields = Object.keys(spec).map((field: string) => ({ + const inProgressIndexFields = Object.entries(spec).map(([field, value]) => ({ field, - value: spec[field], + value, })); const inProgressIndexName = name || @@ -109,6 +119,7 @@ type FetchIndexesStartedAction = { type FetchIndexesSucceededAction = { type: ActionTypes.FetchIndexesSucceeded; indexes: RegularIndex[]; + rollingIndexes?: RollingIndex[]; }; type FetchIndexesFailedAction = { @@ -141,6 +152,7 @@ export type State = { status: FetchStatus; indexes: RegularIndex[]; inProgressIndexes: InProgressIndex[]; + rollingIndexes?: RollingIndex[]; error?: string; }; @@ -190,6 +202,7 @@ export default function reducer( return { ...state, indexes: action.indexes, + rollingIndexes: action.rollingIndexes, status: FetchStatuses.READY, }; } @@ -275,10 +288,12 @@ const fetchIndexesStarted = ( }); const fetchIndexesSucceeded = ( - indexes: RegularIndex[] + indexes: RegularIndex[], + rollingIndexes?: RollingIndex[] ): FetchIndexesSucceededAction => ({ type: ActionTypes.FetchIndexesSucceeded, indexes, + rollingIndexes, }); const fetchIndexesFailed = (error: string): FetchIndexesFailedAction => ({ @@ -302,7 +317,11 @@ function pickCollectionStatFields(state: RootState) { const fetchIndexes = ( reason: FetchReason ): IndexesThunkAction, FetchIndexesActions> => { - return async (dispatch, getState, { dataService, collection }) => { + return async ( + dispatch, + getState, + { dataService, collection, connectionInfoRef, rollingIndexesService } + ) => { const { isReadonlyView, namespace, @@ -319,11 +338,22 @@ const fetchIndexes = ( return; } + const isRollingIndexesSupported = connectionSupports( + connectionInfoRef.current, + 'rollingIndexCreation' + ); + try { dispatch(fetchIndexesStarted(reason)); - const indexes = await dataService.indexes(namespace); + const promises = [ + dataService.indexes(namespace), + isRollingIndexesSupported + ? rollingIndexesService.listRollingIndexes(namespace) + : undefined, + ] as [Promise, Promise | undefined]; + const [indexes, rollingIndexes] = await Promise.all(promises); const indexesBefore = pickCollectionStatFields(getState()); - dispatch(fetchIndexesSucceeded(indexes)); + dispatch(fetchIndexesSucceeded(indexes, rollingIndexes)); const indexesAfter = pickCollectionStatFields(getState()); if ( reason !== FetchReasons.INITIAL_FETCH && diff --git a/packages/compass-indexes/src/modules/rolling-indexes-service.ts b/packages/compass-indexes/src/modules/rolling-indexes-service.ts index df89c246bed..5f78a65f026 100644 --- a/packages/compass-indexes/src/modules/rolling-indexes-service.ts +++ b/packages/compass-indexes/src/modules/rolling-indexes-service.ts @@ -3,13 +3,13 @@ import type { ConnectionInfoRef } from '@mongodb-js/compass-connections/provider import type { CreateIndexesOptions } from 'mongodb'; import toNS from 'mongodb-ns'; -type AtlasIndexStats = { +export type AtlasIndexStats = { collName: string; dbName: string; indexName: string; indexProperties: { label: string; properties: Record }[]; indexType: { label: string }; - keys: { name: string; value: string | number }; + keys: { name: string; value: string | number }[]; sizeBytes: number; status: 'rolling build' | 'building' | 'exists'; }; From 946a60c9f5db769f6e6b66b2dce4e92bba3c39c3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 15:58:00 +0000 Subject: [PATCH 22/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6322) Update report Co-authored-by: lerouxb <69737+lerouxb@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index fc0e708f5e9..429a2a51738 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Wed Oct 02 2024. +This document was automatically generated on Thu Oct 03 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 3eee2fb1401..7f9bd1d842e 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Wed, Oct 2, 2024 at 04:42 PM +Generated on Thu, Oct 3, 2024 at 03:57 PM ## Table of Contents From eb86f23c0bba23d336a5ae63066dddf82baba130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Fri, 4 Oct 2024 09:35:56 +0200 Subject: [PATCH 23/31] chore(ci): log electron app messages (#6317) Logging electron app log --- packages/compass-e2e-tests/helpers/compass.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/compass-e2e-tests/helpers/compass.ts b/packages/compass-e2e-tests/helpers/compass.ts index 7d894db7309..531edc9420e 100644 --- a/packages/compass-e2e-tests/helpers/compass.ts +++ b/packages/compass-e2e-tests/helpers/compass.ts @@ -143,8 +143,8 @@ export const serverSatisfies = ( ); }; -// For the user data dirs -let i = 0; +// For the user data dirs and logs +let runCounter = 0; interface Coverage { main?: string; @@ -569,7 +569,7 @@ async function processCommonOpts({ if (!defaultUserDataDir) { defaultUserDataDir = path.join( os.tmpdir(), - `user-data-dir-${Date.now().toString(32)}-${++i}` + `user-data-dir-${Date.now().toString(32)}-${runCounter}` ); } const chromedriverLogPath = path.join( @@ -630,6 +630,7 @@ async function startCompassElectron( name: string, opts: StartCompassOptions = {} ): Promise { + runCounter++; const { testPackagedApp, binary } = await getCompassExecutionParameters(); const { needsCloseWelcomeModal, webdriverOptions, wdioOptions, chromeArgs } = @@ -644,6 +645,15 @@ async function startCompassElectron( chromeArgs.push('--showed-network-opt-in=true'); } + // Logging output from Electron, even before the app loads any JavaScript + const electronLogFile = path.join(LOG_PATH, `electron-${runCounter}.log`); + chromeArgs.push( + // See https://www.electronjs.org/docs/latest/api/command-line-switches#--enable-loggingfile + '--enable-logging=file', + // See https://www.electronjs.org/docs/latest/api/command-line-switches#--log-filepath + `--log-file=${electronLogFile}` + ); + if (opts.extraSpawnArgs) { chromeArgs.push(...opts.extraSpawnArgs); } @@ -756,6 +766,7 @@ export async function startBrowser( // eslint-disable-next-line @typescript-eslint/no-unused-vars opts: StartCompassOptions = {} ) { + runCounter++; const { webdriverOptions, wdioOptions } = await processCommonOpts(); const browser: CompassBrowser = (await remote({ From a0c702a3d11eaf5ae31ba404efcc9eb1fc189ae8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 07:42:45 +0000 Subject: [PATCH 24/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6323) Update report Co-authored-by: kraenhansen <1243959+kraenhansen@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 429a2a51738..36286290f53 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Thu Oct 03 2024. +This document was automatically generated on Fri Oct 04 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 7f9bd1d842e..1026e01a09c 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Thu, Oct 3, 2024 at 03:57 PM +Generated on Fri, Oct 4, 2024 at 07:42 AM ## Table of Contents From 495c14025e45bdc5b6f2f7abd1768885de29d92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Fri, 4 Oct 2024 11:43:46 +0200 Subject: [PATCH 25/31] chore(ci): build and test packaged app on the newer macos version (2nd attempt) COMPASS-8090 (#6232) Upgrade variants to use MacOS 14 --- .evergreen/buildvariants-and-tasks.in.yml | 27 ++++++++++++----- .evergreen/buildvariants-and-tasks.yml | 36 ++++++++++++++++++----- 2 files changed, 49 insertions(+), 14 deletions(-) diff --git a/.evergreen/buildvariants-and-tasks.in.yml b/.evergreen/buildvariants-and-tasks.in.yml index c8e742c289d..a0ae901cefd 100644 --- a/.evergreen/buildvariants-and-tasks.in.yml +++ b/.evergreen/buildvariants-and-tasks.in.yml @@ -49,48 +49,61 @@ const PACKAGE_BUILD_VARIANTS = [ { name: 'package-macos-x64', display_name: 'Package MacOS Intel', - run_on: 'macos-1100', + run_on: 'macos-14', silk_asset_group: 'compass-macos', }, { name: 'package-macos-arm', display_name: 'Package MacOS Arm64', - run_on: 'macos-1100-arm64', + run_on: 'macos-14-arm64', silk_asset_group: 'compass-macos-arm', } ]; const TEST_PACKAGED_APP_BUILD_VARIANTS = [ { - name: 'test-server-ubuntu', + name: 'test-packaged-app-ubuntu', display_name: 'Ubuntu 20.04', run_on: 'ubuntu2004-large', depends_on: 'package-ubuntu', }, { - name: 'test-server-windows', + name: 'test-packaged-app-windows', display_name: 'Windows 10', run_on: 'windows-vsCurrent-large', depends_on: 'package-windows', }, { - name: 'test-server-rhel', + name: 'test-packaged-app-rhel', display_name: 'RHEL 8.0', run_on: 'rhel80-large', depends_on: 'package-rhel', }, { - name: 'test-server-macos-11-arm', + name: 'test-packaged-app-macos-11-arm', display_name: 'MacOS arm64 11', run_on: 'macos-1100-arm64-gui', depends_on: 'package-macos-arm' }, { - name: 'test-server-macos-11-x64', + name: 'test-packaged-app-macos-11-x64', display_name: 'MacOS x64 11', run_on: 'macos-1100-gui', patchable: false, depends_on: 'package-macos-x64' + }, + { + name: 'test-packaged-app-macos-14-arm', + display_name: 'MacOS arm64 14', + run_on: 'macos-14-arm64-gui', + depends_on: 'package-macos-arm' + }, + { + name: 'test-packaged-app-macos-14-x64', + display_name: 'MacOS x64 14', + run_on: 'macos-14-gui', + patchable: false, + depends_on: 'package-macos-x64' } ]; diff --git a/.evergreen/buildvariants-and-tasks.yml b/.evergreen/buildvariants-and-tasks.yml index 8c3aa4df9f3..12e0c34f457 100644 --- a/.evergreen/buildvariants-and-tasks.yml +++ b/.evergreen/buildvariants-and-tasks.yml @@ -62,7 +62,7 @@ buildvariants: expansions: silk_asset_group: compass-macos display_name: Package MacOS Intel - run_on: macos-1100 + run_on: macos-14 tasks: - name: package-compass - name: package-compass-isolated @@ -71,7 +71,7 @@ buildvariants: expansions: silk_asset_group: compass-macos-arm display_name: Package MacOS Arm64 - run_on: macos-1100-arm64 + run_on: macos-14-arm64 tasks: - name: package-compass - name: package-compass-isolated @@ -145,7 +145,7 @@ buildvariants: - name: test-server-latest-alpha-1 - name: test-server-latest-alpha-2 - name: test-server-latest-alpha-3 - - name: test-server-ubuntu + - name: test-packaged-app-ubuntu display_name: Test Packaged App Ubuntu 20.04 run_on: ubuntu2004-large patchable: true @@ -156,7 +156,7 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 - - name: test-server-windows + - name: test-packaged-app-windows display_name: Test Packaged App Windows 10 run_on: windows-vsCurrent-large patchable: true @@ -167,7 +167,7 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 - - name: test-server-rhel + - name: test-packaged-app-rhel display_name: Test Packaged App RHEL 8.0 run_on: rhel80-large patchable: true @@ -178,7 +178,7 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 - - name: test-server-macos-11-arm + - name: test-packaged-app-macos-11-arm display_name: Test Packaged App MacOS arm64 11 run_on: macos-1100-arm64-gui patchable: true @@ -189,7 +189,7 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 - - name: test-server-macos-11-x64 + - name: test-packaged-app-macos-11-x64 display_name: Test Packaged App MacOS x64 11 run_on: macos-1100-gui patchable: false @@ -200,6 +200,28 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 + - name: test-packaged-app-macos-14-arm + display_name: Test Packaged App MacOS arm64 14 + run_on: macos-14-arm64-gui + patchable: true + depends_on: + - name: package-compass + variant: package-macos-arm + tasks: + - name: test-packaged-app-1 + - name: test-packaged-app-2 + - name: test-packaged-app-3 + - name: test-packaged-app-macos-14-x64 + display_name: Test Packaged App MacOS x64 14 + run_on: macos-14-gui + patchable: false + depends_on: + - name: package-compass + variant: package-macos-x64 + tasks: + - name: test-packaged-app-1 + - name: test-packaged-app-2 + - name: test-packaged-app-3 - name: publish display_name: Publish Artifacts run_on: ubuntu2004-large From 9ec077ecd41aa50fb5438185736d62d984c3b680 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 09:50:24 +0000 Subject: [PATCH 26/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6324) Update report Co-authored-by: kraenhansen <1243959+kraenhansen@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 1026e01a09c..eaf3888ef04 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Fri, Oct 4, 2024 at 07:42 AM +Generated on Fri, Oct 4, 2024 at 09:50 AM ## Table of Contents From 5b3ca4b753f3002ab10f1bf84c173bbe4cd37a26 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Fri, 4 Oct 2024 12:02:29 +0200 Subject: [PATCH 27/31] feat(indexes): add an option to create indexes through rolling build COMPASS-8216 (#6309) * feat(indexes): add an option to create indexes through rolling build * chore(atlas-service): map non-api cloud backend errors * chore(indexes): fix checkbox types * chore: fix linting issues * chore(index): adjust rolling indexes fetching logic * fix(indexes): bind correct instance --- packages/atlas-service/src/atlas-service.ts | 13 ++-- packages/atlas-service/src/util.ts | 47 ++++++++----- .../create-index-form/checkbox-input.tsx | 7 +- .../create-index-form/create-index-form.tsx | 12 ++++ .../src/modules/create-index.tsx | 58 +++++++++++++--- .../src/modules/regular-indexes.ts | 14 ++-- .../modules/rolling-indexes-service.spec.ts | 22 +++--- .../src/modules/rolling-indexes-service.ts | 67 +++++++++++++------ 8 files changed, 171 insertions(+), 69 deletions(-) diff --git a/packages/atlas-service/src/atlas-service.ts b/packages/atlas-service/src/atlas-service.ts index c57a506b852..dd80e78bfa3 100644 --- a/packages/atlas-service/src/atlas-service.ts +++ b/packages/atlas-service/src/atlas-service.ts @@ -14,6 +14,11 @@ export type AtlasServiceOptions = { defaultHeaders?: Record; }; +function normalizePath(path?: string) { + path = path ? (path.startsWith('/') ? path : `/${path}`) : ''; + return encodeURI(path); +} + export class AtlasService { private config: AtlasServiceConfig; constructor( @@ -25,16 +30,14 @@ export class AtlasService { this.config = getAtlasConfig(preferences); } adminApiEndpoint(path?: string, requestId?: string): string { - const uri = encodeURI( - `${this.config.atlasApiBaseUrl}${path ? `/${path}` : ''}` - ); + const uri = `${this.config.atlasApiBaseUrl}${normalizePath(path)}`; const query = requestId ? `?request_id=${encodeURIComponent(requestId)}` : ''; return `${uri}${query}`; } cloudEndpoint(path?: string): string { - return encodeURI(`${this.config.cloudBaseUrl}${path ? `/${path}` : ''}`); + return `${this.config.cloudBaseUrl}${normalizePath(path)}`; } regionalizedCloudEndpoint( _atlasMetadata: Pick, @@ -45,7 +48,7 @@ export class AtlasService { return this.cloudEndpoint(path); } driverProxyEndpoint(path?: string): string { - return encodeURI(`${this.config.wsBaseUrl}${path ? `/${path}` : ''}`); + return `${this.config.wsBaseUrl}${normalizePath(path)}`; } async fetch(url: RequestInfo | URL, init?: RequestInit): Promise { throwIfNetworkTrafficDisabled(this.preferences); diff --git a/packages/atlas-service/src/util.ts b/packages/atlas-service/src/util.ts index fe93939d8db..fb27ab37e99 100644 --- a/packages/atlas-service/src/util.ts +++ b/packages/atlas-service/src/util.ts @@ -46,10 +46,21 @@ export function throwIfNetworkTrafficDisabled( /** * https://www.mongodb.com/docs/atlas/api/atlas-admin-api-ref/#errors */ -export function isServerError( +function isAtlasAPIError( err: any ): err is { error: number; errorCode: string; detail: string } { - return Boolean(err.error && err.errorCode && err.detail); + return Boolean(err && err.error && err.errorCode && err.detail); +} + +function isCloudBackendError(err: any): err is { + errorCode: string; + message: string; + version: string; + status: string; +} { + return Boolean( + err && err.errorCode && err.message && err.version && err.status + ); } export async function throwIfNotOk( @@ -60,21 +71,25 @@ export async function throwIfNotOk( } const messageJSON = await res.json().catch(() => undefined); - if (messageJSON && isServerError(messageJSON)) { - throw new AtlasServiceError( - 'ServerError', - res.status, - messageJSON.detail ?? 'Internal server error', - messageJSON.errorCode ?? 'INTERNAL_SERVER_ERROR' - ); - } else { - throw new AtlasServiceError( - 'NetworkError', - res.status, - res.statusText, - `${res.status}` - ); + + const status = res.status; + let statusText = res.statusText; + let errorCode = `${res.status}`; + let errorName: 'NetworkError' | 'ServerError' = 'NetworkError'; + + if (isAtlasAPIError(messageJSON)) { + errorName = 'ServerError'; + statusText = messageJSON.detail; + errorCode = messageJSON.errorCode; + } + + if (isCloudBackendError(messageJSON)) { + errorName = 'ServerError'; + statusText = messageJSON.message; + errorCode = messageJSON.errorCode; } + + throw new AtlasServiceError(errorName, status, statusText, errorCode); } export type AtlasServiceConfig = { diff --git a/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx b/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx index ea35ff7212c..9e7916625f0 100644 --- a/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx +++ b/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx @@ -11,8 +11,8 @@ import { OPTIONS, optionChanged } from '../../modules/create-index'; type CheckboxInputProps = { name: CheckboxOptions; - label: string; - description: string; + label: React.ReactNode; + description: React.ReactNode; disabled?: boolean; checked: boolean; onChange(name: CheckboxOptions, newVal: boolean): void; @@ -37,6 +37,9 @@ export const CheckboxInput: React.FunctionComponent = ({ onChange(name, event.target.checked); }} label={} + // @ts-expect-error leafygreen types only allow strings here, but can + // render a ReactNode too (and we use that to render links inside + // descriptions) description={description} disabled={disabled} /> diff --git a/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx b/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx index 555af792ea8..2cb7b37cde4 100644 --- a/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx +++ b/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx @@ -6,6 +6,10 @@ import { CreateIndexFields } from '../create-index-fields'; import { hasColumnstoreIndexesSupport } from '../../utils/columnstore-indexes'; import CheckboxInput from './checkbox-input'; import CollapsibleInput from './collapsible-input'; +import { + useConnectionInfo, + useConnectionSupports, +} from '@mongodb-js/compass-connections/provider'; const createIndexModalFieldsStyles = css({ margin: `${spacing[4]}px 0 ${spacing[5]}px 0`, @@ -38,6 +42,11 @@ function CreateIndexForm({ onAddFieldClick, onRemoveFieldClick, }: CreateIndexFormProps) { + const { id: connectionId } = useConnectionInfo(); + const supportsRollingIndexes = useConnectionSupports( + connectionId, + 'rollingIndexCreation' + ); const schemaFields = useAutocompleteFields(namespace); const schemaFieldNames = useMemo(() => { return schemaFields @@ -86,6 +95,9 @@ function CreateIndexForm({ )} + {supportsRollingIndexes && ( + + )}
diff --git a/packages/compass-indexes/src/modules/create-index.tsx b/packages/compass-indexes/src/modules/create-index.tsx index fb5d380197c..ba723067276 100644 --- a/packages/compass-indexes/src/modules/create-index.tsx +++ b/packages/compass-indexes/src/modules/create-index.tsx @@ -1,9 +1,9 @@ import { EJSON, ObjectId } from 'bson'; -import type { CreateIndexesOptions } from 'mongodb'; +import type { CreateIndexesOptions, IndexDirection } from 'mongodb'; import { isCollationValid } from 'mongodb-query-parser'; import React from 'react'; import type { Action, Reducer, Dispatch } from 'redux'; -import { Badge } from '@mongodb-js/compass-components'; +import { Badge, Link } from '@mongodb-js/compass-components'; import { isAction } from '../utils/is-action'; import type { IndexesThunkAction } from '.'; import type { RootState } from '.'; @@ -191,6 +191,20 @@ export const OPTIONS = { description: 'Sparse indexes only contain entries for documents that have the indexed field, even if the index field contains a null value. The index skips over any document that is missing the indexed field.', }, + buildInRollingProcess: { + type: 'checkbox', + label: 'Build in rolling process', + description: ( + <> + Building indexes in a rolling fashion can minimize the performance + impact of index builds. We only recommend using rolling index builds + when regular index builds do not meet your needs.{' '} + + Learn More + + + ), + }, } as const; type OptionNames = keyof typeof OPTIONS; @@ -317,13 +331,24 @@ function isEmptyValue(value: unknown) { return false; } +function fieldTypeToIndexDirection(type: string): IndexDirection { + if (type === '1 (asc)') { + return 1; + } + if (type === '-1 (desc)') { + return -1; + } + if (type === 'text' || type === '2dsphere') { + return type; + } + throw new Error(`Unsupported field type: ${type}`); +} + export const createIndexFormSubmitted = (): IndexesThunkAction< void, ErrorEncounteredAction | CreateIndexFormSubmittedAction > => { return (dispatch, getState) => { - const spec = {} as CreateIndexSpec; - // Check for field errors. if ( getState().createIndex.fields.some( @@ -336,12 +361,18 @@ export const createIndexFormSubmitted = (): IndexesThunkAction< const formIndexOptions = getState().createIndex.options; - getState().createIndex.fields.forEach((field: Field) => { - let type: string | number = field.type; - if (field.type === '1 (asc)') type = 1; - if (field.type === '-1 (desc)') type = -1; - spec[field.name] = type; - }); + let spec: Record; + + try { + spec = Object.fromEntries( + getState().createIndex.fields.map((field) => { + return [field.name, fieldTypeToIndexDirection(field.type)]; + }) + ); + } catch (e) { + dispatch(errorEncountered((e as any).message)); + return; + } const options: CreateIndexesOptions = {}; @@ -437,7 +468,12 @@ export const createIndexFormSubmitted = (): IndexesThunkAction< dispatch({ type: ActionTypes.CreateIndexFormSubmitted }); void dispatch( - createRegularIndex(getState().createIndex.indexId, spec, options) + createRegularIndex( + getState().createIndex.indexId, + spec, + options, + !!formIndexOptions.buildInRollingProcess.value + ) ); }; }; diff --git a/packages/compass-indexes/src/modules/regular-indexes.ts b/packages/compass-indexes/src/modules/regular-indexes.ts index c43d8c9f25c..b1edf2e49d7 100644 --- a/packages/compass-indexes/src/modules/regular-indexes.ts +++ b/packages/compass-indexes/src/modules/regular-indexes.ts @@ -17,7 +17,7 @@ import { hideModalDescription, unhideModalDescription, } from '../utils/modal-descriptions'; -import type { IndexSpecification, CreateIndexesOptions } from 'mongodb'; +import type { CreateIndexesOptions, IndexDirection } from 'mongodb'; import { hasColumnstoreIndex } from '../utils/columnstore-indexes'; import type { AtlasIndexStats } from './rolling-indexes-service'; import { connectionSupports } from '@mongodb-js/compass-connections'; @@ -458,8 +458,9 @@ const indexCreationFailed = ( export function createRegularIndex( inProgressIndexId: string, - spec: CreateIndexSpec, - options: CreateIndexesOptions + spec: Record, + options: CreateIndexesOptions, + isRollingIndexBuild: boolean ): IndexesThunkAction< Promise, | IndexCreationStartedAction @@ -469,7 +470,7 @@ export function createRegularIndex( return async ( dispatch, getState, - { track, dataService, connectionInfoRef } + { track, dataService, rollingIndexesService, connectionInfoRef } ) => { const ns = getState().namespace; const inProgressIndex = prepareInProgressIndex(inProgressIndexId, { @@ -501,7 +502,10 @@ export function createRegularIndex( }; try { - await dataService.createIndex(ns, spec as IndexSpecification, options); + const createFn = isRollingIndexBuild + ? rollingIndexesService.createRollingIndex.bind(rollingIndexesService) + : dataService.createIndex.bind(dataService); + await createFn(ns, spec, options); dispatch(indexCreationSucceeded(inProgressIndexId)); track('Index Created', trackEvent, connectionInfoRef.current); diff --git a/packages/compass-indexes/src/modules/rolling-indexes-service.spec.ts b/packages/compass-indexes/src/modules/rolling-indexes-service.spec.ts index 6fd94829d5f..29381c4d7f9 100644 --- a/packages/compass-indexes/src/modules/rolling-indexes-service.spec.ts +++ b/packages/compass-indexes/src/modules/rolling-indexes-service.spec.ts @@ -6,6 +6,8 @@ describe('RollingIndexesService', function () { const atlasServiceStub = { automationAgentRequest: Sinon.stub(), automationAgentAwait: Sinon.stub(), + authenticatedFetch: Sinon.stub(), + cloudEndpoint: Sinon.stub().callsFake((str) => str), }; let service: RollingIndexesService; @@ -55,15 +57,19 @@ describe('RollingIndexesService', function () { }); describe('createRollingIndex', function () { - it('should fail if automation agent returned unexpected result', async function () { - atlasServiceStub.automationAgentRequest.resolves({ _id: '_id' }); + it('should send the request to the kinda automation agent endpoint with the matching body and path params', async function () { + await service.createRollingIndex('db.coll', {}, {}); - try { - await service.createRollingIndex('db.coll', {}, {}); - expect.fail('expected createRollingIndex to throw'); - } catch (err) { - expect(err).not.to.be.null; - } + expect(atlasServiceStub.authenticatedFetch).to.have.been.calledOnce; + + const { args } = atlasServiceStub.authenticatedFetch.getCall(0); + + expect(args[0]).to.eq('/explorer/v1/groups/abc/clusters/123/index'); + expect(args[1]).to.have.property('method', 'POST'); + expect(args[1]).to.have.property( + 'body', + '{"clusterId":"123","db":"db","collection":"coll","keys":"{}","options":"","collationOptions":""}' + ); }); }); }); diff --git a/packages/compass-indexes/src/modules/rolling-indexes-service.ts b/packages/compass-indexes/src/modules/rolling-indexes-service.ts index 5f78a65f026..736c7da3d89 100644 --- a/packages/compass-indexes/src/modules/rolling-indexes-service.ts +++ b/packages/compass-indexes/src/modules/rolling-indexes-service.ts @@ -1,6 +1,6 @@ import type { AtlasService } from '@mongodb-js/atlas-service/provider'; import type { ConnectionInfoRef } from '@mongodb-js/compass-connections/provider'; -import type { CreateIndexesOptions } from 'mongodb'; +import type { CreateIndexesOptions, IndexSpecification } from 'mongodb'; import toNS from 'mongodb-ns'; export type AtlasIndexStats = { @@ -18,7 +18,10 @@ export class RollingIndexesService { constructor( private atlasService: Pick< AtlasService, - 'automationAgentRequest' | 'automationAgentAwait' + | 'automationAgentRequest' + | 'automationAgentAwait' + | 'authenticatedFetch' + | 'cloudEndpoint' >, private connectionInfo: ConnectionInfoRef ) {} @@ -51,36 +54,56 @@ export class RollingIndexesService { } async createRollingIndex( namespace: string, - indexSpec: Record, + indexSpec: IndexSpecification, { collation, ...options }: CreateIndexesOptions ): Promise { const { atlasMetadata } = this.connectionInfo.current; + if (!atlasMetadata) { throw new Error( "Can't create a rolling index for a non-Atlas cluster: atlasMetadata is not available" ); } - const { database: db, collection } = toNS(namespace); - const res = await this.atlasService.automationAgentRequest( - atlasMetadata, - 'index', - { - db, - collection, - keys: JSON.stringify(indexSpec), - options: Object.keys(options).length > 0 ? JSON.stringify(options) : '', - collationOptions: collation ? JSON.stringify(collation) : '', - } - ); - // Creating a rolling index doesn't return an "awaitable" job from - // automation agent backend - if (res) { + + // Not possible to do through UI, doing a pre-check here to avoid dealing + // with payload variations based on metricsType later + if (atlasMetadata.metricsType === 'serverless') { throw new Error( - `Unexpected response from the server, expected undefined, but got ${JSON.stringify( - res - )}` + "Serverless clusters don't support rolling index build creation" ); } - return undefined; + + // NB: Rolling indexes creation only pretends to be a "normal" automation + // agent request, in practice while a bunch of request logic is similar, + // both the resource URL and responses behave completely differently, so + // that's why we're not using `automationAgentRequest` helper method here. + + const { database: db, collection } = toNS(namespace); + + const requestBody = { + clusterId: atlasMetadata.metricsId, + db, + collection, + keys: JSON.stringify(indexSpec), + options: Object.keys(options).length > 0 ? JSON.stringify(options) : '', + collationOptions: collation ? JSON.stringify(collation) : '', + }; + + const requestUrl = this.atlasService.cloudEndpoint( + `/explorer/v1/groups/${atlasMetadata.projectId}/clusters/${atlasMetadata.metricsId}/index` + ); + + // Requesting a rolling index build doesn't return anything that we can + // await on similar to other index creation processes (but + // authenticatedFetch will make sure it fails if server responded with an + // error) or automation agent jobs, this is why we're just submitting + // without doing anything with a response + await this.atlasService.authenticatedFetch(requestUrl, { + method: 'POST', + headers: { + 'content-type': 'application/json', + }, + body: JSON.stringify(requestBody), + }); } } From a06e46929ebca7475fc99b2299e37836c93ebed8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 10:09:08 +0000 Subject: [PATCH 28/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6325) Update report Co-authored-by: lerouxb <69737+lerouxb@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index eaf3888ef04..a6d64d798e6 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Fri, Oct 4, 2024 at 09:50 AM +Generated on Fri, Oct 4, 2024 at 10:09 AM ## Table of Contents From 3b153106990929214d31e53e86a9c68a8bed9d48 Mon Sep 17 00:00:00 2001 From: Kevin Mas Ruiz Date: Fri, 4 Oct 2024 12:18:20 +0200 Subject: [PATCH 29/31] fix(proxy): show friendly error when proxy config is not supported COMPASS-8345 (#6321) * chore: show friendly error when proxy config is not supported * chore: fix log * chore: fix eslint checks --- packages/compass/src/main/application.ts | 37 +++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/packages/compass/src/main/application.ts b/packages/compass/src/main/application.ts index bc1297caf85..37207a21ced 100644 --- a/packages/compass/src/main/application.ts +++ b/packages/compass/src/main/application.ts @@ -2,6 +2,7 @@ import './disable-node-deprecations'; // Separate module so it runs first import path from 'path'; import { EventEmitter } from 'events'; import type { BrowserWindow, Event, ProxyConfig } from 'electron'; +import { dialog } from 'electron'; import { app, safeStorage, session } from 'electron'; import { ipcMain } from 'hadron-ipc'; import type { AutoUpdateManagerState } from './auto-update-manager'; @@ -301,7 +302,41 @@ class CompassApplication { try { const proxyOptions = proxyPreferenceToProxyOptions(value); await app.whenReady(); - await target.setProxy(translateToElectronProxyConfig(proxyOptions)); + + try { + const electronProxyConfig = + translateToElectronProxyConfig(proxyOptions); + await target.setProxy(electronProxyConfig); + } catch (err) { + const headline = String( + err && typeof err === 'object' && 'message' in err + ? err.message + : err || + 'Currently Compass does not support authenticated or ssh proxies.' + ); + + log.warn( + mongoLogId(1_001_000_332), + logContext, + 'Unable to set proxy configuration', + { + error: headline, + } + ); + + const sep = path.sep; + const configPath = `${app.getPath( + 'userData' + )}${sep}AppPreferences${sep}General.json`; + + dialog.showErrorBox( + 'Unsupported proxy configuration', + `${headline}\n\n + To reset the proxy configuration, remove the "proxy" key in ${configPath} and restart Compass.` + ); + + app.quit(); + } const agent = createAgent(proxyOptions); const fetch = createFetch(agent || {}); From a22b639ea8bda87b4cce57fe2600814395b0d23f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 10:24:50 +0000 Subject: [PATCH 30/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6326) Update report Co-authored-by: kmruiz <1822138+kmruiz@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index a6d64d798e6..4bb3e88dba8 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Fri, Oct 4, 2024 at 10:09 AM +Generated on Fri, Oct 4, 2024 at 10:24 AM ## Table of Contents From 35bf965a922e2f25452ff3b3347954aa1b2fa660 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 6 Oct 2024 03:16:28 +0000 Subject: [PATCH 31/31] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6327) Update report Co-authored-by: mcasimir <334881+mcasimir@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 36286290f53..0fd4fe857c5 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Fri Oct 04 2024. +This document was automatically generated on Sun Oct 06 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 4bb3e88dba8..dc3b14a4358 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Fri, Oct 4, 2024 at 10:24 AM +Generated on Sun, Oct 6, 2024 at 03:16 AM ## Table of Contents