# 1.0.0-Beta18

This release introduces several new features and configurations to enhance functionality and security. It also continues to squash tons of bugs to bring about CFML compatibility. Key updates include:

* Enhanced `arrayFind` and `arrayFindNoCase` functions, allowing value closures to accept item indices.
* New `validBoxLangTemplates` configuration for filtering templates processable by the Runnable Loader.
* New `validClassExtensions` configuration to specify permissible class extensions.
* A new `security` configuration section designed to disallow BIFs, Components, and Imports, enhancing security.

## New Feature

[BL-617](https://ortussolutions.atlassian.net/browse/BL-617) `arrayFind`, `arrayFindNoCase` value closures, accept the value and now the index of the item as the second param

[BL-626](https://ortussolutions.atlassian.net/browse/BL-626) New configuration: `validBoxLangTemplates` to determine which templates the Runnable Loader can process

[BL-627](https://ortussolutions.atlassian.net/browse/BL-627) New configuration: `validClassExtensions` to determine which class extensions to work with

[BL-629](https://ortussolutions.atlassian.net/browse/BL-629) New `security` configuration section for disallowing: BIFS, Components, Imports

[BL-630](https://ortussolutions.atlassian.net/browse/BL-630) Internal refactor to make the class locator and resolvers have a life-cycle based on the runtime and not alone

## Improvement

[BL-611](https://ortussolutions.atlassian.net/browse/BL-611) Remove debugmode capture on miniserver, delegate to the core runtime.

[BL-622](https://ortussolutions.atlassian.net/browse/BL-622) Consolidate `CastAttempt` and `Attempt` into a hierarchy

[BL-623](https://ortussolutions.atlassian.net/browse/BL-623) New `DynamicFunction` type that can be used to generate dynamic BoxLang functions using Java Lambda proxies. Great for code generation

## Bug

[BL-614](https://ortussolutions.atlassian.net/browse/BL-614) Import nested classes

[BL-615](https://ortussolutions.atlassian.net/browse/BL-615) Java static funcitons not behaving as expected

[BL-616](https://ortussolutions.atlassian.net/browse/BL-616) array.find does not use cf rules to convert result of predicate to boolean

[BL-619](https://ortussolutions.atlassian.net/browse/BL-619) QueryColumnType doesn't handle "idstamp" (mssql)

[BL-620](https://ortussolutions.atlassian.net/browse/BL-620) static scope in application.cfc not initialized before psuedoConstructor runs

[BL-624](https://ortussolutions.atlassian.net/browse/BL-624) Auto-escaping of {} in regex needs to ignore already-escaped braces

[BL-625](https://ortussolutions.atlassian.net/browse/BL-625) Instead of removing special chars from Java FQN, replace with \_\_ to avoid conflicts

[BL-628](https://ortussolutions.atlassian.net/browse/BL-628) Tag expressions not parsing inside template island inside braces

[BL-631](https://ortussolutions.atlassian.net/browse/BL-631) duplicate() doesn't work on empty structs

[BL-633](https://ortussolutions.atlassian.net/browse/BL-633) randrange() not inclusive of upper bound

[BL-634](https://ortussolutions.atlassian.net/browse/BL-634) array.find - can't cast closure to string
