Commit Graph

113 Commits

Author SHA1 Message Date
Michał Gołębiowski-Owczarek
7cdd837423
Docs: Update remaining HTTP URLs to HTTPS
Update a few remaining HTTP URLs to HTTPS. The only ones left are XMLNS-like
URLs or ones to localhost - those need to stay as-is.

Closes gh-5479
2024-04-25 00:22:36 +02:00
Michał Gołębiowski-Owczarek
93ca49e6d1
Core: Simplify code post browser support reduction
Summary of the changes:
* Core: Simplify code post browser support reduction
* Tests: Remove legacy jQuery.cache & oldIE leftovers
* Tests: Reformat JavaScript in delegatetest.html
* Docs: "jQuery Foundation Projects" -> "jQuery Projects"
* Tests: Drop an unused localfile.html file (modern browsers don't support
  the `file:` protocol this way, there's no point in keeping the file around)
* Effects: Remove a redundant `!fn` check (`fn || !fn && easing` is equivalent
  to `fn || easing`; simplify the code)
* CSS: Explain the fallback to direct object access in curCSS better
* Tests: Deduplicate `jQuery.parseHTML` test titles
* Dimensions: Add a test for fractional values
* Tests: Fix a buggy WebKit regex

Closes gh-5296
2023-09-20 00:54:40 +02:00
Michał Gołębiowski-Owczarek
46f6e3da79
Core: Move the factory to separate exports
Since versions 1.11.0/2.1.0, jQuery has used a module wrapper with one strange
addition - in CommonJS environments, if a global `window` with a `document` was
not present, jQuery exported a factory accepting a `window` implementation and
returning jQuery.

This approach created a number of problems:
1. Properly typing jQuery would be a nightmare as the exported value depends on
   the environment. In practice, typing definitions ignored the factory case.
2. Since we now use named exports for the jQuery module version, it felt weird
   to have `jQuery` and `$` pointing to the factory instead of real jQuery.

Instead, for jQuery 4.0 we leverage the just added `exports` field in
`package.json` to expose completely separate factory entry points: one for the
full build, one for the slim one.

Exports definitions for `./factory` & `./factory-slim` are simpler than for `.`
and `./slim` - this is because it's a new entry point, we only expose a named
export and so there's no issue with just pointing Node.js to the CommonJS
version (we cannot use the module version for `import` from Node.js to avoid
double package hazard). The factory entry points are also not meant for the Web
browser which always has a proper `window` - and they'd be unfit for an
inclusion in a regular script tag anyway. Because of that, we also don't
generate minified versions of these entry points.

The factory files are not pushed to the CDN since they are mostly aimed
at Node.js.

Closes gh-5293
2023-09-19 18:58:24 +02:00
Timmy Willison
2bdecf8b7b
Build: migrate most grunt tasks off of grunt
Updated tasks include:

- lint
- npmcopy
- build, minify, and process for distribution.
- new custom build command using yargs
- compare size of minified/gzip built files
- pretest scripts, including qunit-fixture, babel transpilation, and npmcopy
- node smoke tests
- promises aplus tests
- new watch task using `rollup.watch` directly

Also:

- upgraded husky and added the new lint command
- updated lint config to use new "flat" config format. See https://eslint.org/docs/latest/use/configure/configuration-files-new
- Temporarily disabled one lint rule until flat config is supported by eslint-plugin-import. See https://github.com/import-js/eslint-plugin-import/issues/2556
- committed package-lock.json
- updated all test scripts to use the new build
- added an express test server that uses middleware-mockserver (this can be used to run tests without karma)
- build-all-variants is now build:all

Close gh-5318
2023-09-18 12:39:00 -04:00
Michał Gołębiowski-Owczarek
8be4c0e4f8
Build: Add exports to package.json, export slim & esm builds
Summary of the changes:
* define the `exports` field in `package.json`; `jQuery` & `$` are also
  exported as named exports in ESM builds now
* declare `"type": "module"` globally except for the `build` folder
* add the `--esm` option to `grunt custom`, generating jQuery as an ECMAScript
  module into the `dist-module` folder
* expand `node_smoke_tests` to test the slim & ESM builds and their various
  combinations; also, test both jQuery loaded via a path to the file as well
  as from module specifiers that should be parsed via the `exports` feature
* add details about ESM usage to the release package README
* run `compare_size` on all built minified files; don't run it anymore on
  unminified files where they don't provide lots of value
* remove the remove_map_comment task; SWC doesn't insert the
`//# sourceMappingURL=` pragma by default so there's nothing to strip

Fixes gh-4592
Closes gh-5255
2023-07-10 19:14:08 +02:00
Timmy Willison
67cb1af774
Docs: remove stale gitter badge from readme
Close gh-5273
2023-06-23 09:43:26 -04:00
Michał Gołębiowski-Owczarek
4c1171f2ed
Selector: Re-introduce selector-native.js
Re-introduce the `selector-native` similar to the one on the `3.x-stable`
branch. One difference is since the `main` branch inlined Sizzle, some
selector utils can be shared between the main `selector` module and
`selector-native`.

The main `selector` module can be disabled in favor of `selector-native`
via:

    grunt custom:-selector

Other changes:
* Tests: Fix Safari detection - Chrome Headless has a different user
  agent than Safari and a browser check in selector tests didn't take
  that into account.
* Tests: Run selector-native tests in `npm test`
* Selector: Fix querying on document fragments

Ref gh-4395
Closes gh-5085
2022-11-21 23:23:39 +01:00
Timmy Willison
bcd9c2bc3d
Docs: Remove stale badge from README
Close gh-5148
2022-10-24 11:00:25 -04:00
Michał Gołębiowski-Owczarek
5d5ea01511
Docs: Replace #NUMBER Trac issue references with trac-NUMBER
The GitHub UI treats `#NUMBER` as referring to its own issues which is confusing
when in jQuery source it's usually referring to the old deprecated Trac instance
at https://bugs.jquery.com. This change replaces all such Trac references with
`trac-NUMBER`.

A few of the references came with the Sizzle integration and referred to the
Sizzle GitHub bug tracker. Those have been replaced with full links instead.

A new entry describing issue reference conventions has been added to README.

Closes gh-4993
2022-01-04 16:27:18 +01:00
fecore1
175db73ec7
Docs: update irc to Libera and fix LAMP dead link 2021-09-05 20:23:59 +01:00
Michał Gołębiowski-Owczarek
8ae477a432
Build: Rename master to main across the repository
The default branch was updated, this updates the remaining occurrences in code
& comments.

Closes gh-4838
2021-02-05 22:00:56 +01:00
Michał Gołębiowski-Owczarek
3edfa1bcdc
Docs: Remove a mention of the event/alias.js module from README
The file contents now lie in deprecated/event.js so the README reference
is no longer correct.

Ref gh-4572
Closes gh-4599
2020-01-27 19:22:05 +01:00
Michał Gołębiowski-Owczarek
23d53928f3
Ajax: Deprecate AJAX event aliases, inline event/alias into deprecated
A new `src/deprecated` directory makes it possible to exclude some deprecated
APIs from a custom build when their respective "parent" module is excluded
without keeping that module outside of the `src/deprecated` directory or
the `src/deprecated.js` file.

Closes gh-4572
2020-01-21 14:12:35 +01:00
Michał Gołębiowski-Owczarek
9b9ed469b4
Build: Create a grunt custom:slim alias for the Slim build (#4578)
Closes gh-4578
2020-01-07 16:42:49 +01:00
Timmy Willison
f1c16de296
Docs: direct users to GitHub docs for cloning the repo
Ref gh-4556
Close gh-4571
2019-12-16 13:37:16 -05:00
Christian Oliff
5a3e0664d2 Docs: Change OS X to macOS in README
macOS has been around for long enough to update the naming here.

Closes gh-4552
2019-12-03 12:35:48 +01:00
Christian Oliff
e0022f2314 Docs: Convert link to Homebrew from HTTP to HTTPS
`http://brew.sh/` -> `https://brew.sh/`

Closes gh-4501
2019-10-07 08:45:40 +02:00
Michał Gołębiowski-Owczarek
47835965bd Selector: Inline Sizzle into the selector module
This commit removes Sizzle from jQuery, inlining its code & removing obsolete
workarounds where applicable.

The selector-native module has been removed. Further work on the selector
module may decrease the size enough that it will no longer be necessary. If
it turns out it's still useful, we'll reinstate it but the code will look
different anyway as we'll want to share as much code as possible with
the existing selector module.

The Sizzle AUTHORS.txt file has been merged with the jQuery one - people are
sorted by their first contributions to either of the two repositories.

The commit reduces the gzipped jQuery size by 1460 bytes compared to master.

Closes gh-4395
2019-07-29 21:19:21 +02:00
Michał Gołębiowski-Owczarek
8a74137693
Event: Stop shimming focusin & focusout events
Latest versions of all browsers now implement focusin & focusout natively
and they all converged on a common event order so it doesn't make much sense
for us to normalize it to a different order anymore.

Note that it means we no longer guarantee that focusin fires before focus
and focusout before blur.

Fixes gh-4300
Closes gh-4362
2019-04-29 21:13:36 +02:00
Timmy Willison
9b9fca45f3
Update README.md 2019-04-02 12:31:43 -04:00
Timmy Willison
7869f83ddd
Docs: add gitter badge to README.md
Close gh-4138
2018-07-27 13:00:28 -04:00
Kris Borchers
45f0858825 README: Add FOSSA license scan status badge 2018-05-15 15:41:03 -04:00
Timo Tijhof
ecd8ddea33
Tests: Add support for running unit tests via grunt with karma
- Update QUnit to 1.23.1
- Remove unused dl#dl from test/index.html
- Remove unused map#imgmap from test/index.html
- Ensure all urls to data use baseURI
- Add the 'grunt karma:main' task
  - customContextFile & customDebugFile
- Add 'npm run jenkins' script

Close gh-3744
Fixes gh-1999
2017-12-18 12:27:38 -05:00
Dave Methvin
e5ffcb0838 Tests: Refactor testIframe() to make it DRYer and more consistent
Ref gh-3040
Closes gh-3049
2016-04-11 13:32:51 -04:00
Dave Methvin
08d73d7f9c Tests: Make iframe tests wait after checking isReady
Ref gh-3040
2016-04-11 13:29:11 -04:00
Bernhard M. Wiedemann
1de8346729 Docs: use https where possible
Close gh-2875
2016-01-27 10:52:43 -05:00
Timmy Willison
10c1254d15 Docs: remove compat references 2016-01-14 12:22:45 -05:00
Jon Dufresne
b0b280cd61 Docs: Updated links to https where they are supported.
Close gh-2746
2016-01-13 13:26:10 -05:00
Dave Methvin
c9935b6d2d Event: Separate trigger/simulate into its own module
Fixes gh-1864
Closes gh-2692

This also pulls the focusin/out special event into its own module, since that
depends on simulate(). NB: The ajax module triggers events pretty heavily.
2015-11-06 09:36:48 -05:00
Dave Methvin
67d7a2eefe CSS: Make show/hide/toggle methods a module
Unit test changes some uses of .show() and .hide() to .css( "display", ... ),
there was already an implicit assumption in several of the existing tests.

Fixes gh-2193
Close gh-2648
2015-10-18 12:30:00 -04:00
Gary Ye
03eaadb131 Tests:Docs: Fix various typos
* Changes "baar" to "bar" when used with "foo" in readme
  and comments of js files

* mousenter -> mouseenter

Thanks @garysye, @KimTaehee

Closes gh-2613
Closes gh-2601
2015-10-12 18:08:13 +03:00
Oleg Gaidarenko
3c92770867 Docs: remove redundant instruction from the readme
Thanks @elas7

Fixes gh-2359
2015-05-29 19:45:02 +03:00
Michał Gołębiowski
062b5267d0 Docs: Add info about Sizzle not being excludable on the compat branch
Most people just read the README that's displayed to them on GitHub which
is the one for the master branch. Let's include the info about Sizzle
not being excludable there.

Fixes gh-2184
2015-03-30 22:44:18 +02:00
Dave Methvin
b50e0f2c36 Docs: Fix README uppercase 2015-01-09 16:39:41 -05:00
Dave Methvin
a3779bc325 Docs: Clarify custom build instructions
Closes gh-1854
2015-01-06 22:15:53 -05:00
Dave Methvin
d30c482910 Misc: Mac OS is now OS X, thanks @xfq
Closes gh-1970
2015-01-06 21:04:25 -05:00
Michał Gołębiowski
b410b15e8d README: update the Homebrew site address
Thanks @xfq

Closes gh-1971
2015-01-03 19:42:37 +01:00
Oleg Gaidarenko
31b63fc236 README: various text fixes
Thank you @essamjoubori, @bcbcb, @namlede

Closes gh-1926
Closes gh-1927
Closes gh-1928
2014-12-15 16:07:10 +03:00
Dave Methvin
cfe2eae38d README: Add selector-native.js link. Thanks @randsonjs!
Closes gh-1715
2014-12-03 13:59:41 -05:00
Oleg Gaidarenko
9d6beac395 Docs: correct grunt command in README.md
Fixes gh-1850
2014-11-10 13:20:06 +03:00
Michał Gołębiowski
c309b95756 Misc: Adjust comments & docs to dropping IE<8 in jQuery Compat 2014-11-04 16:16:36 +01:00
Timmy Willison
758fd6cea9 Docs: 1.x-master branch -> compat branch; 2.x branch -> master branch 2014-11-03 12:34:45 -05:00
Michał Gołębiowski
1d75273101 README: Update the description of the deprecated module
.andSelf is now gone.
2014-10-30 14:16:32 +01:00
Dave Methvin
edfc94df92 Readme: Fix minor style issues. Thanks @MightyBranch! 2014-10-06 09:25:27 -04:00
Oleg Gaidarenko
2e9c1ead76 README: Improve build instructions
Thanks @NickStefan

Closes gh-1663
2014-09-26 20:51:48 +04:00
upisfree
df62159296 Readme: Fix punctuation in tile
Closes gh-1607
2014-07-12 22:20:03 +04:00
Dave Methvin
44247b1cf2 Readme: Fix subsection titles and grammar, thanks @robgraeber
Fixes gh-1540
2014-03-16 10:19:51 -04:00
Leonardo Balter
594687abdc Readme: updating QUnit information
updates QUnit reference site and method naming.

Closes gh-1493
2014-03-13 22:36:39 -04:00
Michał Gołębiowski
0fcb0f6826 Docs: Change raises to throws in README test assertions 2014-02-05 15:54:23 +01:00
Timmy Willison
4d19306c7f README: Add jQuery environment notes 2014-01-06 11:49:58 -08:00