Socket
Socket
Sign inDemoInstall

@moduk/frontend

Package Overview
Dependencies
28
Maintainers
2
Versions
124
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.1.25 to 1.1.26

dist/assets/svg/moduk-header-logo.svg

8

dist/lib/lib/utils.d.ts

@@ -8,2 +8,8 @@ import type { ConfigureOptions, Environment } from 'nunjucks';

/**
* Add MOD.UK extensions to an existing Nunjucks environment.
* @param nunjucksEnv Nunjucks environment
*/
export declare function addNunjucksExtensions(nunjucksEnv: Environment): void;
/**
* @deprecated Use addNunjucksExtensions instead.
* Add MOD.UK filters to an existing Nunjucks environment.

@@ -14,3 +20,3 @@ * @param nunjucksEnv Nunjucks environment

/**
* Create a Nunjucks environment with MOD.UK template paths and filters pre-configured.
* Create a Nunjucks environment pre-configured with MOD.UK template paths and internal extensions.
*

@@ -17,0 +23,0 @@ * @param templatePaths Additional template paths to add

@@ -23,4 +23,5 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.createNunjucksEnvironment = exports.addMODUKFilters = exports.getNunjucksPaths = void 0;
exports.createNunjucksEnvironment = exports.addMODUKFilters = exports.addNunjucksExtensions = exports.getNunjucksPaths = void 0;
var lodash_1 = require("lodash");
var node_fs_1 = require("node:fs");
var node_path_1 = require("node:path");

@@ -53,2 +54,39 @@ var nunjucks_1 = require("nunjucks");

/**
* Add MOD.UK svg loader to an existing Nunjucks environment.
* @param nunjucksEnv Nunjucks environment
* Based from https://github.com/11ty/eleventy/blob/v2.0.1/src/Engines/Nunjucks.js#L166-L228
* as https://mozilla.github.io/nunjucks/api.html#custom-tags
*/
function addSvgExtension(nunjucksEnv) {
var SvgLoader = /** @class */ (function () {
function SvgLoader() {
this.tags = ['MODUKincludeSVG'];
}
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
SvgLoader.prototype.parse = function (parser, nodes) {
var tok = parser.nextToken();
var args = parser.parseSignature(null, true);
parser.advanceAfterBlockEnd(tok.value);
return new nodes.CallExtension(this, 'run', args, null);
};
/* eslint-disable-next-line class-methods-use-this */
SvgLoader.prototype.run = function (_context, fileName) {
var svgPath = "".concat((0, node_path_1.join)(__dirname, '..', '/assets/svg', (0, node_path_1.basename)(fileName, '.svg')), ".svg");
return new nunjucks_1.runtime.SafeString((0, node_fs_1.readFileSync)(svgPath, 'utf8'));
};
return SvgLoader;
}());
nunjucksEnv.addExtension('MODUKincludeSVG', new SvgLoader());
}
/**
* Add MOD.UK extensions to an existing Nunjucks environment.
* @param nunjucksEnv Nunjucks environment
*/
function addNunjucksExtensions(nunjucksEnv) {
nunjucksEnv.addFilter('addCustomMODUKClass', addCustomMODUKClass);
addSvgExtension(nunjucksEnv);
}
exports.addNunjucksExtensions = addNunjucksExtensions;
/**
* @deprecated Use addNunjucksExtensions instead.
* Add MOD.UK filters to an existing Nunjucks environment.

@@ -58,7 +96,7 @@ * @param nunjucksEnv Nunjucks environment

function addMODUKFilters(nunjucksEnv) {
nunjucksEnv.addFilter('addCustomMODUKClass', addCustomMODUKClass);
addNunjucksExtensions(nunjucksEnv);
}
exports.addMODUKFilters = addMODUKFilters;
/**
* Create a Nunjucks environment with MOD.UK template paths and filters pre-configured.
* Create a Nunjucks environment pre-configured with MOD.UK template paths and internal extensions.
*

@@ -72,3 +110,3 @@ * @param templatePaths Additional template paths to add

var env = (0, nunjucks_1.configure)(__spreadArray(__spreadArray([], getNunjucksPaths(), true), templatePaths, true), options);
addMODUKFilters(env);
addNunjucksExtensions(env);
return env;

@@ -75,0 +113,0 @@ }

@@ -15,2 +15,12 @@ import { describe, expect, it } from 'vitest'

})
it('renders the MOOUK svg logo', () => {
const el = render(`
{%- from "moduk/components/header/macro.njk" import modukHeader -%}
{{ modukHeader({ }) }}
`)
expect(el.getElementsByTagName('svg')).toHaveLength(1)
})
})

47

package.json
{
"name": "@moduk/frontend",
"version": "1.1.25",
"version": "1.1.26",
"description": "The MOD.UK Frontend contains the code you need to start building a user interface for Ministry of Defence platforms and services.",

@@ -31,3 +31,4 @@ "main": "dist/lib/index.js",

"prebuild:assets": "shx rm -rf dist/assets",
"build:assets": "ts-node scripts/copy-govuk-static-assets.ts",
"build:assets": "ts-node scripts/copy-govuk-static-assets.ts && npm run build:assets:svg",
"build:assets:svg": "shx mkdir -p dist/assets/svg && cp src/assets/svg/* dist/assets/svg",
"prebuild:client": "shx rm -rf dist/client",

@@ -38,3 +39,6 @@ "build:client": "npm run build:client:umd && npm run build:client:es && tsc --project src/client",

"prebuild:client:react": "shx rm -rf dist/react",
"build:client:react": "babel src/react/ --extensions .ts,.tsx --out-dir dist/react/",
"build:client:react": "npm run build:client:react:es && npm urn build:client:react:cjs && npm run build:client:react:types",
"build:client:react:es": "BABEL_ENV=es babel src/react/ --ignore 'src/react/**/__examples__' --ignore 'src/react/**/__tests__' --extensions .ts,.tsx --out-dir dist/react/esm --out-file-extension .js",
"build:client:react:cjs": "webpack --config webpack-react-prod.config.ts",
"build:client:react:types": "tsc --project tsconfig.react.json",
"prebuild:css": "shx rm -rf dist/css",

@@ -44,5 +48,6 @@ "build:css": "sass --load-path=node_modules --quiet-deps --style compressed src/css/index.scss | postcss -o dist/css/index.css",

"build:lib": "tsc --project tsconfig.build.json && shx cp -r src/nunjucks dist/lib",
"examples:dev:react": "webpack --config webpack-react.config.ts --node-env development --watch",
"examples:build:react": "webpack --config webpack-react.config.ts --node-env production ",
"examples:build": "npm run build && eleventy",
"examples:dev:react": "webpack --config webpack-react-example.config.ts --node-env development --watch",
"examples:build:react": "webpack --config webpack-react-example.config.ts --node-env production",
"preexamples:build": "shx rm -rf examples-site/dist",
"examples:build": "npm run build && npm run examples:build:react && eleventy",
"examples:serve": "eleventy --serve",

@@ -98,2 +103,3 @@ "format": "dprint fmt",

"@babel/preset-typescript": "^7.21.5",
"@babel/register": "^7.22.5",
"@commitlint/cli": "^17.6.5",

@@ -105,2 +111,3 @@ "@commitlint/config-conventional": "^17.4.4",

"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^14.0.0",
"@types/lodash": "^4.14.195",

@@ -110,8 +117,10 @@ "@types/node": "^18.16.18",

"@types/react": "^18.2.7",
"@types/react-dom": "^18.2.4",
"@types/react-dom": "^18.2.6",
"@typescript-eslint/eslint-plugin": "^5.59.11",
"@typescript-eslint/parser": "^5.59.5",
"@typescript-eslint/parser": "^5.60.0",
"babel-loader": "^9.1.2",
"babel-plugin-inline-react-svg": "^2.0.2",
"babel-plugin-module-resolver": "^5.0.0",
"concurrently": "^8.0.1",
"dprint": "^0.36.1",
"dprint": "^0.37.1",
"eslint": "^8.41.0",

@@ -132,2 +141,3 @@ "eslint-config-airbnb-base": "^15.0.0",

"postcss-preset-env": "^8.4.1",
"react-merge-refs": "^2.0.2",
"release-it": "^15.11.0",

@@ -142,3 +152,3 @@ "sass": "^1.63.4",

"webpack": "^5.76.3",
"webpack-cli": "^5.1.1"
"webpack-cli": "^5.1.4"
},

@@ -156,4 +166,8 @@ "lint-staged": {

"clsx": "^1.2.1",
"lodash": "^4.17.21"
"lodash": "^4.17.21",
"react-merge-refs": "^2.0.2"
},
"overrides": {
"semver": "^7.5.3"
},
"peerDependencies": {

@@ -165,2 +179,13 @@ "govuk-frontend": "4.6.0",

},
"peerDependenciesMeta": {
"nunjucks": {
"optional": true
},
"react": {
"optional": true
},
"react-dom": {
"optional": true
}
},
"publishConfig": {

@@ -167,0 +192,0 @@ "access": "public"

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc