static getFullContentHash(module, runtimeTemplate) {
		const hash = createHash(
			/** @type {HashFunction} */
			(runtimeTemplate.outputOptions.hashFunction)
		);

		if (runtimeTemplate.outputOptions.hashSalt) {
			hash.update(runtimeTemplate.outputOptions.hashSalt);
		}

		const source = module.originalSource();

		if (source) {
			hash.update(source.buffer());
		}

		if (module.error) {
			hash.update(module.error.toString());
		}

		const fullContentHash = /** @type {string} */ (
			hash.digest(runtimeTemplate.outputOptions.hashDigest)
		);

		/** @type {string} */
		const contentHash = nonNumericOnlyHash(
			fullContentHash,
			/** @type {number} */
			(runtimeTemplate.outputOptions.hashDigestLength)
		);

		return [fullContentHash, contentHash];
	}
@param {NormalModule} module module
@param {RuntimeTemplate} runtimeTemplate runtime template
@returns {[string, string]} return full hash and non-numeric full hash