SailsJS v1.1.0 Release Notes

Release Date: 2018-11-13 // over 5 years ago
  • ๐Ÿš€ > As always, we owe a debt of gratitude to our contributors-- we mentioned you below next to the features/enhancements/fixes you contributed to. (Apologies to anyone we missed, there was a lot in this release! Let us know and we'll add you to the list.)

    ๐Ÿ“š > We especially want to thank those contributors who helped out with the documentation:

    Finally, big thanks to Dennis Cheung who did the painstaking work of compiling this changelog!

    ~mike

    Framework:

    • ๐Ÿ†• New model methods: .updateOne(), .destroyOne(), and .archiveOne()
    • exits argument may now be excluded from your fn function in all helpers, actions2 definitions, and shell scripts.
    • Cleaner usage for .stream(), .transaction(), and .leaseConnection(). Functions provided as procedural parameters (i.e. during and iteratees) no longer expect a callback to be invoked, as long as you omit their 2nd callabck argument from the function signature.
    • The bootstrap function (config/bootstrap.js) and the initialize function of hooks no longer expect a callback to be invoked, as long as the callback argument is excluded from the function signature.
    • ๐Ÿ†• New chainable methods available on helper invocations: .timeout() and .retry().
    • 0๏ธโƒฃ Use vuejs VueRouter (and a virtual page example) by default, and make vuejs more apparent
    • โšก๏ธ Update helper, action, and hook generators, plus a few other updates to boilerplate output from generators.
    • โšก๏ธ Update boilerplate bootstrap and hook initialize functions.
    • 0๏ธโƒฃ Disable 'async' dependency when generated the expanded starter app, to avoid confusion. (Can always still be installed, it just won't be bundled by default anymore, and auto-globalization is also, of course, disabled.)
    • โšก๏ธ Include FontAwesome 4 files, and update instructions for removal if desired
    • โšก๏ธ Update check for production/staging in vuejs to assume we're in production if no SAILS_LOCALS are present
    • ๐Ÿ“š Provide documentation tip on how to configure Mongo as default datastore w/ link to tutorial
    • Take advantage of next-gen whelk.
    • ๐Ÿ‘Œ Improve Windows compatibility (for 'sails generate page', sails generate action, etc)
    • 0๏ธโƒฃ Exclude 'async' dep by default in all new apps
    • โšก๏ธ Update boilerplate to take advantage of optional 'exits' argument in helpers, actions, and shell scripts.
    • โšก๏ธ Use updated bootstrap for web app template
    • ๐Ÿ“ˆ Implement Google fonts/typekit/google tag manager/google analytics
    • Include (hard-code) Bowser inline now
    • ๐Ÿ‘Œ Improve to also include 'is' rule
    • Redirect away ALL unrecognized base subdomains (not just webhooks and click), but only do it in staging/production.
    • ๐Ÿ›  Fix "sails g page" with nested folders on Windows
    • โž• Add FileList and FormData to reserved list to protect them from mangling. (Should be fine anyway, but this protects against potential issues from changing uglify versions.)
    • Take advantage of patch in Parasails 0.7.7
    • โšก๏ธ Leverage .updateOne()
    • โž• Add 5 second timeout for all four of those calls, to protect user experience from any 3rd party API call issues. (For context, this is rare, but it happens. I've noticed Stripe go all 500 on a customer app twice in the last 6 months: once for about 28 minutes earlier this summer, and once last month for a split second. I've never seen it hang, but this is such a common thing with other 3rd party apis better to be safe than sorry. An error message after a reasonable wait time is a far better user experience than having to wait 2 whole minutes for the TCP timeout. And this way, any error handling logic to unroll stuff etc that gets added here will still be able to run.)
    • โ†” Integrate Cloud SDK into Parasails
    • ๐Ÿ‘‰ Use top-level implementationSniffingTactic and pass through to whelk and MaA
    • ๐Ÿ‘ฎ Force homogeneous sniffing tactic for helpers+actions.
    • ๐Ÿ‘ฎ Force minimum SVRs (re implementationType: 'classical').
    • ๐Ÿ‘ Finish up support for smarter .bootstrap and .initialize. (Continued from 21bc1f1ab88dfa1064f2e312a4b1135b92763d2a)
    • โž• Add faux callbacks for easier debugging
    • โž• Add create method to datastore fixture, and test "no validation errors" case. (Scott Gress)
    • ๐Ÿ›  Fix test descriptions for update (Scott Gress)
    • โž• Add test cases for validations on primary key (Scott Gress)
    • Hoist flag for determining whether to apply validation rules, and use it for both PKs and generic attributes. (Scott Gress)
    • โž• Add implementation-sniffing to .stream()
    • โšก๏ธ Setup updateOne() method
    • Set up destroyOne() and archiveOne(), and use an omen in the 'found too many' error in findOne() to improve the stack trace.
    • Implement implementation sniffing in .transaction() and .leaseConnection().
    • Enable ORM to accept attributes named 'length'. Replace _.each() with _.forIn() to enable ORM to accept attributes named 'length'. (Daniel Harvey)
    • โž• Add an isError check when handling errors thrown from validation rules to prevent potential issues in extreme edge cases (where something weird gets thrown)
    • โœ… Clean up tests for greater clarity and usefulness
    • โœ… Finish restructuring things to match latest conventions in parley, etc. Leave standalone/ alias for backwards-compatibility
    • โšก๏ธ Update docs about other adapter methods
    • ๐Ÿ‘Œ Improve error messaging to assist in debugging
    • Add E_TOO_MANY_FILES error code.
    • โž• Add Cloud.on() and Cloud.off(), improve error msgs, and remove idempotency guarantee
    • โž• Add typeof check to ensure reasonable behavior even with strange input.
    • โœจ Enhance built-in catchall error msg for Cloud.on()
    • ๐Ÿ”จ Refactor UMD approach to make it easier to see what's going on at a glance.
    • โž• Add experimental support for FileList instances (multi-file upload via Cloud SDK).
    • ๐Ÿ‘Œ Improve performance of +500K ops/sec by collapsing IIFE
    • Setup for being able to use AsyncFunctions with .intercept() and .tolerate().
    • โž• Add new method: getInvocationinfo() -- a public API for accessing private info such as _timeout. Add .interruptions to getInvocationInfo().
    • Introduce working impl of .retry()
    • ๐Ÿ“‡ Clone (shallow) metadata on the way in during .retry(), just to avoid any potential edge cases with a fn attaching additional properties and that actually mattering for subsequent invocations with the same arguments.
    • Take advantage of new getInvocationInfo() method in parley related to .retry()
    • ๐Ÿ‘ Implement partial support for blended tolerate/intercept with retry (Note: works only for completely parallel error conditions).
    • โšก๏ธ Optimize AsyncFunction function constructor check.
    • ๐Ÿ‘ Allow implementationSniffingTactic to be customized.
    • โž• Add failsafe to ensure app lifts inside of Mocha tests. Related to https://github.com/balderdashy/sails/issues/4395 and https://github.com/balderdashy/captains-log/pull/22
    • Also in new Sails apps: Force min 3.10.3 of lodash in new projects
    • โšก๏ธ Also in new Sails apps: Update eslintrc templates to tolerate unused args and vars that begin with 'unused' (or are just named 'unused')
    • Also in new Sails apps: Add 'custom' validation rule.
    • Also in new Sails apps: Replace autofocus with focus-first, and ensure this feature is opt-in for and . Also add typeof check for bowser.
    • Also in new Sails apps: Tolerate required: false, etc in
    • Also in new Sails apps: Improve error msg in weird edge case
    • 0๏ธโƒฃ Also in new Sails apps: Allow completely numeric passwords by default when using 'isHalfwayDecentPassword' validation rule for
    • โšก๏ธ Also in new Sails apps: Update email templates
    • ๐Ÿ’… Also in new Sails apps: Add a couple opinionated-yet-reasonable global styles to the 'bootstrap-overrides' file
    • Also in new Sails apps: Bump appveyor+travis files to always include Node 10
    • ๐Ÿ“š Also in new Sails apps: Standardize redis url format to be consistent with site documentation for db (numerical database names only). Scott Reed
    • ๐Ÿš€ Also in new Sails apps: Ignore files generated by 'npm link' in recent NPM releases
    • Also in new Sails apps: Add note about conditional requiredness and validation rules.
    • Also in new Sails apps: Add autocomplete attributes to form fields where applicable
    • Also in new Sails apps: Disable lesshint rule for border-boxing everything in bootstrap-overrides
    • Also in new Sails apps: Fix mismatched tags in email templates
    • Also in new Sails apps: Fix that silly checkbox alignment on login/signup templates
    • Also in new Sails apps: Fix camelCasing issue in intermediate subdirectories for newly created view actions.
    • Also in new Sails apps: Fix fullName validation on edit profile page (S.Slavchev)
    • Also in new Sails apps: Don't include inputs in generated shell script.
    • ๐Ÿ‘• Also in new Sails apps: Make 'semi' and 'curly' lint violations burn yellow instead of burning red
    • Also in new Sails apps: Tweak generated comment about 'no lodash'
    • Also in new Sails apps: Add note about the function signature of 'leave'
    • Also in new Sails apps: Simplify readme links
    • ๐Ÿ“„ Also in new Sails apps: Tweak inline docs for
    • โšก๏ธ Also in new Sails apps: Bring in self-updating timestamp component for web app template
    • โšก๏ธ Also in new Sails apps: Update model examples
    • Also in new Sails apps: Use kebab-cased status to avoid database-dependent behavior in edge cases (b/c case sensitivity)
    • Also in new Sails apps: Rename var and kebab-case desired effect strings for consistency
    • Also in new Sails apps: Use _.extend for consistency
    • ๐Ÿ‘• Also in new Sails apps: Include moment in eslintrc-override
    • Also in new Sails apps: Tweak , and then include a demo in the welcome page.
    • Also in new Sails apps: Normalize indentation in "send template email" helper
    • Also in new Sails apps: Make sure the HTML email contents are actually being logged properly
    • Also in new Sails apps: Change method names on welcome page for consistency, and also use this.modal, since there can only be one modal on the page at a time anyway
    • Also in new Sails apps: Rearrange virtual page example
    • ๐Ÿ’ป Also in new Sails apps: Bring in unsupported browser overlay
    • Also in new Sails apps: Change href so it makes more sense
    • Also in new Sails apps: Expand comment re virtual pages.
    • Also in new Sails apps: Expand comments in js-timestamp a bit.
    • Also in new Sails apps: Rearrange note about filtering argins now that handleSubmitting exists.
    • โœ… Also in new Sails apps: Don't specify testMode when calling out to Mailgun, to avoid confusion.
    • Also in new Sails apps: Never indicate that the email was logged instead of sent if it wasn't.
    • Also in new Sails apps: Add retries w/ exponentional back-off for idempotent / low-risk 3rd party API calls.
    • 0๏ธโƒฃ Also in new Sails apps: Add 'ensureAck' flag to sendTemplateEmail(), and change behavior to background the sending by default.
    • Also in new Sails apps: Simplify rebuild-cloud-sdk script a bit.
    • Also in new Sails apps: Use for instead of _.each()
    • Also in new Sails apps: Fix typo introduced in 22df26e832aeef817a6e3c01561041eda83830cd
    • ๐Ÿ™‹ Also in new Sails apps: Tweak verbiage in boilerplate FAQ for clarity. (action not controller)
    • Also in new Sails apps: Normalize capitalization in generated footer
    • Also in new Sails apps: Include a placeholder logo image for the branding in the masthead
    • ๐ŸŒ Also in new Sails apps: On homepage for web app template, add more space between "feature" sections on small screens
    • ๐Ÿ’… Also in new Sails apps: Use consistent link styles all across the web app template, and also add some special blockquote styles
    • Also in new Sails apps: Verbiage tweaks / capitalization normalizaish
    • Also in new Sails apps: 'No matter how legal it is, capitalization should never look this ugly.' -mike, amateur lawyer
    • ๐Ÿ™‹ Also in new Sails apps: Add FAQ item with info about placeholders, and give the questions some more breathing room
    • Also in new Sails apps: Cleanup and friendlify boilerplate legal documents
    • ๐Ÿ‘ Also in new Sails apps: Provide better example config
    • Also in new Sails apps: Tweak constant name to match
    • Also in new Sails apps: Fix inconsistent constants
    • ๐Ÿ™‹ Also in new Sails apps: Avoid find/replace conflicts with constants. Also, add the link we mention in the FAQ.
    • Also in new Sails apps: Correct the boilerplate language
    • ๐Ÿ’… Also in new Sails apps: Add clarifications to boilerplate stylesheet
    • ๐Ÿ’… Also in new Sails apps: Remove custom a:not(.btn) styles from homepage, because those are set elsewhere now
    • Parasails: Tweak varname for clarity.
    • Parasails: Rename private method for clarity.
    • ๐Ÿ‘ Parasails: Leave better error sniffability, but rip out attempt to actually use it from 173685357364baaf9e2e2b3c16307c3fa7ec5d44
    • Parasails: An additional layer to Cloud.on() and Cloud.off() (intermediate commit to track concept of wildcard key -- ends up being too confusing for custom error handling, but might be worth revisiting as a kind of lifecycle callback in the future)
    • Parasails: Rename "*" catchall handler to "error" and finish implementation
    • Parasails: Rename to Cloud.listen() and Cloud.ignore(), add aliases, and improve error msgs.
    • Parasails: Intermediate commit: Tracks how we'd approach making .listen() idempotent-- but actually this probably isn't the right granularity to do that (save that for parasails proper on a per-Vue-component basis)
    • ๐Ÿ‘€ Parasails: Change .listen() and .ignore() back to .on() and .off(), and remove idempotency guarantee (that'll need to live at the component/Vue instance level in parasails proper -- see also https://github.com/mikermcneil/parasails/commit/36f87501cd174104e6b75a18b7c16d83ec74 edaa and https://github.com/mikermcneil/parasails/commit/b54258a9f244fabbbd3c89e35c7be5095c5d8dfa)
    • Parasails: Add back conveniences for multiple bindings.
    • Parasails: 'error' => '*'
    • Parasails: Add uncaught error handler
    • โšก๏ธ Parasails: Bring in most recent updates
    • ๐Ÿšš Parasails: Remove double-binding
    • โšก๏ธ Parasails: Update parasails.js (Mark Strelecky)
    • Parasails: Throw error when upload request is no good because it contains structured data as text parameter values.
    • Parasails: Add tip about uglify
    • ๐Ÿ’ป Parasails: Follow-up to 4941181912646ec27132afb82c2be32bb3cf6203 to make $.ajax() transport work with FileList instances (on browsers where this is supported).
    • Parasails: Fix hard-coded version number in parasails.js file.
    • ๐Ÿ”ง Parasails: Allow sparser shorthand for setting up virtual pages, while also implementing more error-checking and edge-case handling for various configurations of virtualPages, virtualPagesRegExp, and html5HistoryMode.
    • Parasails: Improve 'did you mean?' intelligence and add two FUTURE nice-to-haves.
    • ๐Ÿ‘ฎ Force [email protected]
    • ๐Ÿ›  Fix linting and global var issues for globals tests (Scott Gress)
    • ๐Ÿ›  Fix paths to Lodash for globals tests (Scott Gress)
    • ๐Ÿ›  Fix lint and global var issues in www test (Scott Gress)
    • โœ… Use tmp in www tests to attempt to fix Appveyor issues (Scott Gress)
    • โž• Address https://github.com/balderdashy/sails/commit/8168dffb8052c0a2df3de923a18c60dd27875915#diff-78ca47cd74fd541e85ff2100564371ddR656
    • โœ… Use tmp in remaining www test to try and address random Appveyor failures (Scott Gress)
    • ๐Ÿ‘‰ Use more accurate verb in secure cookie info msg
    • Contextualize the 'yes secure cookies, no trustProxy' debug mesage.
    • Clarify message and change it to be verbose
    • Closes #4392 (by removing coffee-script, checksum, and istanbul devDependencies)
    • Ignore 'npm link' collateral
    • Stub implementation opts for helpers re upcoming opt-ins
    • โž• Add note about implementationSniffingTactic
    • Implicitly set implementationSniffingTactic
    • โž• Add bookends about 'customize' for whelk and machine-as-action
    • Don't use explicit implementationSniffingTactic yet.
    • โฌ†๏ธ Bump machine runner SVR and remove unnecessary code
    • Note optimization
    • Setup for smarter .bootstrap and .initialize
    • Correctly apply implementationSniffingTactic for helpers
    • 0๏ธโƒฃ Default value for implementationSniffingTactic
    • โž• Add note in 'sails run'
    • Expand explanations in changelog.
    • For compatibility, tolerate action identities that contain '$'.
    • ๐Ÿ”„ Change variable name to prevent confusion with built-in 'module'.
    • Follow-up to a22598eb26f108768be91a31f4baa8fc92a9c5c7 which covers the rest of the cases
    • ๐Ÿ”„ Change var name for clarity (same idea as in 2eaaf968daae8f00ebc0007210baa32b5d50f7f0)
    • โš  Log warnings if special actions-only props are in use in helper defs.
    • โšก๏ธ Update changelog to reflect what's happening w/ the responses hook
    • โฌ†๏ธ Bump skipper dep
    • Clarify optional-ness of bootstrap callback in comment.
    • โšก๏ธ Update error messages for bootstrap/initialize to reflect new reality.
    • 2nd follow up to 97082b8e067a490531758f6bcbc471e08874c209 to allow for "$" in route bindings
    • ๐Ÿš€ Use prerelease of sails-generate
    • ๐Ÿ›  Fix sails-generate SVR
    • ๐Ÿ”€ Pin merge-dictionaries
    • ๐Ÿ›  Fix test now that async is no longer included as a dep. in newly generated sails apps (thanks to await and sails.helpers.flow via organics)
    • ๐Ÿ›  Fix expectations of test to match correct child process output (follow up to c694f2d2b1db4b9f397c52f540b19d7d4a4125f4)
    • ๐Ÿ›  Fix one more test related to c694f2d2b1db4b9f397c52f540b19d7d4a4125f4
    • โœ… Waterline: [PATCH] Fix typo and swap unit test description misplaced in fix #1554 to issue #4360 (Luis Lobo Borobia)
    • Waterline: Add link to drawing demonstrating how Waterline works underneath the hood
    • Waterline: Stub out the spots where implementationSniffingTactic needs to apply
    • โšก๏ธ Waterline: Improve error msg when attempting to use a too-generic WHERE clause with updateOne/destroyOne/archiveOne
    • Waterline: Don't use skipEncryption for archiveOne() and destroyOne() -- doesn't make sense.
    • ๐Ÿ“„ sails-hook-orm: Add missing comma and link to lifecycle hooks in docs (Tom Saleeba)
    • โšก๏ธ sails-hook-orm: Update error message about adapter compatibility
    • sails-hook-orm: Stub out the spots where implementationSniffingTactic needs to apply
    • โšก๏ธ waterline-utils: Update boilerplate
    • ๐Ÿ‘• waterline-utils: Resolve lint issues
    • waterline-utils: Ignore fun new files generated by 'npm link'
    • waterline-utils: Add normalize-datastore-config from sails-mongo (needs more love)
    • waterline-utils: Set 'protocol' property automatically.
    • waterline-utils: Expose .normalizeDatastoreConfig()
    • waterline-utils: Change .protocol -> protocolPrefix (and get rid of trailing colon)
    • waterline-utils: Add missing change from prev. commit, and also set .protocolPrefix when appropriate, even if no url was specified.
    • waterline-utils: Grab dictionary of models (w/ backwards compatibility)
    • waterline-utils: Fix backwards conditional
    • ๐Ÿ— anchor: Fix build status urls
    • โฌ†๏ธ anchor: Bump validator version re https://snyk.io/test/npm/anchor?severity=high&severity=medium&severity=low#npm:validator:20160218 (without applying any of the necessary changes yet, if there are any). Also upgrade to latest eslintrc file, etc, and bump eslint dep.
    • โœ… anchor: Fix out of date test label
    • anchor: Tweak checkConfig error msgs for isBefore+isAfter
    • anchor: Clean up checkConfig for isBefore and isAfter, and clarify another comment.
    • anchor: Reroll isBefore and isAfter the dumb, explicit way.
    • โœ… anchor: Added a few more tests.
    • โฌ†๏ธ anchor: Add validator upgrade
    • sails-hook-sockets: Fix typo in function being checked when preparing driver in case of unexpected failure (Luis Lobo Borobia)
    • ๐Ÿ“š sails-hook-sockets: Modify deprecation message to recommend install Sails owned socket.io-redis, to match up documentation https://sailsjs.com/documentation/concepts/deployment/scaling (Luis Lobo Borobia)
    • โšก๏ธ skipper: Update boilerplate.
    • ๐Ÿ‘• skipper: Add eslint dev dep
    • ๐Ÿ‘• skipper: Set up lint script and add docs for quota-related error codes in README
    • ๐Ÿ‘• skipper: Some lint fixes plus remove stringfile and 2 unnecessary deps.
    • skipper: sailshq/lodash
    • ๐Ÿ‘• skipper: Improve linter
    • skipper: Consolidate roadmap w/ sails core
    • skipper: Consolidate contributor info
    • ๐Ÿšš skipper: Remove old logger in favor of consistently using 'debug'
    • ๐Ÿ“š skipper: Documentation
    • skipper: Conslidate into lib/ (part 1)
    • ๐Ÿšš skipper: Move index.js to lib/skipper.js
    • ๐Ÿšš skipper: Remove standalone/ alias
    • โœ… skipper: Latest SVR for skipper-adapter-tests
    • Backport https://github.com/lodash/lodash/commit/d8e069cc3410082e44eb18fcf8e7f3d08ebe1d4a
    • Flaverr: Fix bad error message
    • Parley: Shorten error message and pull out exec countdown secs into a constant.
    • โš  Parley: Tweak verbiage in warning msg one more time for further clarity.
    • โฑ Parley: Implement .timeout() and initial pass at .retry().
    • Parley: Set up more of .retry(), and add relevant TODO about what needs to happen now
    • Parley: Avoid 1MM ops/sec perf. loss by using .slice() alternative
    • ๐ŸŽ Parley: 200k ops/sec to general-case performance (and take care of annoying arguments keyword usage)
    • Parley: Implement IIFE but prepare for about-face since it takes away 1MM ops/sec
    • Parley: Regain 1MM ops/sec by moving IIFE out
    • ๐Ÿ“„ Parley: Cleanup, deduplication, and docs
    • Parley: +350K ops/sec
    • Parley: Change where bindUserlandAfterExecLC lives, for consistency
    • โšก๏ธ Parley: Rearrange for clarity, and update comments
    • โšก๏ธ Parley: Boilerplate update
    • ๐Ÿ‘ Parley: Setup first pass at async function support for userland afterExec LCs
    • ๐Ÿšš Parley: Remove usage assertion now that AsyncFunctions are supported
    • Parley: Added _hasStartedButNotFinishedAfterExecLC
    • Parley: Eliminate todos now that "one tick" flag takes afterexec LCs into account
    • Parley: Rough .retry() impl
    • Parley: Rip out retry from parley (realized it needs to live a level higher up in the stack)
    • ๐Ÿšš Parley: Remove two now-unused reserved keys from blacklist
    • โšก๏ธ Parley: Update examples
    • ๐Ÿš€ Parley: Add 'thenable' option for backwards-compatibility for older node releases (specifically important for .tolerate())
    • Parley: Fix backwards conditional
    • โช Parley: Revert "3.6.0"
    • Parley: Prevent throwing when no afterExec LC handler is specified
    • Parley: Don't throw a special error when handler provided to .tolerate() throws -- instead just allow it through unscathed.
    • โฌ†๏ธ Machine (runner for actions2, helpers, & shell scripts): Upgrade eslint
    • Machine: Obey new 'instructionTimeout' meta key
    • ๐Ÿ“‡ Machine: Reverse 8af993b01c1480aca45d7e7e2952cfd8d288a293 because all metadata isn't known at build time. (This will need more shuffling to accomplish)
    • โšก๏ธ Machine: Update boilerplate and bump min parley version.
    • Machine: Finish "Too many retries" error, and make note of situation with [Circular]
    • ๐Ÿšš Machine: Disable old tests, remove now-irrelevant future note
    • 0๏ธโƒฃ Machine: More cleanup, after verifying it works w/ defaultArgins and defaultMeta.
    • ๐Ÿ— Machine: Add note explaining why we don't pass in a build-time omen (or any omen) to .retry()'s extra .build() call.
    • โฑ Machine: Respect original invocation timeout
    • ๐Ÿšš Machine: Remove strict idempotency check.
    • ๐Ÿ‘ Machine: Eliminate support for variadic usage (because it's potentially confusing/imprecise -- negotation rules and retry series can BOTH be arrays)
    • Machine: Fix an oversight/edge case: an error message would have itself thrown an error.
    • Machine: Fix typo in .retry().
    • Machine: Setup for implementationSniffingTacticgls
    • ๐Ÿ— Machine: Catch attempt to use AsyncFunction in sync:true method at build time instead of waiting until exec-time.
    • Machine: Cursory setup of exits arg detection
    • Machine: Don't freak out about new customization option
    • Machine: Validate implementationSniffingTactic
    • Machine: Eliminate old comments, and one trivial optimization
    • Machine: Tweak comments and add clarification
    • Machine: Handle implementationType: 'classical' for 'exits'-less functions.
    • โœ… Machine: Skip 'await' tests for Node versions that dont support it.
    • Machine: Avoid returning from .catch() (this is not tied to any known issue, just cleanup)
    • Machine: Fix to properly simulate chaining: promise = promise.catch()
    • โš  Machine: Swap around 71eb66400f73a52baf0a78a38c1b8d44061737ac so that .then() gets handled first. Otherwise, you get either an unhandled promise rejection OR a called-it-twice warning.
    • whelk (shell scripts): Add note about customizations
    • ๐Ÿ‘ whelk (shell scripts): Add support for new customize option
    • whelk (shell scripts): Ensure at least [email protected]
    • Defined a req.path for socket requests.
    • Ensured req.path is good and stringy.

    ๐Ÿ“š Documentation:

    • โž• Add documentation for new model methods in Sails 1.1.0.
    • โšก๏ธ Sails 1.1.0 updates for .transaction() and .leaseConnection() -- also some follow up from b126f7b66a1c46be0208c2a81235e0584cc50225 for .stream()
    • โšก๏ธ Update examples for .stream() in advance of sails 1.1.0
    • โšก๏ธ Update Blueprint API docs for clarity
    • โšก๏ธ Update Platzi course links
    • โšก๏ธ Update adapterList.md (Ronny Medina)
    • โšก๏ธ Update policies.md (Alex Schwarz)
    • โšก๏ธ Update waterline.md
    • โšก๏ธ Update dependencies.md
    • Normalize capittalization
    • โšก๏ธ Update upgrading.md
    • โšก๏ธ Update routes.md
    • โž• Add link and clarify a bit further
    • โšก๏ธ Update res.status.md
    • โšก๏ธ Updated link (Simon)
    • ๐Ÿ›  Fix event documentation for lower (Xavier Spriet)
    • โž• Add note to upgrading guide re: i18n (see https://gitter.im/balderdashy/sails?at=5ac46d9cc574b1aa3e6533f6)
    • ๐Ÿ›  Fix commented-out code block
    • ๐Ÿ›  Fix getLocale link
    • โšก๏ธ Update locales.md
    • โšก๏ธ Update req.setLocale.md
    • ๐Ÿ›  Fix broken links in old 0.12 upgrading guide
    • ๐Ÿ›  Fix RESTful route examples for add and remove
    • โšก๏ธ Update content for req.acceptsLanguages()
    • โšก๏ธ Update content for req.acceptsCharsets(), and rename both files
    • Clean up req.accepts() reference page.
    • โšก๏ธ Update upgrading guide
    • โšก๏ธ Update logging.md
    • ๐Ÿ›  Fixed typo in routing actions description (Scott Reed)
    • ๐Ÿ›  Fix action name in docs (Ian Harris)
    • โšก๏ธ Update views.md
    • ๐Ÿ›  Fixed broken links to req.wantsJSON & req.allParams() (Vladyslav Piskunov)
    • โšก๏ธ Update Lifecyclecallbacks.md
    • โšก๏ธ Update cors.md link from cors.js to security.js (Michael Frederick)
    • โšก๏ธ Update cors.md - Adjusting links and updating examples (Michael Frederick)
    • โœ‚ Remove link to guide that doesn't exist anymore (fixes #1000)
    • โšก๏ธ Update faq.md
    • ๐Ÿ›  Fix some links, and create a page in tutorials linking to the course/demo app
    • Create req.hostname (Mark Strelecky)
    • โšก๏ธ Update req.host.md and change to deprecated (Mark Strelecky)
    • โšก๏ธ Update req.isSocket.md (Mark Strelecky)
    • โšก๏ธ Update req.wantsJSON.md (Mark Strelecky)
    • โšก๏ธ Update req.hostname
    • ๐Ÿ›  Fix docmeta tag
    • โšก๏ธ Update req.isSocket.md
    • โšก๏ธ Update req.wantsJSON.md
    • โšก๏ธ Update res.send.md (Mark Strelecky)
    • โž• Add res headers to examples
    • โž• Add fragments to cors links. Update another link to use /documentation (Freddy)
    • โšก๏ธ Update low-level-mysql-access.md
    • โšก๏ธ Update mongo.md
    • โšก๏ธ Update cors.md since there's no config/cors.js in 1.0 and the settings are in config/security.js (pavan)
    • ๐Ÿ›  Fix broken link (Scott Reed)
    • โž• Add the ) and } forgotten, to close the queries in the right way. (Mario Colque)
    • โž• Add hooks + a few tweaks
    • โšก๏ธ Update hooks.md
    • โšก๏ธ Update services.md
    • โšก๏ธ Update sendNativeQuery.md
    • โšก๏ธ Update findOrCreate.md
    • Clarify sentence, and add link
    • โž• Add file extension
    • โšก๏ธ Update req.host.md
    • โšก๏ธ Update ExampleHelper.md (Okoli Lemuel)
    • โšก๏ธ Update standalone-usage.md to 1.0 (ultimate-tester)
    • ๐ŸŒฒ Correct syntax typo for log messages (Alex Schwarz)
    • โšก๏ธ Update Validations.md (Okoli Lemuel)
    • Take first pass at e-commerce page
    • โœ‚ Remove irrelevant example
    • โž• Add note re: customToJSON does not support async functions (Scott)
    • โž• Add sails-hook-organics to the Hooks page (Pika)
    • ๐Ÿ›  Fix missing comma (Scott Reed)
    • Waterline initialize function must be async (Scott Reed)
    • โšก๏ธ Update sails.sockets.md (AYEDOUN Fiacre)
    • ๐Ÿ›  Fix custom model methods example (Tim Wisniewski)
    • โž• Add quotes to key in headers example re: dictionary keys (Tom Saleeba)
    • ๐Ÿ›  Fix typo in ActionsAndControllers.md (s-slavchev)
    • ๐Ÿ›  Fix typo in URL link (Daniel Harvey)
    • โšก๏ธ Update GeneratingActions.md to fix typo manging => managing (Julien Le Coupanec)
    • โšก๏ธ Update extending-sails.md to remove remove broken link (Julien Le Coupanec)
    • โšก๏ธ Update Testing.md to add dd Semaphore (Julien Le Coupanec)
    • โšก๏ธ Update To1.0.md (floriancummings)
    • โž• Add information about optional param. (Bernardo Gomes)
    • โšก๏ธ Update sort.md to fix code example typo (Eli Peters)
    • โšก๏ธ Update standalone-usage.md
    • โž• Add back and correct link
    • โšก๏ธ Update Models.md
    • โšก๏ธ Update To1.0.md
    • Edit Sails versioning for consistency (v1.0 and JavaScript) (Dennis Cheung)
    • โšก๏ธ Update globals.md to fix broken link for Services and Models (Minh Tri Nguyen)
    • โšก๏ธ Update res.redirect.md (Julien Le Coupanec)
    • โšก๏ธ Update res.status.md (Julien Le Coupanec)
    • โž• Add link to info about negotiating errrors
    • โšก๏ธ Update errors.md
    • Simplify examples.
    • ๐Ÿ›  Fix typo in .update() usage example.
    • โšก๏ธ Update sails.config.bootstrap.md
    • โšก๏ธ Update decrypt.md
    • โšก๏ธ Update attributes.md

    Organics:

    • ๐Ÿ‘Œ Improve security
    • โž• Add note for future about new exit from .saveBillingInfo()
    • โšก๏ธ Update package.json (Pika)
    • ๐Ÿ’… Use encodeURIComponent instead of encoreURI for url-friendly style.
    • Replace all special characters and skip encoding entirely. (Scott Gress)
    • ๐Ÿš‘ Swap open with opn to remove critical error on audit (Peter Barrett)
    • ๐Ÿšš Pin opn version number and move back to json5 (Peter Barrett)
    • โœ‚ Remove unused dep

    Adapters:

    • ๐Ÿ‘€ Check exits against raw instead of built machine as it seems as though the built machine doesnโ€™t expose the exits (Yuki von Kanel)
    • โšก๏ธ Update debug to fix ReDoS vulnerability (Alec Fenichel)
    • โœ‚ Remove auto setting JSON to LONGTEXT (Betanu701)
    • โšก๏ธ sails-disk: Update eslint
    • ๐Ÿ‘• sails-disk: Don't test node 0.10 and 0.12 because eslint doesn't even run on them anymore
    • ๐Ÿ“Œ MySQL: Pin debug version (Alec Fenichel)
    • MySQL: machine@15 adjustment
    • MySQL: Follow up to d41eb10e1804ccc884cf6e290fd5a340f8f12c0b
    • โœ… MySQL: Test on Node 10
    • ๐Ÿ‘• MySQL: eslint for tests
    • MySQL: Use the right port
    • โš  MySQL: Get rid of ajv keywords dev install warning and clean up machine SVR
    • โšก๏ธ MySQL: Update skipped test
    • ๐Ÿ‘• MySQL: Rename test files for easier quick-switching and add back linting for tests
    • โšก๏ธ MySQL: Move the files (still need to update require paths-- see next commit)
    • MySQL: Fix require paths (follow up to d9db8cda4fcd9ffb37b738402d855991991c892b)
    • โšก๏ธ MySQL: Update travis.yml and remove Dockerfile
    • MySQL: Normalize the license stuff
    • MySQL: Fix those badge things
    • PostgreSQL: Correctly raises error when you have bad model attributes (Tony Buser)
    • PostgreSQL: Allow for other auto increment scenarios other than numeric (Andrew Greenstreet)
    • ๐Ÿ‘• PostgreSQL: Single quotes (eslint) and a couple of other minor adjustments to comments and varnames
    • ๐Ÿ‘• PostgreSQL: Improve linter
    • PostgreSQL: Change it's => its
    • โœ… PostgreSQL: Fix failing test (https://travis-ci.org/balderdashy/sails-postgresql/jobs/368925613). This is because https://github.com/balderdashy/sails-postgresql/pull/278 actually breaks normal usage (because logical types are not made accessible to the adapter in the per-table DDL spec passed into the define() adapter method- instead, another approach must be used)
    • ๐Ÿš€ PostgreSQL: Update node versions tested to include all LTS releases
    • PostgreSQL: Improve error message
    • โœ… PostgreSQL: Adjust tests to stop using 'integer' columnType for auto-incrementing pk
    • PostgreSQL: Close https://github.com/balderdashy/sails-postgresql/pull/279
    • PostgreSQL: Include additional number type property to model. This will cause the registerDatastore method to throw an error due to autoMigrations being undefined for anotherGood property on the model. (Andrew Salib)
    • PostgreSQL: Check that property autoMigrations exists before checking its child property columnType resolving undefined errors (Andrew Salib)
    • โฌ†๏ธ MongoDB: Upgrade 'machine' dependency to 15.0.0 (Yuki von Kanel)
    • MongoDB: Use .switch(...) where needed (Yuki von Kanel)
    • ๐Ÿ‘€ MongoDB: Allow tests to run on PRs (hopefully) - see https://docs.travis-ci.com/user/environment-variables/
    • MongoDB: Bump devdep SVRs

    Tools:

    • sails-hook-dev: Recommend simple solution to setting up staging environment in readme.md

    Raw diffs:

    Framework:
    ๐Ÿ“š Documentation:
    Organics:
    Adapters:
    Tools: