New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sveltekit-sitemap

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sveltekit-sitemap - npm Package Compare versions

Comparing version 1.0.10 to 1.0.11

44

dist/index.d.ts
import * as type_fest_source_readonly_deep from 'type-fest/source/readonly-deep';
import { RequestEvent, Handle } from '@sveltejs/kit';
import * as type_fest from 'type-fest';
import { ReadonlyDeep, SetOptional } from 'type-fest';
import { ReadonlyDeep } from 'type-fest';
import { ViteDevServer } from 'vite';

@@ -16,3 +15,3 @@

type StaticRoutes<S extends RO_Sitemap, R extends Routes<S> = Routes<S>> = Str<R extends `/${infer B}/[${infer P}]` ? never : R>;
type Priority = "1.0 " | "0.9" | "0.8" | "0.7" | "0.6" | "0.5" | "0.4" | "0.3" | "0.2" | "0.1" | "0.0";
type Priority = "1.0" | "0.9" | "0.8" | "0.7" | "0.6" | "0.5" | "0.4" | "0.3" | "0.2" | "0.1" | "0.0";
type Frequency = "Always" | "Hourly" | "Weekly" | "Monthly" | "Yearly" | "Never";

@@ -48,13 +47,16 @@ type RouteDefinition<P extends string> = {

priority?: Priority;
image?: {
url: string;
title?: string | null;
altText?: string | null;
};
image?: RouteDefinitionImage;
};
type RouteDefinitionImage = {
url: string;
title?: string | null;
altText?: string | null;
};
type Event = RequestEvent<Partial<Record<string, string>>, string | null>;
type RobotPaths<S extends Sitemap> = {
[K in Routes<S> | Folders<S> | "/$" | (string & {})]?: K extends DynamicRoutes<S> ? Record<string, boolean> : boolean;
type PathDirectives<S extends Sitemap> = {
[K in Routes<S> | Folders<S> | "/$"]?: K extends DynamicRoutes<S> ? {
[K in string]?: boolean;
} : boolean;
};
type UserAgent<S extends Sitemap> = {
type UserAgentDirective<S extends Sitemap> = {
userAgent?: string | string[];

@@ -65,10 +67,10 @@ /**

crawlDelay?: number;
paths: RobotPaths<S>;
paths: PathDirectives<S>;
};
type RouteDefinitions<S extends RO_Sitemap> = SetOptional<{
[K in Routes<S>]: K extends StaticRoutes<S> ? RouteDefinition<K> : RouteDefinition<K>[];
}, StaticRoutes<S>>;
type RouteDefinitions<S extends RO_Sitemap> = {
[K in Routes<S>]?: K extends StaticRoutes<S> ? RouteDefinition<K> : RouteDefinition<K>[];
};
type SitemapParams<S extends RO_Sitemap> = {
getRobots: (event: Event) => Promise<boolean | UserAgent<S> | UserAgent<S>[]>;
getRoutes: (event: Event) => Promise<RouteDefinitions<S>>;
getRobots?: (event: Event) => Promise<boolean | UserAgentDirective<S> | UserAgentDirective<S>[]>;
getRoutes?: (event: Event) => Promise<RouteDefinitions<S>>;
};

@@ -81,3 +83,3 @@ type SitemapPluginParams = {

declare const sitemapHook: <S extends type_fest_source_readonly_deep.ReadonlyObjectDeep<Sitemap>>(sitemap: S, params: SitemapParams<S>) => Handle;
declare const sitemapHook: <S extends type_fest_source_readonly_deep.ReadonlyObjectDeep<Sitemap>>(sitemap: S, params?: SitemapParams<S> | undefined) => Handle;

@@ -90,6 +92,6 @@ declare const sitemapPlugin: ({ routesDir, sitemapFile }?: SitemapPluginParams) => {

declare const encodeXML: (str: string) => string;
declare const generateSitemap: <S extends type_fest_source_readonly_deep.ReadonlyObjectDeep<Sitemap>>(definitions: type_fest.Simplify<type_fest.Except<{ [K in Str<keyof S>]: K extends Str<Str<keyof S> extends infer T ? T extends Str<keyof S> ? T extends `/${infer B}/[${infer P}]` ? never : T : never : never> ? RouteDefinition<K> : RouteDefinition<K>[]; }, Str<Str<keyof S> extends infer T ? T extends Str<keyof S> ? T extends `/${infer B}/[${infer P}]` ? never : T : never : never>> & Partial<Pick<{ [K in Str<keyof S>]: K extends Str<Str<keyof S> extends infer T ? T extends Str<keyof S> ? T extends `/${infer B}/[${infer P}]` ? never : T : never : never> ? RouteDefinition<K> : RouteDefinition<K>[]; }, Str<Str<keyof S> extends infer T ? T extends Str<keyof S> ? T extends `/${infer B}/[${infer P}]` ? never : T : never : never>>>>, baseUrl: string, sitemap: S) => string;
declare const generateRobots: <S extends type_fest_source_readonly_deep.ReadonlyObjectDeep<Sitemap>>(robots: boolean | UserAgent<S> | UserAgent<S>[], baseUrl: string) => string;
declare const generateSitemap: <S extends type_fest_source_readonly_deep.ReadonlyObjectDeep<Sitemap>>(definitions: RouteDefinitions<S>, baseUrl: string, sitemap: S) => string;
declare const generateRobots: <S extends type_fest_source_readonly_deep.ReadonlyObjectDeep<Sitemap>>(robots: boolean | UserAgentDirective<S> | UserAgentDirective<S>[], baseUrl: string) => string;
declare const getRoutes: (dir: string) => Sitemap;
export { DynamicRoutes, Event, Folders, RO_Sitemap, ReplaceParams, RobotPaths, RouteDefinition, RouteDefinitions, Routes, Sitemap, SitemapParams, SitemapPluginParams, StaticRoutes, Str, UserAgent, encodeXML, generateRobots, generateSitemap, getRoutes, sitemapHook, sitemapPlugin };
export { DynamicRoutes, Event, Folders, PathDirectives, RO_Sitemap, ReplaceParams, RouteDefinition, RouteDefinitionImage, RouteDefinitions, Routes, Sitemap, SitemapParams, SitemapPluginParams, StaticRoutes, Str, UserAgentDirective, encodeXML, generateRobots, generateSitemap, getRoutes, sitemapHook, sitemapPlugin };
{
"name": "sveltekit-sitemap",
"version": "1.0.10",
"version": "1.0.11",
"description": "",

@@ -24,3 +24,4 @@ "main": "./dist/index.mjs",

"dev": "tsup --format esm --watch --dts",
"build": "tsup --format esm --minify --dts",
"build": "tsup --format esm",
"doc": "typedoc src/index.ts",
"test:ui": "vitest --ui",

@@ -34,7 +35,8 @@ "pub": "pnpm run build && node increment && npm publish --access public",

],
"splitting": false,
"minify": true,
"splitting": true,
"dts": true,
"sourcemap": true,
"clean": true
"clean": false
}
}

@@ -6,7 +6,7 @@ import type { Handle } from "@sveltejs/kit";

export const sitemapHook =
<S extends RO_Sitemap>(sitemap: S, params: SitemapParams<S>): Handle =>
<S extends RO_Sitemap>(sitemap: S, params: SitemapParams<S> | undefined = {}): Handle =>
async ({ event, resolve }) => {
if (event.url.pathname === "/sitemap.xml") {
// Get dynamic custom definition for app routes
const routeDefinitions = await params.getRoutes(event);
const routeDefinitions = params.getRoutes ? await params.getRoutes(event) : {};
return new Response(generateSitemap(routeDefinitions, event.url.origin, sitemap), {

@@ -22,3 +22,3 @@ status: 200,

// Get dynamic robots directives
const robots = await params.getRobots(event);
const robots = params.getRobots ? await params.getRobots(event) : true;

@@ -25,0 +25,0 @@ // Build and return the robots.txt

import { RequestEvent } from "@sveltejs/kit";
import { ReadonlyDeep, SetOptional } from "type-fest";
import { ReadonlyDeep } from "type-fest";
export type RO_Sitemap = ReadonlyDeep<Sitemap>;

@@ -20,3 +20,3 @@ export type Sitemap = Record<string, boolean>;

type Priority = "1.0 " | "0.9" | "0.8" | "0.7" | "0.6" | "0.5" | "0.4" | "0.3" | "0.2" | "0.1" | "0.0";
type Priority = "1.0" | "0.9" | "0.8" | "0.7" | "0.6" | "0.5" | "0.4" | "0.3" | "0.2" | "0.1" | "0.0";

@@ -53,15 +53,15 @@ type Frequency = "Always" | "Hourly" | "Weekly" | "Monthly" | "Yearly" | "Never";

priority?: Priority;
image?: {
url: string;
title?: string | null;
altText?: string | null;
};
image?: RouteDefinitionImage;
};
export type RouteDefinitionImage = {
url: string;
title?: string | null;
altText?: string | null;
};
export type Event = RequestEvent<Partial<Record<string, string>>, string | null>;
export type RobotPaths<S extends Sitemap> = {
[K in Routes<S> | Folders<S> | "/$" | (string & {})]?: K extends DynamicRoutes<S> ? Record<string, boolean> : boolean;
export type PathDirectives<S extends Sitemap> = {
[K in Routes<S> | Folders<S> | "/$"]?: K extends DynamicRoutes<S> ? { [K in string]?: boolean } : boolean;
};
export type UserAgent<S extends Sitemap> = {
export type UserAgentDirective<S extends Sitemap> = {
userAgent?: string | string[];

@@ -72,14 +72,12 @@ /**

crawlDelay?: number;
paths: RobotPaths<S>;
paths: PathDirectives<S>;
};
export type RouteDefinitions<S extends RO_Sitemap> = SetOptional<
{
[K in Routes<S>]: K extends StaticRoutes<S> ? RouteDefinition<K> : RouteDefinition<K>[];
},
StaticRoutes<S>
>;
export type RouteDefinitions<S extends RO_Sitemap> = {
[K in Routes<S>]?: K extends StaticRoutes<S> ? RouteDefinition<K> : RouteDefinition<K>[];
};
export type SitemapParams<S extends RO_Sitemap> = {
getRobots: (event: Event) => Promise<boolean | UserAgent<S> | UserAgent<S>[]>;
getRoutes: (event: Event) => Promise<RouteDefinitions<S>>;
getRobots?: (event: Event) => Promise<boolean | UserAgentDirective<S> | UserAgentDirective<S>[]>;
getRoutes?: (event: Event) => Promise<RouteDefinitions<S>>;
};

@@ -86,0 +84,0 @@

@@ -1,2 +0,2 @@

import { RO_Sitemap, RouteDefinitions, RouteDefinition, Sitemap, UserAgent } from "./types";
import { RO_Sitemap, RouteDefinitions, RouteDefinition, Sitemap, UserAgentDirective } from "./types";
import fs from "fs";

@@ -23,3 +23,5 @@

if (!isDynamic) {
Object.assign(acc, { [route]: { path: route } });
Object.assign(acc, {
[route]: { path: route, priority: route === "/" ? "1.0" : "0.7" } as RouteDefinition<string>
});
}

@@ -80,3 +82,3 @@ return acc;

export const generateRobots = <S extends RO_Sitemap>(
robots: boolean | UserAgent<S> | UserAgent<S>[],
robots: boolean | UserAgentDirective<S> | UserAgentDirective<S>[],
baseUrl: string

@@ -87,3 +89,3 @@ ) => {

const parseAgent = (agent: UserAgent<S>) => {
const parseAgent = (agent: UserAgentDirective<S>) => {
const infos = Object.entries(agent.paths).reduce<{ allow: string[]; disallow: string[] }>(

@@ -90,0 +92,0 @@ (acc, [route, allow]) => {

@@ -1,2 +0,2 @@

import { RO_Sitemap, DynamicRoutes, StaticRoutes, Routes, ReplaceParams, Folders } from "../src";
import { RO_Sitemap, DynamicRoutes, StaticRoutes, Routes, ReplaceParams, Folders, UserAgentDirective } from "../src";

@@ -26,1 +26,11 @@ type Expect<T extends true> = T;

];
const testAgentDirective = {
userAgent: ["*"],
paths: {
"/blogs/": false,
"/blogs/[id]": {
"/blogs/id": true
}
}
} satisfies UserAgentDirective<S>;

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc