1
0
Fork 0
mirror of synced 2024-06-01 18:20:18 +12:00

handlers -> publishers and analtics -> processors

This commit is contained in:
Rory Powell 2022-05-10 10:33:59 +01:00
parent 5672adb4b6
commit 182831d502
37 changed files with 281 additions and 705 deletions

View file

@ -1,68 +0,0 @@
import PosthogClient from "./PosthogClient"
import env from "../environment"
import { getTenantId } from "../context"
import { Account, Hosting, Event, IdentityType } from "@budibase/types"
class Analytics {
isEnabled: boolean
posthog: PosthogClient | undefined
constructor() {
// check enabled before init
this.isEnabled = !!env.ENABLE_ANALYTICS // TODO: use db flag instead
if (!this.isEnabled) return
this.posthog = new PosthogClient(env.POSTHOG_TOKEN)
}
enabled() {
return this.isEnabled
}
identify(type: IdentityType, id: string, hosting?: Hosting) {
if (!this.isEnabled) return
const tenantId = getTenantId()
if (!hosting) {
hosting = env.SELF_HOSTED ? Hosting.SELF : Hosting.CLOUD
}
const properties = {
type,
hosting,
tenantId,
}
this.posthog!.identify(id, properties)
}
identifyUser(userId: string) {
this.identify(IdentityType.USER, userId)
}
identifyTenant() {
let distinctId
if (env.SELF_HOSTED) {
distinctId = getTenantId() // TODO: Get installation ID
} else {
distinctId = getTenantId()
}
this.identify(IdentityType.TENANT, distinctId)
}
identifyAccount(account: Account) {
const distinctId = account.accountId
const hosting = account.hosting
this.identify(IdentityType.ACCOUNT, distinctId, hosting)
}
captureEvent(event: Event, properties: any) {
if (!this.isEnabled) return
// TODO: get the user id from context
const userId = "TESTING_USER_ID"
this.posthog!.capture(userId, event, properties)
}
shutdown() {
if (!this.isEnabled) return
this.posthog!.shutdown()
}
}
export default Analytics

View file

@ -1,4 +0,0 @@
import Analytics from "./Analytics"
const analytics = new Analytics()
export default analytics

View file

@ -1,17 +1,9 @@
import { getTenantId } from "../context"
import analytics from "../analytics"
import { Event } from "@budibase/types"
import { processors } from "./processors"
const logEvent = (messsage: string) => {
const tenantId = getTenantId()
const userId = getTenantId() // TODO
console.log(`[audit] [tenant=${tenantId}] [user=${userId}] ${messsage}`)
}
export const processEvent = (event: Event, properties: any) => {
// logging
logEvent(event)
// analytics
analytics.captureEvent(event, properties)
export const publishEvent = (event: Event, properties: any) => {
// in future this should use async events
// via a queue. For now we can use sync as
// this is non-blocking
processors.processEvent(event, properties)
}

View file

@ -1 +1,7 @@
export * from "./handlers"
export * from "./publishers"
import { processors } from "./processors"
export const shutdown = () => {
processors.shutdown()
}

View file

@ -0,0 +1,15 @@
import { Event } from "@budibase/types"
import { getTenantId } from "../../context"
import { EventProcessor } from "./types"
export default class LoggingProcessor implements EventProcessor {
processEvent(event: Event, properties: any): void {
const tenantId = getTenantId()
const userId = getTenantId() // TODO
console.log(`[audit] [tenant=${tenantId}] [user=${userId}] ${event}`)
}
shutdown(): void {
// no-op
}
}

View file

@ -1,7 +1,9 @@
import PostHog from "posthog-node"
import { Event } from "@budibase/types"
import { EventProcessor } from "./types"
import { getTenantId } from "../../context"
class PosthogClient {
export default class PosthogProcessor implements EventProcessor {
posthog: PostHog
constructor(token: string | undefined) {
@ -11,17 +13,16 @@ class PosthogClient {
this.posthog = new PostHog(token)
}
identify(distinctId: string, properties: any) {
this.posthog.identify({ distinctId, properties })
processEvent(event: Event, properties: any): void {
const userId = getTenantId() // TODO
this.posthog.capture({ distinctId: userId, event, properties })
}
capture(userId: string, event: Event, properties: any) {
this.posthog.capture({ distinctId: userId, event, properties })
identify(distinctId: string, properties: any) {
this.posthog.identify({ distinctId, properties })
}
shutdown() {
this.posthog.shutdown()
}
}
export default PosthogClient

View file

@ -0,0 +1,63 @@
import { Event } from "@budibase/types"
import { EventProcessor } from "./types"
import env from "../../environment"
import LoggingProcessor from "./LoggingProcessor"
import PosthogProcessor from "./PosthogProcessor"
export default class Processor implements EventProcessor {
processors: EventProcessor[] = []
constructor() {
if (env.ENABLE_ANALYTICS && env.POSTHOG_TOKEN) {
this.processors.push(new PosthogProcessor(env.POSTHOG_TOKEN))
}
this.processors.push(new LoggingProcessor())
}
processEvent(event: Event, properties: any): void {
for (const eventProcessor of this.processors) {
eventProcessor.processEvent(event, properties)
}
}
shutdown() {
for (const eventProcessor of this.processors) {
eventProcessor.shutdown()
}
}
// Identity todo
// export const identify(type: IdentityType, id: string, hosting?: Hosting) {
// const tenantId = getTenantId()
// if (!hosting) {
// hosting = env.SELF_HOSTED ? Hosting.SELF : Hosting.CLOUD
// }
// const properties = {
// type,
// hosting,
// tenantId,
// }
// this.posthog!.identify(id, properties)
// }
// identifyUser(userId: string) {
// this.identify(IdentityType.USER, userId)
// }
// identifyTenant() {
// let distinctId
// if (env.SELF_HOSTED) {
// distinctId = getTenantId() // TODO: Get installation ID
// } else {
// distinctId = getTenantId()
// }
// this.identify(IdentityType.TENANT, distinctId)
// }
// identifyAccount(account: Account) {
// const distinctId = account.accountId
// const hosting = account.hosting
// this.identify(IdentityType.ACCOUNT, distinctId, hosting)
// }
}

View file

@ -0,0 +1,2 @@
import Processors from "./Processors"
export const processors = new Processors()

View file

@ -0,0 +1,11 @@
import { Event } from "@budibase/types"
export enum EventProcessorType {
POSTHOG = "posthog",
LOGGING = "logging",
}
export interface EventProcessor {
processEvent(event: Event, properties: any): void
shutdown(): void
}

View file

@ -1,17 +1,17 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import { Event, Account } from "@budibase/types"
export function created(account: Account) {
const properties = {}
processEvent(Event.ACCOUNT_CREATED, properties)
publishEvent(Event.ACCOUNT_CREATED, properties)
}
export function deleted(account: Account) {
const properties = {}
processEvent(Event.ACCOUNT_DELETED, properties)
publishEvent(Event.ACCOUNT_DELETED, properties)
}
export function verified(account: Account) {
const properties = {}
processEvent(Event.ACCOUNT_VERIFIED, properties)
publishEvent(Event.ACCOUNT_VERIFIED, properties)
}

View file

@ -1,4 +1,5 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import { getAppDB } from "../../context"
import {
Event,
App,
@ -15,59 +16,66 @@ import {
AppExportedEvent,
} from "@budibase/types"
export function created(app: App) {
const saveApp = async (app: App): Promise<App> => {
const db = getAppDB()
const response = await db.save(app)
app._rev = response.rev
return app
}
export const created = async (app: App) => {
const properties: AppCreatedEvent = {}
processEvent(Event.APP_CREATED, properties)
await publishEvent(Event.APP_CREATED, properties)
}
export function updated(app: App) {
const properties: AppUpdatedEvent = {}
processEvent(Event.APP_UPDATED, properties)
publishEvent(Event.APP_UPDATED, properties)
}
export function deleted(app: App) {
const properties: AppDeletedEvent = {}
processEvent(Event.APP_DELETED, properties)
publishEvent(Event.APP_DELETED, properties)
}
export function published(app: App) {
const properties: AppPublishedEvent = {}
processEvent(Event.APP_PUBLISHED, properties)
publishEvent(Event.APP_PUBLISHED, properties)
}
export function unpublished(app: App) {
const properties: AppUnpublishedEvent = {}
processEvent(Event.APP_UNPUBLISHED, properties)
publishEvent(Event.APP_UNPUBLISHED, properties)
}
export function fileImported(app: App) {
const properties: AppFileImportedEvent = {}
processEvent(Event.APP_FILE_IMPORTED, properties)
publishEvent(Event.APP_FILE_IMPORTED, properties)
}
export function templateImported(templateKey: string) {
const properties: AppTemplateImportedEvent = {
templateKey,
}
processEvent(Event.APP_TEMPLATE_IMPORTED, properties)
publishEvent(Event.APP_TEMPLATE_IMPORTED, properties)
}
export function versionUpdated(app: App) {
const properties: AppVersionUpdatedEvent = {}
processEvent(Event.APP_VERSION_UPDATED, properties)
publishEvent(Event.APP_VERSION_UPDATED, properties)
}
export function versionReverted(app: App) {
const properties: AppVersionRevertedEvent = {}
processEvent(Event.APP_VERSION_REVERTED, properties)
publishEvent(Event.APP_VERSION_REVERTED, properties)
}
export function reverted(app: App) {
const properties: AppRevertedEvent = {}
processEvent(Event.APP_REVERTED, properties)
publishEvent(Event.APP_REVERTED, properties)
}
export function exported(app: App) {
const properties: AppExportedEvent = {}
processEvent(Event.APP_EXPORTED, properties)
publishEvent(Event.APP_EXPORTED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
LoginEvent,
@ -15,38 +15,38 @@ export function login(source: LoginSource) {
const properties: LoginEvent = {
source,
}
processEvent(Event.AUTH_LOGIN, properties)
publishEvent(Event.AUTH_LOGIN, properties)
}
export function logout() {
const properties: LogoutEvent = {}
processEvent(Event.AUTH_LOGOUT, properties)
publishEvent(Event.AUTH_LOGOUT, properties)
}
export function SSOCreated(type: SSOType) {
const properties: SSOCreatedEvent = {
type,
}
processEvent(Event.AUTH_SSO_CREATED, properties)
publishEvent(Event.AUTH_SSO_CREATED, properties)
}
export function SSOUpdated(type: SSOType) {
const properties: SSOUpdatedEvent = {
type,
}
processEvent(Event.AUTH_SSO_UPDATED, properties)
publishEvent(Event.AUTH_SSO_UPDATED, properties)
}
export function SSOActivated(type: SSOType) {
const properties: SSOActivatedEvent = {
type,
}
processEvent(Event.AUTH_SSO_ACTIVATED, properties)
publishEvent(Event.AUTH_SSO_ACTIVATED, properties)
}
export function SSODeactivated(type: SSOType) {
const properties: SSODeactivatedEvent = {
type,
}
processEvent(Event.AUTH_SSO_DEACTIVATED, properties)
publishEvent(Event.AUTH_SSO_DEACTIVATED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Automation,
Event,
@ -14,17 +14,17 @@ import {
export function created(automation: Automation) {
const properties: AutomationCreatedEvent = {}
processEvent(Event.AUTOMATION_CREATED, properties)
publishEvent(Event.AUTOMATION_CREATED, properties)
}
export function deleted(automation: Automation) {
const properties: AutomationDeletedEvent = {}
processEvent(Event.AUTOMATION_DELETED, properties)
publishEvent(Event.AUTOMATION_DELETED, properties)
}
export function tested(automation: Automation) {
const properties: AutomationTestedEvent = {}
processEvent(Event.AUTOMATION_TESTED, properties)
publishEvent(Event.AUTOMATION_TESTED, properties)
}
// TODO
@ -35,12 +35,12 @@ export function tested(automation: Automation) {
export function stepCreated(automation: Automation, step: AutomationStep) {
const properties: AutomationStepCreatedEvent = {}
processEvent(Event.AUTOMATION_STEP_CREATED, properties)
publishEvent(Event.AUTOMATION_STEP_CREATED, properties)
}
export function stepDeleted(automation: Automation, step: AutomationStep) {
const properties: AutomationStepDeletedEvent = {}
processEvent(Event.AUTOMATION_STEP_DELETED, properties)
publishEvent(Event.AUTOMATION_STEP_DELETED, properties)
}
export function triggerUpdated(
@ -48,5 +48,5 @@ export function triggerUpdated(
trigger: AutomationTrigger
) {
const properties: AutomationTriggerUpdatedEvent = {}
processEvent(Event.AUTOMATION_TRIGGER_UPDATED, properties)
publishEvent(Event.AUTOMATION_TRIGGER_UPDATED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
Datasource,
@ -9,15 +9,15 @@ import {
export function created(datasource: Datasource) {
const properties: DatasourceCreatedEvent = {}
processEvent(Event.DATASOURCE_CREATED, properties)
publishEvent(Event.DATASOURCE_CREATED, properties)
}
export function updated(datasource: Datasource) {
const properties: DatasourceUpdatedEvent = {}
processEvent(Event.DATASOURCE_UPDATED, properties)
publishEvent(Event.DATASOURCE_UPDATED, properties)
}
export function deleted(datasource: Datasource) {
const properties: DatasourceDeletedEvent = {}
processEvent(Event.DATASOURCE_DELETED, properties)
publishEvent(Event.DATASOURCE_DELETED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
SMTPConfig,
@ -8,10 +8,10 @@ import {
export function SMTPCreated(config: SMTPConfig) {
const properties: SMTPCreatedEvent = {}
processEvent(Event.EMAIL_SMTP_CREATED, properties)
publishEvent(Event.EMAIL_SMTP_CREATED, properties)
}
export function SMTPUpdated(config: SMTPConfig) {
const properties: SMTPUpdatedEvent = {}
processEvent(Event.EMAIL_SMTP_UPDATED, properties)
publishEvent(Event.EMAIL_SMTP_UPDATED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
Layout,
@ -8,10 +8,10 @@ import {
export function created(layout: Layout) {
const properties: LayoutCreatedEvent = {}
processEvent(Event.LAYOUT_CREATED, properties)
publishEvent(Event.LAYOUT_CREATED, properties)
}
export function deleted(layout: Layout) {
const properties: LayoutDeletedEvent = {}
processEvent(Event.LAYOUT_DELETED, properties)
publishEvent(Event.LAYOUT_DELETED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
License,
@ -12,25 +12,25 @@ import {
// TODO
export function updgraded(license: License) {
const properties: LicenseUpgradedEvent = {}
processEvent(Event.LICENSE_UPGRADED, properties)
publishEvent(Event.LICENSE_UPGRADED, properties)
}
// TODO
export function downgraded(license: License) {
const properties: LicenseDowngradedEvent = {}
processEvent(Event.LICENSE_DOWNGRADED, properties)
publishEvent(Event.LICENSE_DOWNGRADED, properties)
}
// TODO
export function updated(license: License) {
const properties: LicenseUpdatedEvent = {}
processEvent(Event.LICENSE_UPDATED, properties)
publishEvent(Event.LICENSE_UPDATED, properties)
}
// TODO
export function activated(license: License) {
const properties: LicenseActivatedEvent = {}
processEvent(Event.LICENSE_ACTIVATED, properties)
publishEvent(Event.LICENSE_ACTIVATED, properties)
}
// TODO
@ -39,5 +39,5 @@ export function quotaExceeded(quotaName: string, value: number) {
name: quotaName,
value,
}
processEvent(Event.LICENSE_QUOTA_EXCEEDED, properties)
publishEvent(Event.LICENSE_QUOTA_EXCEEDED, properties)
}

View file

@ -1,30 +1,30 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import { Event, VersionCheckedEvent } from "@budibase/types"
export function nameUpdated() {
const properties = {}
processEvent(Event.ORG_NAME_UPDATED, properties)
publishEvent(Event.ORG_NAME_UPDATED, properties)
}
export function logoUpdated() {
const properties = {}
processEvent(Event.ORG_LOGO_UPDATED, properties)
publishEvent(Event.ORG_LOGO_UPDATED, properties)
}
export function platformURLUpdated() {
const properties = {}
processEvent(Event.ORG_PLATFORM_URL_UPDATED, properties)
publishEvent(Event.ORG_PLATFORM_URL_UPDATED, properties)
}
export function versionChecked(version: number) {
const properties: VersionCheckedEvent = {
version,
}
processEvent(Event.UPDATE_VERSION_CHECKED, properties)
publishEvent(Event.UPDATE_VERSION_CHECKED, properties)
}
// TODO
export function analyticsOptOut() {
const properties = {}
processEvent(Event.ANALYTICS_OPT_OUT, properties)
publishEvent(Event.ANALYTICS_OPT_OUT, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
Datasource,
@ -14,17 +14,17 @@ import {
export const created = (datasource: Datasource, query: Query) => {
const properties: QueryCreatedEvent = {}
processEvent(Event.QUERY_CREATED, properties)
publishEvent(Event.QUERY_CREATED, properties)
}
export const updated = (datasource: Datasource, query: Query) => {
const properties: QueryUpdatedEvent = {}
processEvent(Event.QUERY_UPDATED, properties)
publishEvent(Event.QUERY_UPDATED, properties)
}
export const deleted = (datasource: Datasource, query: Query) => {
const properties: QueryDeletedEvent = {}
processEvent(Event.QUERY_DELETED, properties)
publishEvent(Event.QUERY_DELETED, properties)
}
export const imported = (
@ -33,7 +33,7 @@ export const imported = (
count: any
) => {
const properties: QueryImportedEvent = {}
processEvent(Event.QUERY_IMPORT, properties)
publishEvent(Event.QUERY_IMPORT, properties)
}
// TODO
@ -44,5 +44,5 @@ export const imported = (
export const previewed = (datasource: Datasource) => {
const properties: QueryPreviewedEvent = {}
processEvent(Event.QUERY_PREVIEWED, properties)
publishEvent(Event.QUERY_PREVIEWED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
Role,
@ -14,25 +14,25 @@ import {
export function created(role: Role) {
const properties: RoleCreatedEvent = {}
processEvent(Event.ROLE_CREATED, properties)
publishEvent(Event.ROLE_CREATED, properties)
}
export function updated(role: Role) {
const properties: RoleUpdatedEvent = {}
processEvent(Event.ROLE_UPDATED, properties)
publishEvent(Event.ROLE_UPDATED, properties)
}
export function deleted(role: Role) {
const properties: RoleDeletedEvent = {}
processEvent(Event.ROLE_DELETED, properties)
publishEvent(Event.ROLE_DELETED, properties)
}
export function assigned(user: User, role: Role) {
const properties: RoleAssignedEvent = {}
processEvent(Event.ROLE_ASSIGNED, properties)
publishEvent(Event.ROLE_ASSIGNED, properties)
}
export function unassigned(user: User, role: Role) {
const properties: RoleUnassignedEvent = {}
processEvent(Event.ROLE_UNASSIGNED, properties)
publishEvent(Event.ROLE_UNASSIGNED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
RowImportedEvent,
@ -19,5 +19,5 @@ export const imported = (
count: number
) => {
const properties: RowImportedEvent = {}
processEvent(Event.ROW_IMPORT, properties)
publishEvent(Event.ROW_IMPORT, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
Screen,
@ -8,10 +8,10 @@ import {
export function created(screen: Screen) {
const properties: ScreenCreatedEvent = {}
processEvent(Event.SCREEN_CREATED, properties)
publishEvent(Event.SCREEN_CREATED, properties)
}
export function deleted(screen: Screen) {
const properties: ScreenDeletedEvent = {}
processEvent(Event.SCREEN_DELETED, properties)
publishEvent(Event.SCREEN_DELETED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
App,
BuilderServedEvent,
@ -11,15 +11,15 @@ import {
export function servedBuilder(version: number) {
const properties: BuilderServedEvent = {}
processEvent(Event.SERVED_BUILDER, properties)
publishEvent(Event.SERVED_BUILDER, properties)
}
export function servedApp(app: App) {
const properties: AppServedEvent = {}
processEvent(Event.SERVED_APP, properties)
publishEvent(Event.SERVED_APP, properties)
}
export function servedAppPreview(app: App) {
const properties: AppPreviewServedEvent = {}
processEvent(Event.SERVED_APP_PREVIEW, properties)
publishEvent(Event.SERVED_APP_PREVIEW, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
TableExportFormat,
@ -15,31 +15,31 @@ import {
export function created(table: Table) {
const properties: TableCreatedEvent = {}
processEvent(Event.TABLE_CREATED, properties)
publishEvent(Event.TABLE_CREATED, properties)
}
export function updated(table: Table) {
const properties: TableUpdatedEvent = {}
processEvent(Event.TABLE_UPDATED, properties)
publishEvent(Event.TABLE_UPDATED, properties)
}
export function deleted(table: Table) {
const properties: TableDeletedEvent = {}
processEvent(Event.TABLE_DELETED, properties)
publishEvent(Event.TABLE_DELETED, properties)
}
export function exported(table: Table, format: TableExportFormat) {
const properties: TableExportedEvent = {}
processEvent(Event.TABLE_EXPORTED, properties)
publishEvent(Event.TABLE_EXPORTED, properties)
}
export function imported(table: Table, format: TableImportFormat) {
const properties: TableImportedEvent = {}
processEvent(Event.TABLE_IMPORTED, properties)
publishEvent(Event.TABLE_IMPORTED, properties)
}
// TODO
export function permissionUpdated() {
const properties = {}
processEvent(Event.TABLE_PERMISSION_UPDATED, properties)
publishEvent(Event.TABLE_PERMISSION_UPDATED, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
User,
@ -19,71 +19,71 @@ import {
export function created(user: User) {
const properties: UserCreatedEvent = {}
processEvent(Event.USER_CREATED, properties)
publishEvent(Event.USER_CREATED, properties)
}
export function updated(user: User) {
const properties: UserUpdatedEvent = {}
processEvent(Event.USER_UPDATED, properties)
publishEvent(Event.USER_UPDATED, properties)
}
export function deleted(user: User) {
const properties: UserDeletedEvent = {}
processEvent(Event.USER_DELETED, properties)
publishEvent(Event.USER_DELETED, properties)
}
// PERMISSIONS
export function permissionAdminAssigned(user: User) {
const properties: UserPermissionAssignedEvent = {}
processEvent(Event.USER_PERMISSION_ADMIN_ASSIGNED, properties)
publishEvent(Event.USER_PERMISSION_ADMIN_ASSIGNED, properties)
}
export function permissionAdminRemoved(user: User) {
const properties: UserPermissionRemovedEvent = {}
processEvent(Event.USER_PERMISSION_ADMIN_REMOVED, properties)
publishEvent(Event.USER_PERMISSION_ADMIN_REMOVED, properties)
}
export function permissionBuilderAssigned(user: User) {
const properties: UserPermissionAssignedEvent = {}
processEvent(Event.USER_PERMISSION_BUILDER_ASSIGNED, properties)
publishEvent(Event.USER_PERMISSION_BUILDER_ASSIGNED, properties)
}
export function permissionBuilderRemoved(user: User) {
const properties: UserPermissionRemovedEvent = {}
processEvent(Event.USER_PERMISSION_BUILDER_REMOVED, properties)
publishEvent(Event.USER_PERMISSION_BUILDER_REMOVED, properties)
}
// INVITE
export function invited(userInfo: any) {
const properties: UserInvitedEvent = {}
processEvent(Event.USER_INVITED, properties)
publishEvent(Event.USER_INVITED, properties)
}
export function inviteAccepted(user: User) {
const properties: UserInviteAcceptedEvent = {}
processEvent(Event.USER_INVITED_ACCEPTED, properties)
publishEvent(Event.USER_INVITED_ACCEPTED, properties)
}
// PASSWORD
export function passwordForceReset(user: User) {
const properties: UserPasswordForceResetEvent = {}
processEvent(Event.USER_PASSWORD_FORCE_RESET, properties)
publishEvent(Event.USER_PASSWORD_FORCE_RESET, properties)
}
export function passwordUpdated(user: User) {
const properties: UserPasswordUpdatedEvent = {}
processEvent(Event.USER_PASSWORD_UPDATED, properties)
publishEvent(Event.USER_PASSWORD_UPDATED, properties)
}
export function passwordResetRequested(user: User) {
const properties: UserPasswordResetRequestedEvent = {}
processEvent(Event.USER_PASSWORD_RESET_REQUESTED, properties)
publishEvent(Event.USER_PASSWORD_RESET_REQUESTED, properties)
}
export function passwordReset(user: User) {
const properties: UserPasswordResetEvent = {}
processEvent(Event.USER_PASSWORD_RESET, properties)
publishEvent(Event.USER_PASSWORD_RESET, properties)
}

View file

@ -1,4 +1,4 @@
import { processEvent } from "../events"
import { publishEvent } from "../events"
import {
Event,
ViewCalculationCreatedEvent,
@ -20,50 +20,50 @@ import {
export function created(view: View) {
const properties: ViewCreatedEvent = {}
processEvent(Event.VIEW_CREATED, properties)
publishEvent(Event.VIEW_CREATED, properties)
}
export function updated(view: View) {
const properties: ViewUpdatedEvent = {}
processEvent(Event.VIEW_UPDATED, properties)
publishEvent(Event.VIEW_UPDATED, properties)
}
export function deleted() {
const properties: ViewDeletedEvent = {}
processEvent(Event.VIEW_DELETED, properties)
publishEvent(Event.VIEW_DELETED, properties)
}
export function exported(table: Table, format: TableExportFormat) {
const properties: ViewExportedEvent = {}
processEvent(Event.VIEW_EXPORTED, properties)
publishEvent(Event.VIEW_EXPORTED, properties)
}
export function filterCreated() {
const properties: ViewFilterCreatedEvent = {}
processEvent(Event.VIEW_FILTER_CREATED, properties)
publishEvent(Event.VIEW_FILTER_CREATED, properties)
}
export function filterUpdated() {
const properties: ViewFilterUpdatedEvent = {}
processEvent(Event.VIEW_FILTER_UPDATED, properties)
publishEvent(Event.VIEW_FILTER_UPDATED, properties)
}
export function filterDeleted() {
const properties: ViewFilterDeletedEvent = {}
processEvent(Event.VIEW_FILTER_DELETED, properties)
publishEvent(Event.VIEW_FILTER_DELETED, properties)
}
export function calculationCreated() {
const properties: ViewCalculationCreatedEvent = {}
processEvent(Event.VIEW_CALCULATION_CREATED, properties)
publishEvent(Event.VIEW_CALCULATION_CREATED, properties)
}
export function calculationUpdated() {
const properties: ViewCalculationUpdatedEvent = {}
processEvent(Event.VIEW_CALCULATION_UPDATED, properties)
publishEvent(Event.VIEW_CALCULATION_UPDATED, properties)
}
export function calculationDeleted() {
const properties: ViewCalculationDeletedEvent = {}
processEvent(Event.VIEW_CALCULATION_DELETED, properties)
publishEvent(Event.VIEW_CALCULATION_DELETED, properties)
}

View file

@ -7,7 +7,6 @@ import env from "./environment"
import accounts from "./cloud/accounts"
import tenancy from "./tenancy"
import featureFlags from "./featureFlags"
import analytics from "./analytics"
import sessions from "./security/sessions"
import deprovisioning from "./context/deprovision"
@ -43,7 +42,6 @@ export = {
tenancy,
featureFlags,
events,
analytics,
sessions,
deprovisioning,
}

View file

@ -258,7 +258,7 @@ const performAppCreate = async (ctx: any) => {
} catch (err) {
// nothing to do
}
const newApplication = {
const newApplication: App = {
_id: DocumentTypes.APP_METADATA,
_rev,
appId: instance._id,

View file

@ -16,7 +16,7 @@ const fileSystem = require("./utilities/fileSystem")
const bullboard = require("./automations/bullboard")
import redis from "./utilities/redis"
import * as migrations from "./migrations"
import { analytics } from "@budibase/backend-core"
import { events } from "@budibase/backend-core"
const app = new Koa()
@ -74,7 +74,7 @@ server.on("close", async () => {
console.log("Server Closed")
}
await redis.shutdown()
await analytics.shutdown()
await events.shutdown()
})
module.exports = server.listen(env.PORT || 0, async () => {

View file

@ -3,9 +3,11 @@ import { App } from "@budibase/types"
export const backfill = async (appDb: any) => {
const app: App = await appDb.get(db.DocumentTypes.APP_METADATA)
if (db.isDevAppID(app.appId)) {
events.app.created(app)
}
if (db.isProdAppID(app.appId)) {
events.app.published(app)
}

View file

@ -1021,10 +1021,10 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@budibase/backend-core@1.0.138":
version "1.0.138"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.0.138.tgz#5297d6cf5b9ec8c15f0a6df4c7d8273b8ac900f0"
integrity sha512-1qN/5urKX8bBXwEz266Z94rco8dTI7VqIh75m8ZcqrAfoUpjvZJS76gZxfc5U/QWPwrgVFnLtYvnEjaLbGEflg==
"@budibase/backend-core@1.0.142":
version "1.0.142"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.0.142.tgz#cbfa426dbf064dff0ea5f9840baae595c0f5343c"
integrity sha512-gd52tOm4mytHa3OQQVcEiwnVCvq0pC0q3YN+5D1uoGt9WaAZoshB5AhXnUPZohvpo5j8isO07qXvF+5YffPVaw==
dependencies:
"@techpass/passport-openidconnect" "^0.3.0"
aws-sdk "^2.901.0"
@ -1098,12 +1098,12 @@
svelte-flatpickr "^3.2.3"
svelte-portal "^1.0.0"
"@budibase/pro@1.0.138":
version "1.0.138"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.0.138.tgz#cacbebe5ce93eb533af62a794a638944c2c61544"
integrity sha512-4ABlUZvl2h8sd8awJATf3KJeoFWV/8SoqdbKiH1ICdUcM/6dad7nhbJ15QqJL+Uuh/+mN2yEbr8V6Un2+yF+CA==
"@budibase/pro@1.0.142":
version "1.0.142"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.0.142.tgz#17cd53d67ce80e0cce2179caee0c03e6a0d7084e"
integrity sha512-c1SaRoVik/AVn4zNNsDciFeIr+P3J6Sc8hsE5M3pb0Zj/NzSEHXTesxcBVLlD2PYlwnvWPSoMvdDJKrEFHvOYQ==
dependencies:
"@budibase/backend-core" "1.0.138"
"@budibase/backend-core" "1.0.142"
node-fetch "^2.6.1"
"@budibase/standard-components@^0.9.139":
@ -1124,18 +1124,6 @@
svelte-apexcharts "^1.0.2"
svelte-flatpickr "^3.1.0"
"@budibase/string-templates@^1.0.130-alpha.1", "@budibase/string-templates@^1.0.134":
version "1.0.134"
resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-1.0.134.tgz#2e21c533e310b55c1f58b8aceb82367d38ad8846"
integrity sha512-W++/k1zAIl/yLX+8KMz3Fo8hi5n6PNK7x/kxAXClWanhdMozLSrS7AIFbrYDhHlsjpteK+3R6wDf5K/JfpYj6g==
dependencies:
"@budibase/handlebars-helpers" "^0.11.8"
dayjs "^1.10.4"
handlebars "^4.7.6"
handlebars-utils "^1.0.6"
lodash "^4.17.20"
vm2 "^3.9.4"
"@bull-board/api@3.9.4":
version "3.9.4"
resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.9.4.tgz#984f25e6d5501d97152d81184968ff135757b57a"
@ -2019,24 +2007,6 @@
resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
"@rollup/plugin-inject@^4.0.0":
version "4.0.4"
resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-4.0.4.tgz#fbeee66e9a700782c4f65c8b0edbafe58678fbc2"
integrity sha512-4pbcU4J/nS+zuHk+c+OL3WtmEQhqxlZ9uqfjQMQDOHOPld7PsCd8k5LWs8h5wjwJN7MgnAn768F2sDxEP4eNFQ==
dependencies:
"@rollup/pluginutils" "^3.1.0"
estree-walker "^2.0.1"
magic-string "^0.25.7"
"@rollup/pluginutils@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
dependencies:
"@types/estree" "0.0.39"
estree-walker "^1.0.1"
picomatch "^2.2.2"
"@sendgrid/client@^7.1.1":
version "7.6.1"
resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-7.6.1.tgz#de17fe9f04af3bdb69aca44fc407316de87cea3b"
@ -2224,11 +2194,6 @@
resolved "https://registry.yarnpkg.com/@spectrum-css/illustratedmessage/-/illustratedmessage-3.0.8.tgz#69ef0c935bcc5027f233a78de5aeb0064bf033cb"
integrity sha512-HvC4dywDi11GdrXQDCvKQ0vFlrXLTyJuc9UKf7meQLCGoJbGYDBwe+tHXNK1c6gPMD9BoL6pPMP1K/vRzR4EBQ==
"@spectrum-css/inlinealert@^2.0.1":
version "2.0.6"
resolved "https://registry.yarnpkg.com/@spectrum-css/inlinealert/-/inlinealert-2.0.6.tgz#4c5e923a1f56a96cc1adb30ef1f06ae04f2c6376"
integrity sha512-OpvvoWP02wWyCnF4IgG8SOPkXymovkC9cGtgMS1FdDubnG3tJZB/JeKTsRR9C9Vt3WBaOmISRdSKlZ4lC9CFzA==
"@spectrum-css/inputgroup@^3.0.2":
version "3.0.8"
resolved "https://registry.yarnpkg.com/@spectrum-css/inputgroup/-/inputgroup-3.0.8.tgz#fc23afc8a73c24d17249c9d2337e8b42085b298b"
@ -2326,11 +2291,6 @@
resolved "https://registry.yarnpkg.com/@spectrum-css/tabs/-/tabs-3.1.5.tgz#cc82e69c1fc721902345178231fb95d05938b983"
integrity sha512-UtfW8bA1quYnJM6v/lp6AVYGnQFkiUix2FHAf/4VHVrk4mh7ydtLiXS0IR3Kx+t/S8FWdSdSQHDZ8tHbY1ZLZg==
"@spectrum-css/tag@^3.1.4":
version "3.3.11"
resolved "https://registry.yarnpkg.com/@spectrum-css/tag/-/tag-3.3.11.tgz#66b5f91a845df2ad232fae702ae53b3fa46cf745"
integrity sha512-dyDUwG4fbsScMLaVOKQgKuUvYshGEIjTS9lVNhOHCz7klZ800UIMoCzDQXieHf+0nSdiR1Wy1oHBObHMMB8sxA==
"@spectrum-css/tags@^3.0.2":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@spectrum-css/tags/-/tags-3.0.3.tgz#fc76d2735cdc442de91b7eb3bee49a928c0767ac"
@ -2490,13 +2450,6 @@
resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.2.tgz#f65d3d6389e01eeb458bd54dc8f52b95a9463bc8"
integrity sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==
"@types/codemirror@^5.60.4":
version "5.60.5"
resolved "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-5.60.5.tgz#5b989a3b4bbe657458cf372c92b6bfda6061a2b7"
integrity sha512-TiECZmm8St5YxjFUp64LK0c8WU5bxMDt9YaAek1UqUb9swrSCoJhh92fWu1p3mTEqlHjhB5sY7OFBhWroJXZVg==
dependencies:
"@types/tern" "*"
"@types/connect@*":
version "3.4.35"
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
@ -2545,11 +2498,6 @@
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
"@types/estree@0.0.39":
version "0.0.39"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
"@types/estree@^0.0.51":
version "0.0.51"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
@ -2705,11 +2653,6 @@
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9"
integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==
"@types/marked@^4.0.1":
version "4.0.3"
resolved "https://registry.yarnpkg.com/@types/marked/-/marked-4.0.3.tgz#2098f4a77adaba9ce881c9e0b6baf29116e5acc4"
integrity sha512-HnMWQkLJEf/PnxZIfbm0yGJRRZYYMhb++O9M36UCTA9z53uPvVoSlAwJr3XOpDEryb7Hwl1qAx/MV6YIW1RXxg==
"@types/mime@^1":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
@ -2821,13 +2764,6 @@
"@types/cookiejar" "*"
"@types/node" "*"
"@types/tern@*":
version "0.23.4"
resolved "https://registry.yarnpkg.com/@types/tern/-/tern-0.23.4.tgz#03926eb13dbeaf3ae0d390caf706b2643a0127fb"
integrity sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==
dependencies:
"@types/estree" "*"
"@types/tough-cookie@*":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.1.tgz#8f80dd965ad81f3e1bc26d6f5c727e132721ff40"
@ -3392,7 +3328,7 @@ arg@^4.1.0:
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
argparse@^1.0.10, argparse@^1.0.7:
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
@ -3439,15 +3375,6 @@ array-equal@^1.0.0:
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
array-sort@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a"
integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==
dependencies:
default-compare "^1.0.0"
get-value "^2.0.6"
kind-of "^5.0.2"
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
@ -3551,13 +3478,6 @@ atomic-sleep@^1.0.0:
resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
autolinker@~0.28.0:
version "0.28.1"
resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47"
integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
dependencies:
gulp-header "^1.7.1"
aws-sdk@^2.767.0:
version "2.1030.0"
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1030.0.tgz#24a856af3d2b8b37c14a8f59974993661c66fd82"
@ -4338,18 +4258,6 @@ co@^4.6.0:
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
codemirror-spell-checker@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz#1c660f9089483ccb5113b9ba9ca19c3f4993371e"
integrity sha1-HGYPkIlIPMtRE7m6nKGcP0mTNx4=
dependencies:
typo-js "*"
codemirror@^5.63.1:
version "5.65.3"
resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.65.3.tgz#2d029930d5a293bc5fb96ceea64654803c0d4ac7"
integrity sha512-kCC0iwGZOVZXHEKW3NDTObvM7pTIyowjty4BUqeREROc/3I6bWbgZDA3fGDwlA+rbgRjvnRnfqs9SfXynel1AQ==
collect-v8-coverage@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
@ -4490,13 +4398,6 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-with-sourcemaps@*:
version "1.1.0"
resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
dependencies:
source-map "^0.6.1"
condense-newlines@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f"
@ -4898,13 +4799,6 @@ deepmerge@^4.2.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
default-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==
dependencies:
kind-of "^5.0.2"
default-shell@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/default-shell/-/default-shell-1.0.1.tgz#752304bddc6174f49eb29cb988feea0b8813c8bc"
@ -5066,25 +4960,11 @@ doctrine@3.0.0, doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
dom-serializer@^1.0.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
dependencies:
domelementtype "^2.0.1"
domhandler "^4.2.0"
entities "^2.0.0"
dom-walk@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
domelementtype@^2.0.1, domelementtype@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
domexception@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
@ -5099,22 +4979,6 @@ domexception@^2.0.1:
dependencies:
webidl-conversions "^5.0.0"
domhandler@^4.0.0, domhandler@^4.2.0:
version "4.3.1"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
dependencies:
domelementtype "^2.2.0"
domutils@^2.5.2:
version "2.8.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
dependencies:
dom-serializer "^1.0.1"
domelementtype "^2.2.0"
domhandler "^4.2.0"
dot-prop@^5.2.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
@ -5154,11 +5018,6 @@ download@8.0.0:
p-event "^2.1.0"
pify "^4.0.1"
downloadjs@1.4.7:
version "1.4.7"
resolved "https://registry.yarnpkg.com/downloadjs/-/downloadjs-1.4.7.tgz#f69f96f940e0d0553dac291139865a3cd0101e3c"
integrity sha1-9p+W+UDg0FU9rCkROYZaPNAQHjw=
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
@ -5174,17 +5033,6 @@ duplexify@^4.0.0:
readable-stream "^3.1.1"
stream-shift "^1.0.0"
easymde@^2.16.1:
version "2.16.1"
resolved "https://registry.yarnpkg.com/easymde/-/easymde-2.16.1.tgz#f4c2380312615cb33826f1a1fecfaa4022ff551a"
integrity sha512-FihYgjRsKfhGNk89SHSqxKLC4aJ1kfybPWW6iAmtb5GnXu+tnFPSzSaGBmk1RRlCuhFSjhF0SnIMGVPjEzkr6g==
dependencies:
"@types/codemirror" "^5.60.4"
"@types/marked" "^4.0.1"
codemirror "^5.63.1"
codemirror-spell-checker "1.1.2"
marked "^4.0.10"
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
@ -5296,16 +5144,6 @@ enhanced-resolve@^5.9.0:
graceful-fs "^4.2.4"
tapable "^2.2.0"
ent@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0=
entities@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
entities@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
@ -5725,16 +5563,6 @@ estraverse@^5.1.0, estraverse@^5.2.0:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
estree-walker@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
estree-walker@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@ -6282,11 +6110,6 @@ fs-constants@^1.0.0:
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
fs-exists-sync@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=
fs-extra@8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@ -6393,14 +6216,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
get-object@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/get-object/-/get-object-0.2.0.tgz#d92ff7d5190c64530cda0543dac63a3d47fe8c0c"
integrity sha1-2S/31RkMZFMM2gVD2sY6PUf+jAw=
dependencies:
is-number "^2.0.2"
isobject "^0.2.0"
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@ -6463,13 +6278,6 @@ get-value@^2.0.3, get-value@^2.0.6:
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
get-value@^3.0.0, get-value@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8"
integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==
dependencies:
isobject "^3.0.1"
getopts@2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b"
@ -6775,24 +6583,7 @@ gtoken@^5.0.4:
google-p12-pem "^3.1.3"
jws "^4.0.0"
gulp-header@^1.7.1:
version "1.8.12"
resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84"
integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
dependencies:
concat-with-sourcemaps "*"
lodash.template "^4.4.0"
through2 "^2.0.0"
handlebars-utils@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/handlebars-utils/-/handlebars-utils-1.0.6.tgz#cb9db43362479054782d86ffe10f47abc76357f9"
integrity sha512-d5mmoQXdeEqSKMtQQZ9WkiUcO1E3tPbWxluCK9hVgIDPzQa9WsKo3Lbe/sGflTe7TomHEeZaOgwIkyIr1kfzkw==
dependencies:
kind-of "^6.0.0"
typeof-article "^0.1.1"
handlebars@^4.7.6, handlebars@^4.7.7:
handlebars@^4.7.7:
version "4.7.7"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
@ -6874,14 +6665,6 @@ has-value@^1.0.0:
has-values "^1.0.0"
isobject "^3.0.0"
has-value@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658"
integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==
dependencies:
get-value "^3.0.0"
has-values "^2.0.1"
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
@ -6895,13 +6678,6 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
has-values@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d"
integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==
dependencies:
kind-of "^6.0.2"
has-yarn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
@ -6914,16 +6690,6 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
helper-md@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/helper-md/-/helper-md-0.2.2.tgz#c1f59d7e55bbae23362fd8a0e971607aec69d41f"
integrity sha1-wfWdflW7riM2L9ig6XFgeuxp1B8=
dependencies:
ent "^2.2.0"
extend-shallow "^2.0.1"
fs-exists-sync "^0.1.0"
remarkable "^1.6.2"
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@ -6953,24 +6719,6 @@ html-escaper@^2.0.0:
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
html-tag@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/html-tag/-/html-tag-2.0.0.tgz#36c3bc8d816fd30b570d5764a497a641640c2fed"
integrity sha512-XxzooSo6oBoxBEUazgjdXj7VwTn/iSTSZzTYKzYY6I916tkaYzypHxy+pbVU1h+0UQ9JlVf5XkNQyxOAiiQO1g==
dependencies:
is-self-closing "^1.0.1"
kind-of "^6.0.0"
htmlparser2@^6.0.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
dependencies:
domelementtype "^2.0.1"
domhandler "^4.0.0"
domutils "^2.5.2"
entities "^2.0.0"
http-assert@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f"
@ -7390,13 +7138,6 @@ is-docker@^2.0.0, is-docker@^2.1.1:
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
is-even@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-even/-/is-even-1.0.0.tgz#76b5055fbad8d294a86b6a949015e1c97b717c06"
integrity sha1-drUFX7rY0pSoa2qUkBXhyXtxfAY=
dependencies:
is-odd "^0.1.2"
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@ -7486,13 +7227,6 @@ is-number-object@^1.0.4:
dependencies:
has-tostringtag "^1.0.0"
is-number@^2.0.2:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
dependencies:
kind-of "^3.0.2"
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@ -7515,13 +7249,6 @@ is-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
is-odd@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-0.1.2.tgz#bc573b5ce371ef2aad6e6f49799b72bef13978a7"
integrity sha1-vFc7XONx7yqtbm9JeZtyvvE5eKc=
dependencies:
is-number "^3.0.0"
is-path-inside@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
@ -7539,11 +7266,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
is-plain-object@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
is-potential-custom-element-name@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
@ -7572,13 +7294,6 @@ is-retry-allowed@^2.2.0:
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d"
integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==
is-self-closing@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-self-closing/-/is-self-closing-1.0.1.tgz#5f406b527c7b12610176320338af0fa3896416e4"
integrity sha512-E+60FomW7Blv5GXTlYee2KDrnG6srxF7Xt1SjrhWUGUEsTFIqY/nq2y3DaftCsgUMdh89V07IVfhY9KIJhLezg==
dependencies:
self-closing-tags "^1.0.1"
is-shared-array-buffer@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
@ -7676,11 +7391,6 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
isobject@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e"
integrity sha1-o0MhkvObkQtfAsyYlIeDbscKqF4=
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
@ -8863,7 +8573,7 @@ keyv@^3.0.0:
dependencies:
json-buffer "3.0.0"
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0:
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@ -8877,12 +8587,12 @@ kind-of@^4.0.0:
dependencies:
is-buffer "^1.1.5"
kind-of@^5.0.0, kind-of@^5.0.2:
kind-of@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
kind-of@^6.0.0, kind-of@^6.0.2:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
@ -9142,11 +8852,6 @@ lcid@^2.0.0:
dependencies:
invert-kv "^2.0.0"
leaflet@^1.7.1:
version "1.8.0"
resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.8.0.tgz#4615db4a22a304e8e692cae9270b983b38a2055e"
integrity sha512-gwhMjFCQiYs3x/Sf+d49f10ERXaEFCPr+nVTryhAW8DWbMGqJqt9G4XuIaHmFW08zYvhgdzqXGr8AlW8v8dQkA==
left-pad@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
@ -9355,11 +9060,6 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
@ -9470,21 +9170,6 @@ lodash.sortby@^4.7.0:
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
lodash.template@^4.4.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
dependencies:
lodash._reinterpolate "^3.0.0"
lodash.templatesettings "^4.0.0"
lodash.templatesettings@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
dependencies:
lodash._reinterpolate "^3.0.0"
lodash.without@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
@ -9495,7 +9180,7 @@ lodash.xor@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.xor/-/lodash.xor-4.5.0.tgz#4d48ed7e98095b0632582ba714d3ff8ae8fb1db6"
integrity sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY=
lodash@4.17.21, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
lodash@4.17.21, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@ -9563,13 +9248,6 @@ ltgt@2.2.1, ltgt@^2.1.2, ltgt@~2.2.0:
resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5"
integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=
magic-string@^0.25.7:
version "0.25.9"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
dependencies:
sourcemap-codec "^1.4.8"
make-dir@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@ -9634,11 +9312,6 @@ markdown-it@^12.2.0:
mdurl "^1.0.1"
uc.micro "^1.0.5"
marked@^4.0.10:
version "4.0.15"
resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.15.tgz#0216b7c9d5fcf6ac5042343c41d81a8b1b5e1b4a"
integrity sha512-esX5lPdTfG4p8LDkv+obbRCyOKzB+820ZZyMOXJZygZBHrH9b3xXR64X4kT3sPe9Nx8qQXbmcz6kFSMt4Nfk6Q==
matcher@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca"
@ -9711,7 +9384,7 @@ methods@^1.0.1, methods@^1.1.1, methods@^1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5:
micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@ -9936,16 +9609,6 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
nanoid@^2.1.0:
version "2.1.11"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280"
integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==
nanoid@^3.3.3:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@ -10498,11 +10161,6 @@ parse-json@^5.2.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
parse-srcset@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1"
integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=
parse5@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
@ -10744,11 +10402,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
picomatch@^2.2.2:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@ -10859,15 +10512,6 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
postcss@^8.3.11:
version "8.4.13"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.13.tgz#7c87bc268e79f7f86524235821dfdf9f73e5d575"
integrity sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==
dependencies:
nanoid "^3.3.3"
picocolors "^1.0.0"
source-map-js "^1.0.2"
postgres-array@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
@ -11588,16 +11232,6 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
regexparam@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-2.0.0.tgz#059476767d5f5f87f735fc7922d133fd1a118c8c"
integrity sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==
regexparam@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-1.3.0.tgz#2fe42c93e32a40eff6235d635e0ffa344b92965f"
integrity sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==
regexpp@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
@ -11641,21 +11275,6 @@ regjsparser@^0.8.2:
dependencies:
jsesc "~0.5.0"
relative@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/relative/-/relative-3.0.2.tgz#0dcd8ec54a5d35a3c15e104503d65375b5a5367f"
integrity sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8=
dependencies:
isobject "^2.0.0"
remarkable@^1.6.2:
version "1.7.4"
resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
dependencies:
argparse "^1.0.10"
autolinker "~0.28.0"
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@ -11859,13 +11478,6 @@ roarr@^2.15.3:
semver-compare "^1.0.0"
sprintf-js "^1.1.2"
rollup-plugin-polyfill-node@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-polyfill-node/-/rollup-plugin-polyfill-node-0.8.0.tgz#859c070822f5e38d221e5b4238cb34aa894c2b19"
integrity sha512-C4UeKedOmOBkB3FgR+z/v9kzRwV1Q/H8xWs1u1+CNe4XOV6hINfOrcO+TredKxYvopCmr+WKUSNsFUnD1RLHgQ==
dependencies:
"@rollup/plugin-inject" "^4.0.0"
rsvp@^4.8.4:
version "4.8.5"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
@ -11932,18 +11544,6 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
sanitize-html@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.7.0.tgz#e106205b468aca932e2f9baf241f24660d34e279"
integrity sha512-jfQelabOn5voO7FAfnQF7v+jsA6z9zC/O4ec0z3E35XPEtHYJT/OdUziVWlKW4irCr2kXaQAyXTXDHWAibg1tA==
dependencies:
deepmerge "^4.2.2"
escape-string-regexp "^4.0.0"
htmlparser2 "^6.0.0"
is-plain-object "^5.0.0"
parse-srcset "^1.0.2"
postcss "^8.3.11"
sanitize-s3-objectkey@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/sanitize-s3-objectkey/-/sanitize-s3-objectkey-0.0.1.tgz#efa9887cd45275b40234fb4bb12fc5754fe64e7e"
@ -11982,11 +11582,6 @@ schema-utils@^3.1.0, schema-utils@^3.1.1:
ajv "^6.12.5"
ajv-keywords "^3.5.2"
screenfull@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-6.0.1.tgz#3b71e6f06b72d817a8d3be73c45ebe71fa8da1ce"
integrity sha512-yzQW+j4zMUBQC51xxWaoDYjxOtl8Kn+xvue3p6v/fv2pIi1jH4AldgVLU8TBfFVgH2x3VXlf3+YiA/AYIPlaew==
search-params@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/search-params/-/search-params-3.0.0.tgz#dbc7c243058e5a33ae1e9870be91f5aced4100d8"
@ -12004,11 +11599,6 @@ seek-bzip@^1.0.5:
dependencies:
commander "^2.8.1"
self-closing-tags@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/self-closing-tags/-/self-closing-tags-1.0.1.tgz#6c5fa497994bb826b484216916371accee490a5d"
integrity sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA==
semver-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
@ -12144,13 +11734,6 @@ shimmer@^1.2.0:
resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337"
integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
shortid@^2.2.15:
version "2.2.16"
resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608"
integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==
dependencies:
nanoid "^2.1.0"
side-channel@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
@ -12265,11 +11848,6 @@ source-list-map@^2.0.1:
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
source-map-resolve@^0.5.0:
version "0.5.3"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@ -12323,11 +11901,6 @@ source-map@^0.7.3, source-map@~0.7.2:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
sourcemap-codec@^1.4.8:
version "1.4.8"
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
spark-md5@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.1.tgz#83a0e255734f2ab4e5c466e5a2cfc9ba2aa2124d"
@ -12650,11 +12223,6 @@ strip-outer@^1.0.0:
dependencies:
escape-string-regexp "^1.0.2"
striptags@^3.1.1:
version "3.2.0"
resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052"
integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==
style-loader@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575"
@ -12754,23 +12322,11 @@ svelte-portal@^1.0.0:
resolved "https://registry.yarnpkg.com/svelte-portal/-/svelte-portal-1.0.0.tgz#36a47c5578b1a4d9b4dc60fa32a904640ec4cdd3"
integrity sha512-nHf+DS/jZ6jjnZSleBMSaZua9JlG5rZv9lOGKgJuaZStfevtjIlUJrkLc3vbV8QdBvPPVmvcjTlazAzfKu0v3Q==
svelte-spa-router@^3.0.5:
version "3.2.0"
resolved "https://registry.yarnpkg.com/svelte-spa-router/-/svelte-spa-router-3.2.0.tgz#fae3311d292451236cb57131262406cf312b15ee"
integrity sha512-igemo5Vs82TGBBw+DjWt6qKameXYzNs6aDXcTxou5XbEvOjiRcAM6MLkdVRCatn6u8r42dE99bt/br7T4qe/AQ==
dependencies:
regexparam "2.0.0"
svelte@^3.38.2:
version "3.44.1"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.44.1.tgz#5cc772a8340f4519a4ecd1ac1a842325466b1a63"
integrity sha512-4DrCEJoBvdR689efHNSxIQn2pnFwB7E7j2yLEJtHE/P8hxwZWIphCtJ8are7bjl/iVMlcEf5uh5pJ68IwR09vQ==
svelte@^3.46.2:
version "3.48.0"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.48.0.tgz#f98c866d45e155bad8e1e88f15f9c03cd28753d3"
integrity sha512-fN2YRm/bGumvjUpu6yI3BpvZnpIm9I6A7HR4oUNYd7ggYyIwSA/BX7DJ+UXXffLp6XNcUijyLvttbPVCYa/3xQ==
svg.draggable.js@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz#c514a2f1405efb6f0263e7958f5b68fce50603ba"
@ -13103,11 +12659,6 @@ to-fast-properties@^2.0.0:
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
to-gfm-code-block@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82"
integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI=
to-json-schema@0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/to-json-schema/-/to-json-schema-0.2.5.tgz#ef3c3f11ad64460dcfbdbafd0fd525d69d62a98f"
@ -13345,13 +12896,6 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
typeof-article@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/typeof-article/-/typeof-article-0.1.1.tgz#9f07e733c3fbb646ffa9e61c08debacd460e06af"
integrity sha1-nwfnM8P7tkb/qeYcCN66zUYOBq8=
dependencies:
kind-of "^3.1.0"
typeof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/typeof/-/typeof-1.0.0.tgz#9c84403f2323ae5399167275497638ea1d2f2440"
@ -13362,11 +12906,6 @@ typescript@^4.5.5:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4"
integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==
typo-js@*:
version "1.2.1"
resolved "https://registry.yarnpkg.com/typo-js/-/typo-js-1.2.1.tgz#334a0d8c3f6c56f2f1e15fdf6c31677793cbbe9b"
integrity sha512-bTGLjbD3WqZDR3CgEFkyi9Q/SS2oM29ipXrWfDb4M74ea69QwKAECVceYpaBu0GfdnASMg9Qfl67ttB23nePHg==
uc.micro@^1.0.1, uc.micro@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
@ -13669,14 +13208,6 @@ vm2@^3.9.3:
acorn "^8.7.0"
acorn-walk "^8.2.0"
vm2@^3.9.4:
version "3.9.9"
resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5"
integrity sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw==
dependencies:
acorn "^8.7.0"
acorn-walk "^8.2.0"
vuvuzela@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/vuvuzela/-/vuvuzela-1.0.3.tgz#3be145e58271c73ca55279dd851f12a682114b0b"
@ -14195,11 +13726,6 @@ yauzl@^2.4.2:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
year@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0"
integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A=
ylru@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"

View file

@ -1,3 +1,18 @@
export interface App {
import { Document } from "./document"
export interface App extends Document {
appId: string
type: string
version: string
componentLibraries: string[]
name: string
url: string | undefined
template: string | undefined
instance: AppInstance
tenantId: string
status: string
}
export interface AppInstance {
_id: string
}

View file

@ -0,0 +1,6 @@
export interface Document {
_id: string
_rev?: string
createdAt: string
updatedAt: string
}

View file

@ -7,3 +7,4 @@ export * from "./role"
export * from "./table"
export * from "./screen"
export * from "./view"
export * from "./document"

View file

@ -17,6 +17,7 @@ const http = require("http")
const api = require("./api")
const redis = require("./utilities/redis")
const Sentry = require("@sentry/node")
import { events } from "@budibase/backend-core"
// this will setup http and https proxies form env variables
bootstrap()
@ -67,6 +68,7 @@ server.on("close", async () => {
console.log("Server Closed")
}
await redis.shutdown()
await events.shutdown()
})
module.exports = server.listen(parseInt(env.PORT || 4002), async () => {

View file

@ -293,10 +293,10 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@budibase/backend-core@1.0.138":
version "1.0.138"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.0.138.tgz#5297d6cf5b9ec8c15f0a6df4c7d8273b8ac900f0"
integrity sha512-1qN/5urKX8bBXwEz266Z94rco8dTI7VqIh75m8ZcqrAfoUpjvZJS76gZxfc5U/QWPwrgVFnLtYvnEjaLbGEflg==
"@budibase/backend-core@1.0.142":
version "1.0.142"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.0.142.tgz#cbfa426dbf064dff0ea5f9840baae595c0f5343c"
integrity sha512-gd52tOm4mytHa3OQQVcEiwnVCvq0pC0q3YN+5D1uoGt9WaAZoshB5AhXnUPZohvpo5j8isO07qXvF+5YffPVaw==
dependencies:
"@techpass/passport-openidconnect" "^0.3.0"
aws-sdk "^2.901.0"
@ -321,12 +321,12 @@
uuid "^8.3.2"
zlib "^1.0.5"
"@budibase/pro@1.0.138":
version "1.0.138"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.0.138.tgz#cacbebe5ce93eb533af62a794a638944c2c61544"
integrity sha512-4ABlUZvl2h8sd8awJATf3KJeoFWV/8SoqdbKiH1ICdUcM/6dad7nhbJ15QqJL+Uuh/+mN2yEbr8V6Un2+yF+CA==
"@budibase/pro@1.0.142":
version "1.0.142"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.0.142.tgz#17cd53d67ce80e0cce2179caee0c03e6a0d7084e"
integrity sha512-c1SaRoVik/AVn4zNNsDciFeIr+P3J6Sc8hsE5M3pb0Zj/NzSEHXTesxcBVLlD2PYlwnvWPSoMvdDJKrEFHvOYQ==
dependencies:
"@budibase/backend-core" "1.0.138"
"@budibase/backend-core" "1.0.142"
node-fetch "^2.6.1"
"@cspotcode/source-map-consumer@0.8.0":