├── .github
    └── workflows
    │   └── sansec-ecomscan.yml
├── .gitignore
├── CHANGELOG.md
├── CODEOWNERS
├── LICENSE
├── Magento_AdminNotification
    ├── layout
    │   └── default.xml
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_AdvancedCheckout
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Analytics
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_AsynchronousOperations
    └── web
    │   ├── css
    │       └── source
    │       │   └── _extend.less
    │   └── template
    │       └── grid
    │           └── listing.html
├── Magento_Backend
    ├── layout
    │   └── admin_login.xml
    └── web
    │   └── css
    │       └── source
    │           ├── _extend.less
    │           └── extend
    │               ├── _footer.less
    │               ├── _header.less
    │               ├── _main.less
    │               ├── _menu.less
    │               ├── header
    │                   ├── _actions-group.less
    │                   ├── _headings-group.less
    │                   └── actions-group
    │                   │   ├── _notifications.less
    │                   │   ├── _search.less
    │                   │   └── _user.less
    │               ├── main
    │                   ├── _actions-bar.less
    │                   ├── _collapsible-blocks.less
    │                   ├── _page-nav.less
    │                   ├── _store-scope.less
    │                   └── actions-bar
    │                   │   └── _store-switcher.less
    │               └── pages
    │                   ├── _cache-management.less
    │                   ├── _dashboard.less
    │                   └── _login.less
├── Magento_Backup
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Bundle
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_CardinalCommerce
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Catalog
    └── web
    │   └── css
    │       └── source
    │           ├── _extend.less
    │           └── extend
    │               └── _attribute.less
├── Magento_CatalogRule
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Config
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_ConfigurableProduct
    └── web
    │   └── css
    │       └── source
    │           ├── _extend.less
    │           └── extend
    │               ├── components
    │                   ├── _currency-addon.less
    │                   ├── _navigation-bar.less
    │                   └── _steps-wizard.less
    │               └── steps
    │                   ├── _attribute-values.less
    │                   └── _bulk-images.less
├── Magento_CurrencySymbol
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Customer
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Directory
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Email
    ├── layout
    │   └── adminhtml_email_template_preview.xml
    └── web
    │   └── css
    │       ├── email-template-preview.css
    │       └── source
    │           └── _extend.less
├── Magento_EncryptionKey
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_GoogleGtag
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_GroupedProduct
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_ImportExport
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Indexer
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Integration
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_InventorySalesAdminUi
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Marketplace
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_MediaGalleryUi
    └── web
    │   ├── css
    │       └── source
    │       │   └── _extend.less
    │   └── images
    │       └── sort.svg
├── Magento_MediaStorage
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Newsletter
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_OpenSearch
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_PageBuilder
    └── web
    │   ├── css
    │       ├── images
    │       │   ├── cms-empty-row.svg
    │       │   ├── content-type
    │       │   │   ├── banner
    │       │   │   │   └── appearance
    │       │   │   │   │   ├── collage-center.svg
    │       │   │   │   │   ├── collage-left.svg
    │       │   │   │   │   ├── collage-right.svg
    │       │   │   │   │   └── poster.svg
    │       │   │   ├── buttons
    │       │   │   │   └── appearance
    │       │   │   │   │   ├── inline.svg
    │       │   │   │   │   └── stacked.svg
    │       │   │   ├── column
    │       │   │   │   └── appearance
    │       │   │   │   │   ├── bottom.svg
    │       │   │   │   │   ├── full.svg
    │       │   │   │   │   ├── middle.svg
    │       │   │   │   │   └── top.svg
    │       │   │   ├── image
    │       │   │   │   └── appearance
    │       │   │   │   │   └── full.svg
    │       │   │   ├── products
    │       │   │   │   └── appearance
    │       │   │   │   │   ├── carousel.svg
    │       │   │   │   │   └── grid.svg
    │       │   │   ├── row
    │       │   │   │   └── appearance
    │       │   │   │   │   ├── contained.svg
    │       │   │   │   │   ├── full-bleed.svg
    │       │   │   │   │   └── full-width.svg
    │       │   │   └── slide
    │       │   │   │   └── appearance
    │       │   │   │       ├── collage-center.svg
    │       │   │   │       ├── collage-left.svg
    │       │   │   │       ├── collage-right.svg
    │       │   │   │       └── poster.svg
    │       │   ├── form
    │       │   │   └── element
    │       │   │   │   └── visual-select
    │       │   │   │       ├── alignment
    │       │   │   │           ├── center.svg
    │       │   │   │           ├── left.svg
    │       │   │   │           └── right.svg
    │       │   │   │       ├── background-size
    │       │   │   │           ├── auto.svg
    │       │   │   │           ├── contain.svg
    │       │   │   │           └── cover.svg
    │       │   │   │       ├── background-type
    │       │   │   │           ├── image.svg
    │       │   │   │           └── video.svg
    │       │   │   │       └── vertical-align
    │       │   │   │           ├── bottom.svg
    │       │   │   │           ├── center.svg
    │       │   │   │           └── top.svg
    │       │   └── switcher
    │       │   │   ├── switcher-desktop.svg
    │       │   │   └── switcher-mobile.svg
    │       └── source
    │       │   ├── _extend.less
    │       │   └── extend
    │       │       ├── _buttons.less
    │       │       ├── _config.less
    │       │       ├── _drag-drop.less
    │       │       ├── _icons.less
    │       │       ├── _page-builder.less
    │       │       ├── _panel.less
    │       │       ├── _system.less
    │       │       ├── _template-manager.less
    │       │       ├── _toolbar.less
    │       │       ├── _var.less
    │       │       ├── content-type
    │       │           ├── _import.less
    │       │           ├── _preview.less
    │       │           ├── block
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── buttons
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── column-group
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── column-line
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── column
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── divider
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── html
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── image
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── products
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── row
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── slider
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           ├── text
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │           └── video
    │       │           │   ├── _default.less
    │       │           │   └── _import.less
    │       │       └── form
    │       │           ├── _import.less
    │       │           └── element
    │       │               ├── _import.less
    │       │               ├── _margins-and-padding.less
    │       │               ├── _visual-select.less
    │       │               └── uploader
    │       │                   └── preview
    │       │                       └── _image.less
    │   └── fonts
    │       └── pagebuilder-icons
    │           ├── pagebuilder-icons.eot
    │           ├── pagebuilder-icons.svg
    │           ├── pagebuilder-icons.ttf
    │           ├── pagebuilder-icons.woff
    │           ├── pagebuilder-icons.woff2
    │           └── selection.json
├── Magento_Paypal
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_ProductAlert
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_ProductVideo
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_ReCaptchaAdminUi
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_ReleaseNotification
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Review
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Sales
    └── web
    │   └── css
    │       └── source
    │           ├── _extend.less
    │           └── extend
    │               ├── _edit-order.less
    │               ├── _invoice.less
    │               ├── _order.less
    │               └── order
    │                   ├── _address.less
    │                   ├── _info.less
    │                   ├── _items.less
    │                   ├── _order-account.less
    │                   ├── _order-comments.less
    │                   └── _sidebar.less
├── Magento_SalesRule
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Search
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Sitemap
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Swatches
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Tax
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_Ui
    └── web
    │   └── css
    │       └── source
    │           ├── _extend.less
    │           └── extend
    │               ├── _data-grid.less
    │               ├── _modals.less
    │               └── data-grid
    │                   ├── _data-grid-header.less
    │                   ├── _data-grid-static.less
    │                   └── data-grid-header
    │                       ├── _data-grid-action-bookmarks.less
    │                       ├── _data-grid-action-columns.less
    │                       ├── _data-grid-action-export.less
    │                       ├── _data-grid-filters.less
    │                       ├── _data-grid-pager.less
    │                       └── _data-grid-sticky-header.less
├── Magento_UrlRewrite
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── Magento_User
    └── web
    │   └── css
    │       └── source
    │           └── _extend.less
├── README.md
├── composer.json
├── docs
    └── m137-cover.png
├── i18n
    └── en_US.csv
├── registration.php
├── theme.xml
└── web
    ├── css
        ├── extend.less
        └── source
        │   ├── _expand.less
        │   ├── _extend.less
        │   ├── _module.less
        │   ├── _theme.less
        │   ├── expand
        │       ├── _actions.less
        │       ├── _components.less
        │       ├── _forms.less
        │       ├── _modules.less
        │       ├── _tables.less
        │       ├── _variables.less
        │       ├── components
        │       │   ├── _calendar-temp.less
        │       │   ├── _media-gallery.less
        │       │   └── _messages.less
        │       ├── forms
        │       │   ├── _fields.less
        │       │   └── fields
        │       │   │   └── _control-table.less
        │       ├── modules
        │       │   ├── _admin-notification.less
        │       │   └── _backend.less
        │       └── variables
        │       │   ├── _actions.less
        │       │   ├── _forms.less
        │       │   ├── _icons.less
        │       │   ├── _spinner.less
        │       │   └── _structure.less
        │   └── extend
        │       ├── _actions.less
        │       ├── _components.less
        │       ├── _extends.less
        │       ├── _forms.less
        │       ├── _grid.less
        │       ├── _modules.less
        │       ├── _reset.less
        │       ├── _structure.less
        │       ├── _styles-old.less
        │       ├── _tables.less
        │       ├── _tabs.less
        │       ├── _typography.less
        │       ├── _utilities.less
        │       ├── _variables.less
        │       ├── actions
        │           ├── _actions-dropdown.less
        │           ├── _actions-multiselect.less
        │           ├── _actions-select.less
        │           ├── _actions-split.less
        │           └── _actions-switcher.less
        │       ├── components
        │           ├── _calendar-temp.less
        │           ├── _color-picker.less
        │           ├── _file-uploader.less
        │           ├── _image-uploader.less
        │           ├── _media-gallery.less
        │           ├── _messages.less
        │           ├── _modals_extend.less
        │           ├── _popups.less
        │           ├── _rules-temp.less
        │           ├── _spinner.less
        │           └── _url_input.less
        │       ├── extjs
        │           ├── _ext-all.less
        │           └── _ytheme-magento.less
        │       ├── forms
        │           ├── _controls.less
        │           ├── _fields.less
        │           ├── _form-wysiwyg.less
        │           ├── _temp.less
        │           ├── controls
        │           │   └── _checkbox-radio.less
        │           └── fields
        │           │   ├── _control-collapsible.less
        │           │   ├── _control-table.less
        │           │   ├── _field-reset.less
        │           │   └── _field-tooltips.less
        │       ├── jquery
        │           ├── _colorpicker.less
        │           ├── _jquery-multiselect.less
        │           └── _jstree.less
        │       ├── modules
        │           └── _reports-report-statistics.less
        │       ├── mui
        │           └── styles
        │           │   ├── _abstract.less
        │           │   ├── _table.less
        │           │   └── _vars.less
        │       ├── utilities
        │           ├── _actions.less
        │           └── _spinner.less
        │       └── variables
        │           ├── _actions.less
        │           ├── _animations.less
        │           ├── _colors.less
        │           ├── _components.less
        │           ├── _data-grid.less
        │           ├── _dropdowns.less
        │           ├── _fields.less
        │           ├── _forms.less
        │           ├── _spinner.less
        │           ├── _structure.less
        │           └── _typography.less
    ├── fonts
        ├── admin-icons
        │   ├── admin-icons.eot
        │   ├── admin-icons.svg
        │   ├── admin-icons.ttf
        │   ├── admin-icons.woff
        │   ├── admin-icons.woff2
        │   └── selection.json
        └── inter
        │   ├── black
        │       ├── inter-900.woff
        │       └── inter-900.woff2
        │   ├── bold
        │       ├── inter-700.woff
        │       └── inter-700.woff2
        │   ├── extrabold
        │       ├── inter-800.woff
        │       └── inter-800.woff2
        │   ├── extralight
        │       ├── inter-200.woff
        │       └── inter-200.woff2
        │   ├── light
        │       ├── inter-300.woff
        │       └── inter-300.woff2
        │   ├── medium
        │       ├── inter-500.woff
        │       └── inter-500.woff2
        │   ├── regular
        │       ├── inter-400.woff
        │       └── inter-400.woff2
        │   ├── semibold
        │       ├── inter-600.woff
        │       └── inter-600.woff2
        │   └── thin
        │       ├── inter-100.woff
        │       └── inter-100.woff2
    ├── images
        ├── ajax-loader-small.gif
        ├── arrow-down.svg
        ├── arrow-up.svg
        ├── arrows-bg.svg
        ├── attributes.svg
        ├── check.svg
        ├── condition.svg
        ├── error.svg
        ├── folder-disabled.svg
        ├── folder-fill-disabled.svg
        ├── folder-fill-open-disabled.svg
        ├── folder-fill-open.svg
        ├── folder-fill.svg
        ├── folder-open-disabled.svg
        ├── folder-open.svg
        ├── folder.svg
        ├── loader-1.gif
        ├── loader-2.gif
        ├── logo.svg
        ├── mage-os-icon.svg
        ├── mage-os-logo.svg
        ├── process_spinner.gif
        ├── rating-bg.svg
        └── system-attributes.svg
    └── jquery
        └── colorpicker
            └── images
                ├── colorpicker_background.png
                ├── colorpicker_hex.png
                ├── colorpicker_hsb_b.png
                ├── colorpicker_hsb_h.png
                ├── colorpicker_hsb_s.png
                ├── colorpicker_indic.png
                ├── colorpicker_rgb_b.png
                ├── colorpicker_rgb_g.png
                ├── colorpicker_rgb_r.png
                └── colorpicker_submit.png
/.github/workflows/sansec-ecomscan.yml:
--------------------------------------------------------------------------------
 1 | name: Sansec eComscan Security Scan
 2 | 
 3 | on:
 4 |   push:
 5 |   pull_request_target:
 6 |   workflow_dispatch:
 7 | 
 8 | jobs:
 9 |   run-ecomscan:
10 |     # Skip if it's a push event on a PR (it can't access secrets)
11 |     if: github.event.pull_request == null || github.event_name != 'push'
12 |     name: Run Sansec eComscan
13 |     runs-on: ubuntu-latest
14 |     permissions:
15 |       contents: read
16 |       pull-requests: read
17 | 
18 |     steps:
19 |       - name: Checkout repository
20 |         uses: actions/checkout@v5
21 |         with:
22 |           ref: ${{ github.event.pull_request.head.sha }}
23 |           persist-credentials: false
24 | 
25 |       - name: Download eComscan
26 |         run: wget https://ecomscan.com/downloads/linux-amd64/ecomscan
27 | 
28 |       - name: Fix permissions
29 |         run: chmod +x ecomscan
30 | 
31 |       - name: Run eComscan
32 |         env:
33 |           ECOMSCAN_KEY: ${{ secrets.SANSEC_LICENSE_KEY }}
34 |         run: |
35 |           output=$(./ecomscan --no-auto-update --skip-database --deep --format=csv .)
36 |           if [ -n "$output" ]; then
37 |             echo "Security issues found:"
38 |             echo "$output"
39 |             exit 1
40 |           fi
41 | 
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @Mage-OS/distribution @artKozynets
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
 1 | MIT License
 2 | 
 3 | Copyright (c) 2024 Mage-OS Lab
 4 | 
 5 | Permission is hereby granted, free of charge, to any person obtaining a copy
 6 | of this software and associated documentation files (the "Software"), to deal
 7 | in the Software without restriction, including without limitation the rights
 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 | 
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 | 
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/Magento_AdminNotification/layout/default.xml:
--------------------------------------------------------------------------------
1 | 
2 |     
3 |         
4 | 
5 |         
6 |         
7 |     
8 | 
9 | 
--------------------------------------------------------------------------------
/Magento_AdvancedCheckout/web/css/source/_extend.less:
--------------------------------------------------------------------------------
 1 | //
 2 | //  Data grid checkbox cell
 3 | //  _____________________________________________
 4 | 
 5 | .order-search-items {
 6 |     .col-select {
 7 |         .data-grid-checkbox-cell-inner {
 8 |             padding-top: 0;
 9 |             padding-bottom: 0;
10 |         }
11 |     }
12 | }
13 | 
--------------------------------------------------------------------------------
/Magento_Analytics/web/css/source/_extend.less:
--------------------------------------------------------------------------------
 1 | //
 2 | //  Variables
 3 | //  _____________________________________________
 4 | 
 5 | @button-advanced-reports__background-color: @button-primary__background-color;
 6 | @button-advanced-reports__color: @button-primary__color;
 7 | 
 8 | @button-advanced-reports__hover__background-color: @button-primary__hover__background-color;
 9 | @button-advanced-reports__hover__border-color: @button-primary__hover__border-color;
10 | 
11 | //
12 | //  Extend
13 | //  _____________________________________________
14 | 
15 | #row_analytics_general_collection_time {
16 |     td.value {
17 |         &:extend(.abs-table-form-list-col-3 all);
18 |     }
19 | }
20 | 
21 | //
22 | //  Dashboard section
23 | //  _____________________________________________
24 | 
25 | .dashboard-advanced-reports-actions {
26 |     margin-right: 0;
27 | }
28 | 
29 | .dashboard-advanced-reports {
30 |     padding: 0;
31 |     border: 0;
32 | }
33 | 
34 | .action-advanced-reports {
35 |     &:extend(.abs-action-primary all);
36 |     text-shadow: none;
37 |     
38 |     &::after {
39 |         display: none;
40 |     }
41 | }
42 | 
43 | .dashboard-advanced-reports-content {
44 |     line-height: @line-height__l;
45 | }
46 | 
47 | //
48 | //  Configuration additional comment (system_config/edit/key/.../section/analytics/)
49 | //  _____________________________________________
50 | 
51 | .config-additional-comment {
52 |     border: 0;
53 |     margin: 0;
54 |     padding: @indent__m @indent__base;
55 |     background-color: @blue-90;
56 |     border-radius: @radius__s;
57 | }
58 | 
59 | .config-additional-comment-title {
60 |     margin-bottom: @indent__s;
61 | }
62 | 
63 | .config-additional-comment-content {
64 |     line-height: @line-height__base;
65 | }
66 | 
--------------------------------------------------------------------------------
/Magento_AsynchronousOperations/web/css/source/_extend.less:
--------------------------------------------------------------------------------
 1 | //
 2 | //  System > | Action Logs | Bulk Actions
 3 | //  _____________________________________________
 4 | 
 5 | .bulk-bulk-details  {
 6 |     .admin__fieldset {    
 7 |         > .admin__field {
 8 |             &:last-child {
 9 |                 margin-bottom: 0;
10 |             }
11 |         }
12 |     }
13 | }
14 | 
--------------------------------------------------------------------------------
/Magento_AsynchronousOperations/web/template/grid/listing.html:
--------------------------------------------------------------------------------
 1 | 
 2 |     
 3 |         
 4 |             
14 |             
15 |                 
16 |                     
17 |                 
18 |             
19 |         
20 |         
21 |             
22 |                 - 
23 |                     
24 |                         
25 |                     
26 |                 27 |
28 |             
39 |         
40 |     
41 |