diff --git a/.jshintrc b/.jshintrc index d34c42d..daa6ce9 100644 --- a/.jshintrc +++ b/.jshintrc @@ -13,5 +13,6 @@ "undef": true, "unused": true, - "node": true + "node": true, + "esversion": 6 } diff --git a/Gruntfile.js b/Gruntfile.js index e0798a1..23ff3fa 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,6 +1,8 @@ module.exports = function( grunt ) { "use strict"; + const version = grunt.file.read("./api_version").trimEnd(); + var srcHintOptionsBrowser = grunt.file.readJSON("src/.jshintrc"), srcHintOptionsNode = grunt.file.readJSON("src/.jshintrc"), proxySnippet = require("grunt-connect-proxy/lib/utils").proxyRequest, @@ -61,12 +63,12 @@ module.exports = function( grunt ) { }, preprocess: { "data-api-browser": { - dest: "mt-static/data-api/v7/js/mt-data-api.js", - src: "src/data-api/v7/mt-data-api.js" + dest: "mt-static/data-api/" + version + "/js/mt-data-api.js", + src: "src/data-api/" + version + "/mt-data-api.js" }, "data-api-node": { - dest: "node-lib/data-api/v7/node-mt-data-api.js", - src: "src/data-api/v7/node-mt-data-api.js" + dest: "node-lib/data-api/" + version + "/node-mt-data-api.js", + src: "src/data-api/" + version + "/node-mt-data-api.js" }, "node-bootstrap": { dest: "node-lib/bootstrap.js", @@ -74,7 +76,7 @@ module.exports = function( grunt ) { }, "data-api-coverage-endpoints": { dest: ".src/data-api/coverage/endpoints.js", - src: "src/data-api/v7/endpoints.js" + src: "src/data-api/" + version + "/endpoints.js" } }, watch: { @@ -96,13 +98,13 @@ module.exports = function( grunt ) { uglify: { "data-api-browser": { files: { - "mt-static/data-api/v7/js/mt-data-api.min.js": [ - "mt-static/data-api/v7/js/mt-data-api.js" + ["mt-static/data-api/" + version + "/js/mt-data-api.min.js"]: [ + "mt-static/data-api/" + version + "/js/mt-data-api.js" ] }, options: { banner: "/* Copyright (c) Six Apart Ltd.\n * This file is generated by Movable Type DataAPI SDK for JavaScript.\n * Consult the source files for their respective licenses and copyrights.\n * <%= pkg.homepage %>\n */\n", - sourceMap: "mt-static/data-api/v7/js/mt-data-api.min.map", + sourceMap: "mt-static/data-api/" + version + "/js/mt-data-api.min.map", sourceMapPrefix: 4, sourceMappingURL: "mt-data-api.min.map", report: "min", @@ -183,7 +185,7 @@ module.exports = function( grunt ) { }, jasmine: { "data-api": { - src: ["mt-static/data-api/v7/js/mt-data-api.js"], + src: ["mt-static/data-api/" + version + "/js/mt-data-api.js"], options: { specs: "spec/data-api/**/*.js", host: "http://localhost:<%= connect.jasmine.options.port %>/", diff --git a/Makefile b/Makefile index 4b51468..e19f442 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,6 @@ all: make build clean: - -rm -rf node-lib mt-static -rm -rf node_modules bower_components -find . -name '.DS_Store' | xargs --no-run-if-empty rm @@ -20,7 +19,7 @@ build: test: -grunt test -JSON_VERSION := v7 +JSON_VERSION := $(shell cat api_version) JSON_BASE_URL := http://localhost/cgi-bin/mt/mt-data-api.cgi json: diff --git a/api_version b/api_version new file mode 100644 index 0000000..02a819f --- /dev/null +++ b/api_version @@ -0,0 +1 @@ +v7 diff --git a/package-lock.json b/package-lock.json index 77b293e..90c582f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "grunt-contrib-clean": "~0.4.0", "grunt-contrib-connect": "~5.0.1", "grunt-contrib-jasmine": "^4.0.0", - "grunt-contrib-jshint": "~0.6.0", + "grunt-contrib-jshint": "^3.2.0", "grunt-contrib-uglify": "~0.2.2", "grunt-contrib-watch": "~0.2.0", "grunt-jasmine-node": "~0.1.0", @@ -1613,6 +1613,12 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, "node_modules/cosmiconfig": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", @@ -1687,6 +1693,12 @@ "node": ">= 8" } }, + "node_modules/date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha512-AsElvov3LoNB7tf5k37H2jYSB+ZZPMT5sG2QjJCcdlV5chIv6htBUBUui2IKRjgtKAKtCBN7Zbwa+MtwLjSeNw==", + "dev": true + }, "node_modules/dateformat": { "version": "1.0.2-1.2.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", @@ -1858,6 +1870,62 @@ "node": ">=6.0.0" } }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha512-q9bUwjfp7Eif8jWxxxPSykdRZAb6GkguBGSgvvCrhI9wB71W2K/Kvv4E61CF/mcCfnVJDeDWx/Vb/uAqbDj6UQ==", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -1919,6 +1987,12 @@ "once": "^1.4.0" } }, + "node_modules/entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ==", + "dev": true + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -3608,18 +3682,126 @@ } }, "node_modules/grunt-contrib-jshint": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.6.5.tgz", - "integrity": "sha512-Hq9ExFaE41jCoAXqwdIi2b/QGI3K/1z+52aIP0m1zTaXv6DgodDhnR7ijqGTI3mm9UdJi/qfb08/UmEOEKsuLw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-3.2.0.tgz", + "integrity": "sha512-pcXWCSZWfoMSvcV4BwH21TUtLtcX0Ms8IGuOPIcLeXK3fud9KclY7iqMKY94jFx8TxZzh028YYtpR+io8DiEaQ==", "dev": true, "dependencies": { - "jshint": "~2.1.10" + "chalk": "~4.1.2", + "hooker": "^0.2.3", + "jshint": "~2.13.4" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha512-41U72MB56TfUMGndAKK8vJ78eooOD4Z5NOL4xEfjc0c23s+6EYKXlXsmACBVclLP1yOfWCgEganVzddVrSNoTg==", + "dev": true, + "dependencies": { + "exit": "0.1.2", + "glob": "^7.1.1" }, - "peerDependencies": { - "grunt": "~0.4.0" + "engines": { + "node": ">=0.2.5" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha512-duS7VP5pvfsNLDvL1O4VOEbw37AI3A4ZUQYemvDlnpGrNu9tprR7BYWpDYwC0Xia0Zxz5ZupdiIrUp0GH1aXfg==", + "dev": true, + "dependencies": { + "date-now": "^0.1.4" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/grunt-contrib-jshint/node_modules/jshint": { + "version": "2.13.6", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.6.tgz", + "integrity": "sha512-IVdB4G0NTTeQZrBoM8C5JFVLjV2KtZ9APgybDA1MK73xb09qFs0jCXyQLnCOp1cSZZZbvhq/6mfXHUTaDkffuQ==", + "dev": true, + "dependencies": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.21", + "minimatch": "~3.0.2", + "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/grunt-contrib-jshint/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==", + "dev": true, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" } }, "node_modules/grunt-contrib-uglify": { @@ -4020,6 +4202,43 @@ "node": ">=12" } }, + "node_modules/htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha512-hBxEg3CYXe+rPIua8ETe7tmG3XDn9B0edOE/e9wH2nLczxzgdu0m0aNHY+5wFZiviLWLdANPJTssa92dMcXQ5Q==", + "dev": true, + "dependencies": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "node_modules/htmlparser2/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/htmlparser2/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, "node_modules/http-cache-semantics": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", @@ -4777,6 +4996,12 @@ "node": ">=4" } }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", diff --git a/package.json b/package.json index e996cde..82bfbb4 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "grunt-contrib-clean": "~0.4.0", "grunt-contrib-connect": "~5.0.1", "grunt-contrib-jasmine": "^4.0.0", - "grunt-contrib-jshint": "~0.6.0", + "grunt-contrib-jshint": "^3.2.0", "grunt-contrib-uglify": "~0.2.2", "grunt-contrib-watch": "~0.2.0", "grunt-jasmine-node": "~0.1.0",