Documentation ¶
Overview ¶
********************************************************************************** The MIT License (MIT)
Copyright (c) 2022 Sean Beard ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 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 MIT License (MIT)
Copyright (c) 2022 Sean Beard ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 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 MIT License (MIT)
Copyright (c) 2022 Sean Beard ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 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 MIT License (MIT)
Copyright (c) 2022 Sean Beard ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 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 MIT License (MIT)
Copyright (c) 2022 Sean Beard ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 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. **********************************************************************************
Index ¶
- Variables
- type ConnectionParameters
- type DataAccessError
- type DataAccessErrorType
- type DataSource
- type DataSourceConfiguration
- type DataSourceCredentials
- type DataSourceType
- type DataSources
- type Document
- type Query
- type QueryClauseComparator
- type QueryClauseConnector
- type QueryClauseGroup
- type QueryClauseValue
- type UnmarshalFn
Constants ¶
This section is empty.
Variables ¶
var ( // InvalidDataSourceType is a Dataaccess error code that represents an // unsupported DataSourceType value was used InvalidDataSourceType = 601 // ErrInvalidDataSourceType is used when an invalid DataSourceType value was // used ErrInvalidDataSourceType = fmt.Errorf("[%d] invalid or unsupported data source type", InvalidDataSourceType) )
var ( // InvalidQueryClauseConnector is a Dataaccess error code that represents an // unsupported QueryClauseConnector value was used InvalidQueryClauseConnector = 602 // ErrInvalidQueryClauseConnector is used when an invalid query cluase connector // has been used ErrInvalidQueryClauseConnector = fmt.Errorf("[%d] invalid or unsupported query clause connector", InvalidQueryClauseConnector) )
var ( // InvalidQueryClauseComparator is MobiusX Error Code that represents an // unsupported Query Clause Comparator values was used InvalidQueryClauseComparator = 605 // ErrInvalidQueryClauseComparator is use dwhen an invalid query clause // comparator is used ErrInvalidQueryClauseComparator = fmt.Errorf("[%d] invalid or unsupported query clasue comparator specified", InvalidQueryClauseComparator) )
var ( // InvalidDataAccessErrorType is MobiusX Error Code that represents an // unsupported ErrorType value was used InvalidDataAccessErrorType = 606 // ErrInvalidDataAccessErrorType is use when an invalid error type is used ErrInvalidDataAccessErrorType = fmt.Errorf("[%d] invalid or unsupported error type specified", InvalidDataAccessErrorType) )
var ( // ErrNotImplementedException is used when a method has not been implmented ErrNotImplementedException = NewDataAccessError("not implemented exception", NOTIMPLEMENTED) // ErrNoResultsFound is used when a query returns no results ErrNoResultsFound = NewDataAccessError("no results found from query", NOTFOUND) )
Functions ¶
This section is empty.
Types ¶
type ConnectionParameters ¶
type ConnectionParameters struct { //Connection interface{} `json:"connection" env:"DSCONNECTIONSTRING"` Connection []string `json:"connection" env:"DSCONNECTIONSTRING" envSeparator:","` Auth DataSourceCredentials `json:"auth"` }
ConnectionParameters holds all of the connection related data required to connect to a data source
type DataAccessError ¶
type DataAccessError struct { InnerError error `json:"innererror"` Message string `json:"message"` Type string `json:"type"` Reason string `json:"reason"` Code int `json:"code"` DataAccessErrorType DataAccessErrorType `json:"errortype"` }
DataAccessError is a specialized Error value that represents the different errors that can be returned from Data Access operations
func NewDataAccessError ¶
func NewDataAccessError(message string, dataAccessErrorType DataAccessErrorType) DataAccessError
NewDataAccessError creates and returns a new DataAccessError object
func (DataAccessError) Error ¶
func (dataAccessError DataAccessError) Error() string
Error implements the Error interface, making dataAccessError a valid Error
func (DataAccessError) MarshalJSON ¶
func (dataAccessError DataAccessError) MarshalJSON() ([]byte, error)
MarshalJSON is a method implemented allowing serialization of the ErrorType value to its string representation
func (*DataAccessError) UnmarshalJSON ¶
func (dataAccessError *DataAccessError) UnmarshalJSON(data []byte) error
UnmarshalJSON is a method implemented allowing de-serialization of the ErrorType value from a string to its ErrorType representation
type DataAccessErrorType ¶
type DataAccessErrorType int
DataAccessErrorType represents an enumeration constant for the types of data access errors returned from data access operations
const ( // NOTIMPLEMENTED is an enumerated constant representing an error where the // requested functionality functionality has not been implemented NOTIMPLEMENTED DataAccessErrorType = iota // NOTFOUND is an enumerated constant representing an error where the results of // the query contain no records NOTFOUND // QUERY is an enumerated constant representing an error that occurred/returned // from the data source when executing a query QUERY )
func DataAccessErrorTypeFromString ¶
func DataAccessErrorTypeFromString(errorTypeString string) (errorType DataAccessErrorType, err error)
DataAccessErrorTypeFromString returns the ErrorType from the errorTypeString representation
func (DataAccessErrorType) String ¶
func (errorType DataAccessErrorType) String() string
String returns the string representation in lower case for the error type value
type DataSource ¶
type DataSource interface {
Client() interface{}
}
DataSource is an interface that represents an abstracted instance of a datasource.
type DataSourceConfiguration ¶
type DataSourceConfiguration struct { DataSource DataSourceType `json:"datasourcetype" env:"DSTYPE" mapstructure:"datasourcetype"` ConnectionParameters ConnectionParameters `json:"connectionparameters" env:"CONNECTION_PARAMETERS"` DataSourceParameters map[string]interface{} `json:"datasourceparameters" env:"DATASOURCE_PARAMETERS"` Serverless bool `json:"serverless" env:"SERVERLESS"` }
DataSourceConfiguration represents the generic configuration object supplying all of the required parameters for leveraging the designated data source
func (DataSourceConfiguration) MarshalJSON ¶
func (dsCfg DataSourceConfiguration) MarshalJSON() ([]byte, error)
MarshalJSON is a method implemented allowing serialization of the DataSourceType value from an enumerated type to a string
func (*DataSourceConfiguration) UnmarshalEnv ¶
func (dsCfg *DataSourceConfiguration) UnmarshalEnv() error
UnmarshalEnv is method for allowing the DataSourceType to be passed in the environment and deserialized. This method satisfies the ParseEnv interface
func (*DataSourceConfiguration) UnmarshalJSON ¶
func (dsCfg *DataSourceConfiguration) UnmarshalJSON(data []byte) error
UnmarshalJSON is a method implemented allowing de-serialization of the DataSourceType value from a string to an enumerated type
type DataSourceCredentials ¶
type DataSourceCredentials struct { Username string `json:"username"` Password string `json:"password"` }
DataSourceCredentials holds all of the data required to connect to a data source. Meant to be used to build the connection string
type DataSourceType ¶
type DataSourceType int
DataSourceType represents an Enum type for the different supported data sources that an application can leverage
const ( // DYNAMODB represents a DynamoDB data source DYNAMODB DataSourceType = iota // ELASTICSEARCH represents an Elasticsearch data source ELASTICSEARCH // REDIS represents a Redis cache data source REDIS // ETCD represents an Etcd data source ETCD // FILESOURCE represents a File on the file system data source FILESOURCE )
func DataSourceTypeFromString ¶
func DataSourceTypeFromString(dsTypeString string) (returnType DataSourceType, err error)
DataSourceTypeFromString returns the data source type from a string representation
func (DataSourceType) String ¶
func (dsType DataSourceType) String() string
String returns the string representation of a DataSourceType
type DataSources ¶
type DataSources map[string]*DataSourceConfiguration
DataSources represents a map of generic configuration objects that, when processed, translates in to a map of DataSource objects
type Document ¶
Document defines the interface that all doata object/documents leveraging the DataAccess library needs to conform to, allowing a modular use of different DBs within a project
type Query ¶
type Query struct { Select QueryClauseGroup Filters QueryClauseGroup IndexName string }
Query is a struct that represents a query being made against a DataSource
type QueryClauseComparator ¶
type QueryClauseComparator int
QueryClauseComparator represents an enumeration constant for the types of valid comparison operations for a specific query clause value
const ( // EQ is an enumerated constant representing an equality operation for a query // clause value EQ QueryClauseComparator = iota // LT is an enumerated constant representing a 'less than' comparison operation // for a query clause value. Is only valid for a number type LT // LTE is an enumerated constant representing a 'less than or equal' comparison // operation for a query clause value. Is only valid for a number type LTE // GT is an enumerated constant representing a 'greater than' operation for a // query clause value. Is only valid for a number type GT // GTE is an enumerated constant representing a 'greater then or equal' // operation for a query clause value. Is only valid for a number type GTE // BETWEEN is an enumerated constant representing a range between but not equal // to the range values BETWEEN // BETWEENE is an enumerated constant representing a range between and can be // equal to the range values BETWEENE )
func QueryClauseComparatorFromString ¶
func QueryClauseComparatorFromString(queryClauseComparatorString string) (returnComparator QueryClauseComparator, err error)
QueryClauseComparatorFromString returns the QueryClauseComparator from the queryClauseComparator string representation
func (QueryClauseComparator) GetSymbol ¶
func (queryClauseComparator QueryClauseComparator) GetSymbol() string
GetSymbol is a conveinece function for returning a string repsentation of the QueryClauseComparator symbol
func (QueryClauseComparator) String ¶
func (queryClauseComparator QueryClauseComparator) String() string
String returns the string representation in lower case for the query clause value comparator type
type QueryClauseConnector ¶
type QueryClauseConnector int
QueryClauseConnector represents an enum type for the different support clause 'conjunctions' that a query can leverage
const ( // AND represents a set and operation AND QueryClauseConnector = iota // OR represents a set or operation OR // NOT represents a set not operation NOT // COMMA simply represents a comma separated list instead of clause value COMMA // LIKE represents a fuzzy and is only applicable with data sources that support // it (such as ElasticSearch) LIKE // NONE represents that value that no clause operator is required NONE )
func QueryClauseConnectorFromString ¶
func QueryClauseConnectorFromString(queryClauseConnectorString string) (returnConnector QueryClauseConnector, err error)
QueryClauseConnectorFromString returns the data source type from a string representation
func (QueryClauseConnector) GetSymbol ¶
func (queryClauseConnector QueryClauseConnector) GetSymbol() string
GetSymbol is a conveinece function for returning a string repsentation of the QueryClauseConnector symbol
func (QueryClauseConnector) String ¶
func (queryClauseConnector QueryClauseConnector) String() string
String returns the string representation of a DataSourceType
type QueryClauseGroup ¶
type QueryClauseGroup map[QueryClauseConnector][]QueryClauseValue
QueryClauseGroup represents a logical grouping of QueryClauseValues that are logically connected via the QueryClauseConnector Value
type QueryClauseValue ¶
type QueryClauseValue struct { Attribute string Value interface{} Comparator QueryClauseComparator }
QueryClauseValue represents a particular value related to a column or attribute in a DataSource
type UnmarshalFn ¶
UnmarshalFn is used to unmarshal the object returned from a specific database call to the appropriate object
Directories ¶
Path | Synopsis |
---|---|
********************************************************************************** The MIT License (MIT) Copyright (c) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. |
scratch
********************************************************************************** The MIT License (MIT) Copyright (c) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to 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) 2022 Sean Beard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. |