From 9e791996278a7668be4b37c6263c5eaabbf4efd9 Mon Sep 17 00:00:00 2001 From: "jyc.dev" Date: Thu, 5 Jun 2025 23:24:21 +0200 Subject: [PATCH] Fix encoding (#1034) * step 1 (repro & key) * good return * okay format also * update tests & fix variable mode * update to bluesky * twitter to bluesky * add changeset --- .changeset/tough-horses-sip.md | 5 ++ .../vite-plugin-kit-routes/src/lib/ROUTES.ts | 24 +++++-- .../vite-plugin-kit-routes/src/lib/plugin.ts | 71 ++++++++++++++++--- .../src/lib/plugins.spec.ts | 32 ++++++--- .../src/routes/+layout.svelte | 13 +++- .../src/routes/[u+d83e][u+dd2a]/+page.svelte | 1 + .../[emoji]/[u+2b50]/+page.svelte | 35 +++++++++ .../src/routes/[x+2e]well-known/+page.svelte | 1 + .../src/routes/[x+2e]well-known/+server.ts | 8 +++ .../src/test/ROUTES_base.ts | 12 +++- .../src/test/ROUTES_format-object-path.ts | 20 ++++-- .../ROUTES_format-object-path_shortened.ts | 20 ++++-- .../src/test/ROUTES_format-object-symbol.ts | 20 ++++-- .../ROUTES_format-object-symbol_shortened.ts | 20 ++++-- .../ROUTES_format-route-and-object-path.ts | 20 ++++-- ..._format-route-and-object-path_shortened.ts | 20 ++++-- .../ROUTES_format-route-and-object-symbol.ts | 20 ++++-- ...ormat-route-and-object-symbol_shortened.ts | 20 ++++-- .../ROUTES_format-route-path-page-route-id.ts | 20 ++++-- ...rmat-route-path-page-route-id_shortened.ts | 20 ++++-- .../src/test/ROUTES_format-route-path.ts | 20 ++++-- .../ROUTES_format-route-path_shortened.ts | 20 ++++-- .../src/test/ROUTES_format-route-symbol.ts | 20 ++++-- .../ROUTES_format-route-symbol_shortened.ts | 20 ++++-- .../src/test/ROUTES_format-variables.ts | 20 ++++-- .../test/ROUTES_format-variables_shortened.ts | 20 ++++-- .../src/test/ROUTES_hash.ts | 12 +++- .../src/test/ROUTES_post-update.ts | 12 +++- .../vite-plugin-kit-routes/vite.config.ts | 4 +- 29 files changed, 402 insertions(+), 148 deletions(-) create mode 100644 .changeset/tough-horses-sip.md create mode 100644 packages/vite-plugin-kit-routes/src/routes/[u+d83e][u+dd2a]/+page.svelte create mode 100644 packages/vite-plugin-kit-routes/src/routes/[u+d83e][u+dd2a]/[emoji]/[u+2b50]/+page.svelte create mode 100644 packages/vite-plugin-kit-routes/src/routes/[x+2e]well-known/+page.svelte create mode 100644 packages/vite-plugin-kit-routes/src/routes/[x+2e]well-known/+server.ts diff --git a/.changeset/tough-horses-sip.md b/.changeset/tough-horses-sip.md new file mode 100644 index 00000000..b9cb717d --- /dev/null +++ b/.changeset/tough-horses-sip.md @@ -0,0 +1,5 @@ +--- +'vite-plugin-kit-routes': patch +--- + +fix: manage well escape sequences (https://svelte.dev/docs/kit/advanced-routing#Encoding) diff --git a/packages/vite-plugin-kit-routes/src/lib/ROUTES.ts b/packages/vite-plugin-kit-routes/src/lib/ROUTES.ts index 9d916d71..20cd1c71 100644 --- a/packages/vite-plugin-kit-routes/src/lib/ROUTES.ts +++ b/packages/vite-plugin-kit-routes/src/lib/ROUTES.ts @@ -67,6 +67,11 @@ const PAGES = { }) => { return `${params?.['lang'] ? `/${params?.['lang']}` : ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ limit: params['limit'] })}` }, + '/[u+d83e][u+dd2a]': `/🤪`, + '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': (params: { emoji: string | number }) => { + return `/🤪/${params['emoji']}/⭐` + }, + '/[x+2e]well-known': `/.well-known`, '/a/[...rest]/z': (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` }, @@ -114,6 +119,7 @@ const SERVERS = { 'GET /site': (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => { return `${params?.['lang'] ? `/${params?.['lang']}` : ''}/site` }, + 'GET /[x+2e]well-known': `/.well-known`, 'GET /api/graphql': `/api/graphql`, 'POST /api/graphql': `/api/graphql`, 'GET /data/errors/[locale].json': (params: { locale: string | number }) => { @@ -171,9 +177,9 @@ const ACTIONS = { * LINKS */ const LINKS = { - twitter: `https://twitter.com/jycouet`, - twitter_post: (params: { name: string | number; id: string | number }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + bluesky: `https://bsky.app/profile/jyc.dev`, + bluesky_post: (params: { did: string | number; post_id: string | number }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, gravatar: (params: { str: string; s?: number; d?: 'retro' | 'identicon' }) => { params['s'] = params['s'] ?? 75 @@ -331,6 +337,9 @@ export type KIT_ROUTES = { '/site': 'lang' '/site/[id]': 'lang' | 'id' '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' + '/[u+d83e][u+dd2a]': never + '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji' + '/[x+2e]well-known': never '/a/[...rest]/z': 'rest' '/anchors': never '/anchors/[id]': 'id' @@ -349,6 +358,7 @@ export type KIT_ROUTES = { 'GET /contract': 'lang' 'POST /contract': 'lang' 'GET /site': 'lang' + 'GET /[x+2e]well-known': never 'GET /api/graphql': never 'POST /api/graphql': never 'GET /data/errors/[locale].json': 'locale' @@ -363,8 +373,8 @@ export type KIT_ROUTES = { 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } LINKS: { - twitter: never - twitter_post: 'name' | 'id' + bluesky: never + bluesky_post: 'did' | 'post_id' gravatar: 'str' default_values_site: 'bool' | 'arr' } @@ -378,6 +388,7 @@ export type KIT_ROUTES = { 'da-sh': never siteId: never contractId: never + emoji: never rest: never hash: never anotherOne: never @@ -385,7 +396,8 @@ export type KIT_ROUTES = { locale: never redirectTo: never extra: never - name: never + did: never + post_id: never str: never s: never d: never diff --git a/packages/vite-plugin-kit-routes/src/lib/plugin.ts b/packages/vite-plugin-kit-routes/src/lib/plugin.ts index cd6827f9..bc7cd28a 100644 --- a/packages/vite-plugin-kit-routes/src/lib/plugin.ts +++ b/packages/vite-plugin-kit-routes/src/lib/plugin.ts @@ -200,12 +200,12 @@ export type Options = { * // ... Example ... * LINKS: { * // reference to a hardcoded link - * twitter: 'https://twitter.com/jycouet', - * // ✅ Twitter + * bluesky: 'https://bsky.app/profile/jyc.dev', + * // ✅ Bluesky * * // reference to link with params! (Like svelteKit routes add [ ] to specify params) - * twitter_post: 'https://twitter.com/[name]/status/[id]', - * // ✅ Twitter Post + * bluesky_post: 'https://bsky.app/profile/[did]/post/[post_id]', + * // ✅ Bluesky Post * * // reference to link with params & search params! * gravatar: { @@ -457,6 +457,8 @@ type Param = { fromPath?: boolean isArray: boolean needExtractParamType?: boolean + isEncoded?: 'x+' | 'u+' + decoded?: string } export const transformToMetadata = ( @@ -571,7 +573,9 @@ export function buildMetadata( customConf = viteCustomPathConfig[keyToUse] } - const paramsFromPath = extractParamsFromPath(originalValue, options) + const rawParamsFromPath = extractParamsFromPath(originalValue, options) + const paramsFromPath = rawParamsFromPath.filter((c) => c.isEncoded === undefined) + const specialNoParams = rawParamsFromPath.filter((c) => c.isEncoded !== undefined) // custom Param? if (customConf.params) { @@ -754,7 +758,10 @@ export function buildMetadata( const completeToRet = `${pathBaesStr}${toRet}` const trailingSlashToUse = o.trailingSlash === 'always' && !completeToRet.endsWith('/') ? '/' : '' - const strReturn = `\`${completeToRet}${trailingSlashToUse}${actionsFormat}${fullSP}\`` + let strReturn = `\`${completeToRet}${trailingSlashToUse}${actionsFormat}${fullSP}\`` + for (let i = 0; i < specialNoParams.length; i++) { + strReturn = strReturn.replace(specialNoParams[i].name, specialNoParams[i].decoded!) + } const strParams = params.join(', ') const baseToReturn: MetadataToWrite = { @@ -785,7 +792,7 @@ function getSpValue(rawValue: string, param: ExplicitSearchParam) { export function extractParamsFromPath(path: string, o: Options): Param[] { const options = getDefaultOption(o) const paramPattern = /\[+([^\]]+)]+/g - const params: Param[] = [] + let params: Param[] = [] const relToParams = posix.relative(dirname(options.generated_file_path), options.path_params) @@ -816,6 +823,54 @@ export function extractParamsFromPath(path: string, o: Options): Param[] { } } + params = params.map((p) => { + if (p.name.startsWith('x+')) { + const [, hex] = p.name.split('+') + p.isEncoded = 'x+' + p.decoded = String.fromCharCode(parseInt(hex, 16)) + p.name = `[${p.name}]` + } else if (p.name.startsWith('u+')) { + const [, hex] = p.name.split('+') + p.isEncoded = 'u+' + p.decoded = String.fromCharCode(parseInt(hex, 16)) + p.name = `[${p.name}]` + } + return p + }) + + // if decoded is 1 char, it's already done. No need to combine it. + const paramsU = params.filter((c) => c.isEncoded === 'u+' && c.decoded?.length !== 1) + params = params.filter( + (c) => c.isEncoded !== 'u+' || (c.isEncoded === 'u+' && c.decoded?.length === 1), + ) + + // Find consecutive pairs of u+ encoded parameters + for (let i = 0; i < paramsU.length - 1; i++) { + const currentParam = paramsU[i] + const nextParam = paramsU[i + 1] + const combinedName = `${currentParam.name}${nextParam.name}` + + // Check if the combined name exists in relToParams + if (path.includes(combinedName)) { + // Create a new parameter combining both + const combinedParam: Param = { + name: combinedName, + optional: currentParam.optional && nextParam.optional, + fromPath: true, + isArray: false, + isEncoded: 'u+', + decoded: currentParam.decoded! + nextParam.decoded!, + } + + // Remove the two original parameters and add the combined one + params = params.filter((p) => p !== currentParam && p !== nextParam) + params.push(combinedParam) + + // Skip the next parameter since we've already processed it + i++ + } + } + return params } @@ -999,7 +1054,7 @@ export const run = async (atStart: boolean, o?: Options) => { ${c.files .map((key) => { let valiableName = `${c.type.slice(0, -1)}_${key.keyToUse}` - const invalidInVariable = ['-', ' '] + const invalidInVariable = ['-', ' ', '+'] for (const invalid of invalidInVariable) { valiableName = valiableName.replaceAll(invalid, '_') } diff --git a/packages/vite-plugin-kit-routes/src/lib/plugins.spec.ts b/packages/vite-plugin-kit-routes/src/lib/plugins.spec.ts index b44de251..3371086d 100644 --- a/packages/vite-plugin-kit-routes/src/lib/plugins.spec.ts +++ b/packages/vite-plugin-kit-routes/src/lib/plugins.spec.ts @@ -359,6 +359,10 @@ describe('getFilesUnder', () => { "/site_contract/+page.server.ts", "/site_contract/[siteId]-[contractId]/+page.server.ts", "/site_contract/[siteId]-[contractId]/+page.svelte", + "[u+d83e][u+dd2a]/+page.svelte", + "[u+d83e][u+dd2a]/[emoji]/[u+2b50]/+page.svelte", + "[x+2e]well-known/+page.svelte", + "[x+2e]well-known/+server.ts", "a/[...rest]/z/+page.svelte", "anchors/+page.svelte", "anchors/[id]/+page.svelte", @@ -413,6 +417,10 @@ describe('getFilesUnder', () => { "[[lang]]/site_contract/+page.server.ts", "[[lang]]/site_contract/[siteId]-[contractId]/+page.server.ts", "[[lang]]/site_contract/[siteId]-[contractId]/+page.svelte", + "[u+d83e][u+dd2a]/+page.svelte", + "[u+d83e][u+dd2a]/[emoji]/[u+2b50]/+page.svelte", + "[x+2e]well-known/+page.svelte", + "[x+2e]well-known/+server.ts", "a/[...rest]/z/+page.svelte", "anchors/+page.svelte", "anchors/[id]/+page.svelte", @@ -460,6 +468,10 @@ describe('getFilesUnder', () => { "[[lang]]/site_contract/+page.server.ts", "[[lang]]/site_contract/[siteId]-[contractId]/+page.server.ts", "[[lang]]/site_contract/[siteId]-[contractId]/+page.svelte", + "[u+d83e][u+dd2a]/+page.svelte", + "[u+d83e][u+dd2a]/[emoji]/[u+2b50]/+page.svelte", + "[x+2e]well-known/+page.svelte", + "[x+2e]well-known/+server.ts", "a/[...rest]/z/+page.svelte", "anchors/+page.svelte", "anchors/[id]/+page.svelte", @@ -510,6 +522,10 @@ describe('getFilesUnder', () => { "/site_contract/+page.server.ts", "/site_contract/[siteId]-[contractId]/+page.server.ts", "/site_contract/[siteId]-[contractId]/+page.svelte", + "[u+d83e][u+dd2a]/+page.svelte", + "[u+d83e][u+dd2a]/[emoji]/[u+2b50]/+page.svelte", + "[x+2e]well-known/+page.svelte", + "[x+2e]well-known/+server.ts", "a/[...rest]/z/+page.svelte", "anchors/+page.svelte", "anchors/[id]/+page.svelte", @@ -534,10 +550,10 @@ describe('run()', async () => { const commonConfig: Options = { LINKS: { // reference to a hardcoded link - twitter: 'https://twitter.com/jycouet', + bluesky: 'https://bsky.app/profile/jyc.dev', // reference to link with params! - twitter_post: 'https://twitter.com/[name]/status/[id]', + bluesky_post: 'https://bsky.app/profile/[did]/post/[post_id]', // reference to link with params & search params! gravatar: { @@ -858,10 +874,10 @@ describe('run()', async () => { { name: 'direct link', kind: 'LINKS', - results: 'https://twitter.com/jycouet', - key_path: 'twitter', - key_path_routeId: 'twitter', - key_symbol: 'twitter', + results: 'https://bsky.app/profile/jyc.dev', + key_path: 'bluesky', + key_path_routeId: 'bluesky', + key_symbol: 'bluesky', params: [], params_shortened: [], }, @@ -1033,8 +1049,8 @@ describe('run()', async () => { } // else if (element.name === 'direct link') { - expect(vars___not.LINK_twitter, element.name).toBe(element.results) - expect(vars_short.LINK_twitter, element.name).toBe(element.results) + expect(vars___not.LINK_bluesky, element.name).toBe(element.results) + expect(vars_short.LINK_bluesky, element.name).toBe(element.results) } // else if (element.name === 'multi params') { diff --git a/packages/vite-plugin-kit-routes/src/routes/+layout.svelte b/packages/vite-plugin-kit-routes/src/routes/+layout.svelte index f74149d5..0bd1dc2b 100644 --- a/packages/vite-plugin-kit-routes/src/routes/+layout.svelte +++ b/packages/vite-plugin-kit-routes/src/routes/+layout.svelte @@ -112,14 +112,21 @@ | Anchors no hash +
  • + Well Known | 🤪 + | 🤪🚀⭐ +

  • LINKS: -TwiX | - - TwiX Post +Bluesky | + + Bluesky Post | CORS issue? diff --git a/packages/vite-plugin-kit-routes/src/routes/[u+d83e][u+dd2a]/+page.svelte b/packages/vite-plugin-kit-routes/src/routes/[u+d83e][u+dd2a]/+page.svelte new file mode 100644 index 00000000..3fd86e9a --- /dev/null +++ b/packages/vite-plugin-kit-routes/src/routes/[u+d83e][u+dd2a]/+page.svelte @@ -0,0 +1 @@ +Yes yes yes 🤪 diff --git a/packages/vite-plugin-kit-routes/src/routes/[u+d83e][u+dd2a]/[emoji]/[u+2b50]/+page.svelte b/packages/vite-plugin-kit-routes/src/routes/[u+d83e][u+dd2a]/[emoji]/[u+2b50]/+page.svelte new file mode 100644 index 00000000..700c2b4c --- /dev/null +++ b/packages/vite-plugin-kit-routes/src/routes/[u+d83e][u+dd2a]/[emoji]/[u+2b50]/+page.svelte @@ -0,0 +1,35 @@ + + +
    +

    🤪

    + +

    ⭐

    +
    + + diff --git a/packages/vite-plugin-kit-routes/src/routes/[x+2e]well-known/+page.svelte b/packages/vite-plugin-kit-routes/src/routes/[x+2e]well-known/+page.svelte new file mode 100644 index 00000000..0d34e86f --- /dev/null +++ b/packages/vite-plugin-kit-routes/src/routes/[x+2e]well-known/+page.svelte @@ -0,0 +1 @@ +.well-known diff --git a/packages/vite-plugin-kit-routes/src/routes/[x+2e]well-known/+server.ts b/packages/vite-plugin-kit-routes/src/routes/[x+2e]well-known/+server.ts new file mode 100644 index 00000000..af65c8c1 --- /dev/null +++ b/packages/vite-plugin-kit-routes/src/routes/[x+2e]well-known/+server.ts @@ -0,0 +1,8 @@ +import { json } from '@sveltejs/kit' +import type { RequestHandler } from '@sveltejs/kit' + +export const GET: RequestHandler = async () => { + return json({ + very: 'well-known', + }) +} diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_base.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_base.ts index 6d869859..b356873e 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_base.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_base.ts @@ -47,6 +47,11 @@ const PAGES = { "/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: (string | number) }) => { return `${base}${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}` }, + "/[u+d83e][u+dd2a]": `${base}/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (params: { emoji: (string | number) }) => { + return `${base}/🤪/${params['emoji']}/⭐` + }, + "/[x+2e]well-known": `${base}/.well-known`, "/a/[...rest]/z": (params: { rest: (string | number)[] }) => { return `${base}/a/${params['rest']?.join('/')}/z` }, @@ -79,6 +84,7 @@ const SERVERS = { "GET /site": (params?: { lang?: (string | number) }) => { return `${base}${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `${base}/.well-known`, "GET /api/graphql": `${base}/api/graphql`, "POST /api/graphql": `${base}/api/graphql`, "GET /data/errors/[locale].json": (params: { locale: (string | number) }) => { @@ -229,9 +235,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'id' | 'lang', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'id' | 'lang', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /contract/[id]': 'id' | 'lang', 'create /site': 'lang', 'u-p-d-a-t-e /site': 'lang', 'update /site/[id]': 'id' | 'lang', 'delete /site/[id]': 'id' | 'lang', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } LINKS: Record - Params: { 'all': never, 'lang': never, 'id': never, 'siteId': never, 'contractId': never, 'rest': never, 'locale': never } + Params: { 'all': never, 'lang': never, 'id': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'locale': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path.ts index a694d57b..1107344d 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path.ts @@ -51,6 +51,11 @@ export const PAGES = { "/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "/[u+d83e][u+dd2a]": `/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (params: { emoji: (string | number) }) => { + return `/🤪/${params['emoji']}/⭐` + }, + "/[x+2e]well-known": `/.well-known`, "/a/[...rest]/z": (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` }, @@ -85,6 +90,7 @@ export const SERVERS = { "GET /site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `/.well-known`, "GET /api/graphql": `/api/graphql`, "POST /api/graphql": `/api/graphql`, "GET /data/errors/[locale].json": (params: { locale: (string | number) }) => { @@ -124,9 +130,9 @@ export const ACTIONS = { * LINKS */ export const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (params: { str: (string | number), s?: (number), d?: ("retro" | "identicon") }) => { params['s'] = params['s'] ?? 75; @@ -212,9 +218,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /contract/[id]': 'id' | 'lang', 'create /site': 'lang', 'u-p-d-a-t-e /site': 'lang', 'update /site/[id]': 'id' | 'lang', 'delete /site/[id]': 'id' | 'lang', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path_shortened.ts index 33285b08..6b725d8e 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path_shortened.ts @@ -51,6 +51,11 @@ export const PAGES = { "/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "/[u+d83e][u+dd2a]": `/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (emoji: (string | number), params?: { }) => { + return `/🤪/${emoji}/⭐` + }, + "/[x+2e]well-known": `/.well-known`, "/a/[...rest]/z": (rest: (string | number)[], params?: { }) => { return `/a/${rest?.join('/')}/z` }, @@ -85,6 +90,7 @@ export const SERVERS = { "GET /site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `/.well-known`, "GET /api/graphql": `/api/graphql`, "POST /api/graphql": `/api/graphql`, "GET /data/errors/[locale].json": (locale: (string | number), params?: { }) => { @@ -124,9 +130,9 @@ export const ACTIONS = { * LINKS */ export const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (str: (string | number), params?: { s?: (number), d?: ("retro" | "identicon") }) => { params = params ?? {} @@ -213,9 +219,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'lang' | 'id', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'lang' | 'id', '/match/[id=int]': 'lang' | 'id', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'lang' | 'id', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'lang' | 'id', '/match/[id=int]': 'lang' | 'id', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /contract/[id]': 'lang' | 'id', 'create /site': 'lang', 'u-p-d-a-t-e /site': 'lang', 'update /site/[id]': 'lang' | 'id', 'delete /site/[id]': 'lang' | 'id', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol.ts index 60ec3acb..1f2613b8 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol.ts @@ -51,6 +51,11 @@ export const PAGES = { "site_contract_siteId_contractId": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "u+d83e_u+dd2a": `/🤪`, + "u+d83e_u+dd2a_emoji_u+2b50": (params: { emoji: (string | number) }) => { + return `/🤪/${params['emoji']}/⭐` + }, + "x+2e_well_known": `/.well-known`, "a_rest_z": (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` }, @@ -89,6 +94,7 @@ export const SERVERS = { "GET_site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET_x+2e_well_known": `/.well-known`, "GET_api_graphql": `/api/graphql`, "POST_api_graphql": `/api/graphql`, "GET_data_errors_locale_json": (params: { locale: (string | number) }) => { @@ -128,9 +134,9 @@ export const ACTIONS = { * LINKS */ export const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (params: { str: (string | number), s?: (number), d?: ("retro" | "identicon") }) => { params['s'] = params['s'] ?? 75; @@ -216,9 +222,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } - SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' } + PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'u+d83e_u+dd2a': never, 'u+d83e_u+dd2a_emoji_u+2b50': 'emoji', 'x+2e_well_known': never, 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } + SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_x+2e_well_known': never, 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' } ACTIONS: { 'default_contract_id': 'id' | 'lang', 'create_site': 'lang', 'u-p-d-a-t-e_site': 'lang', 'update_site_id': 'id' | 'lang', 'delete_site_id': 'id' | 'lang', 'noSatisfies_site_contract': 'lang', 'send_site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'ids': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'ids': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol_shortened.ts index f3dc105c..f974cc9b 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol_shortened.ts @@ -51,6 +51,11 @@ export const PAGES = { "site_contract_siteId_contractId": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "u+d83e_u+dd2a": `/🤪`, + "u+d83e_u+dd2a_emoji_u+2b50": (emoji: (string | number), params?: { }) => { + return `/🤪/${emoji}/⭐` + }, + "x+2e_well_known": `/.well-known`, "a_rest_z": (rest: (string | number)[], params?: { }) => { return `/a/${rest?.join('/')}/z` }, @@ -89,6 +94,7 @@ export const SERVERS = { "GET_site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET_x+2e_well_known": `/.well-known`, "GET_api_graphql": `/api/graphql`, "POST_api_graphql": `/api/graphql`, "GET_data_errors_locale_json": (locale: (string | number), params?: { }) => { @@ -128,9 +134,9 @@ export const ACTIONS = { * LINKS */ export const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (str: (string | number), params?: { s?: (number), d?: ("retro" | "identicon") }) => { params = params ?? {} @@ -217,9 +223,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'lang' | 'id', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'lang' | 'id', 'match_id_int': 'lang' | 'id', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } - SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' } + PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'lang' | 'id', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'lang' | 'id', 'match_id_int': 'lang' | 'id', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'u+d83e_u+dd2a': never, 'u+d83e_u+dd2a_emoji_u+2b50': 'emoji', 'x+2e_well_known': never, 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } + SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_x+2e_well_known': never, 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' } ACTIONS: { 'default_contract_id': 'lang' | 'id', 'create_site': 'lang', 'u-p-d-a-t-e_site': 'lang', 'update_site_id': 'lang' | 'id', 'delete_site_id': 'lang' | 'id', 'noSatisfies_site_contract': 'lang', 'send_site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'ids': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'ids': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path.ts index c888d19d..b3ebbb02 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path.ts @@ -51,6 +51,11 @@ export const PAGES = { "/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "/[u+d83e][u+dd2a]": `/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (params: { emoji: (string | number) }) => { + return `/🤪/${params['emoji']}/⭐` + }, + "/[x+2e]well-known": `/.well-known`, "/a/[...rest]/z": (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` }, @@ -85,6 +90,7 @@ export const SERVERS = { "GET /site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `/.well-known`, "GET /api/graphql": `/api/graphql`, "POST /api/graphql": `/api/graphql`, "GET /data/errors/[locale].json": (params: { locale: (string | number) }) => { @@ -124,9 +130,9 @@ export const ACTIONS = { * LINKS */ export const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (params: { str: (string | number), s?: (number), d?: ("retro" | "identicon") }) => { params['s'] = params['s'] ?? 75; @@ -244,9 +250,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /contract/[id]': 'id' | 'lang', 'create /site': 'lang', 'u-p-d-a-t-e /site': 'lang', 'update /site/[id]': 'id' | 'lang', 'delete /site/[id]': 'id' | 'lang', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path_shortened.ts index 6dcb4587..b3521031 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path_shortened.ts @@ -51,6 +51,11 @@ export const PAGES = { "/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "/[u+d83e][u+dd2a]": `/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (emoji: (string | number), params?: { }) => { + return `/🤪/${emoji}/⭐` + }, + "/[x+2e]well-known": `/.well-known`, "/a/[...rest]/z": (rest: (string | number)[], params?: { }) => { return `/a/${rest?.join('/')}/z` }, @@ -85,6 +90,7 @@ export const SERVERS = { "GET /site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `/.well-known`, "GET /api/graphql": `/api/graphql`, "POST /api/graphql": `/api/graphql`, "GET /data/errors/[locale].json": (locale: (string | number), params?: { }) => { @@ -124,9 +130,9 @@ export const ACTIONS = { * LINKS */ export const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (str: (string | number), params?: { s?: (number), d?: ("retro" | "identicon") }) => { params = params ?? {} @@ -245,9 +251,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'lang' | 'id', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'lang' | 'id', '/match/[id=int]': 'lang' | 'id', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'lang' | 'id', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'lang' | 'id', '/match/[id=int]': 'lang' | 'id', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /contract/[id]': 'lang' | 'id', 'create /site': 'lang', 'u-p-d-a-t-e /site': 'lang', 'update /site/[id]': 'lang' | 'id', 'delete /site/[id]': 'lang' | 'id', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol.ts index ee0bebdf..05c33053 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol.ts @@ -51,6 +51,11 @@ export const PAGES = { "site_contract_siteId_contractId": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "u+d83e_u+dd2a": `/🤪`, + "u+d83e_u+dd2a_emoji_u+2b50": (params: { emoji: (string | number) }) => { + return `/🤪/${params['emoji']}/⭐` + }, + "x+2e_well_known": `/.well-known`, "a_rest_z": (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` }, @@ -85,6 +90,7 @@ export const SERVERS = { "GET site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET x+2e_well_known": `/.well-known`, "GET api_graphql": `/api/graphql`, "POST api_graphql": `/api/graphql`, "GET data_errors_locale_json": (params: { locale: (string | number) }) => { @@ -124,9 +130,9 @@ export const ACTIONS = { * LINKS */ export const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (params: { str: (string | number), s?: (number), d?: ("retro" | "identicon") }) => { params['s'] = params['s'] ?? 75; @@ -244,9 +250,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } - SERVERS: { 'GET server_func_get': never, 'GET server_func_get_and': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' } + PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'u+d83e_u+dd2a': never, 'u+d83e_u+dd2a_emoji_u+2b50': 'emoji', 'x+2e_well_known': never, 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } + SERVERS: { 'GET server_func_get': never, 'GET server_func_get_and': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET x+2e_well_known': never, 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' } ACTIONS: { 'default contract_id': 'id' | 'lang', 'create site': 'lang', 'u-p-d-a-t-e site': 'lang', 'update site_id': 'id' | 'lang', 'delete site_id': 'id' | 'lang', 'noSatisfies site_contract': 'lang', 'send site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol_shortened.ts index 720c6695..c80c5a2f 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol_shortened.ts @@ -51,6 +51,11 @@ export const PAGES = { "site_contract_siteId_contractId": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "u+d83e_u+dd2a": `/🤪`, + "u+d83e_u+dd2a_emoji_u+2b50": (emoji: (string | number), params?: { }) => { + return `/🤪/${emoji}/⭐` + }, + "x+2e_well_known": `/.well-known`, "a_rest_z": (rest: (string | number)[], params?: { }) => { return `/a/${rest?.join('/')}/z` }, @@ -85,6 +90,7 @@ export const SERVERS = { "GET site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET x+2e_well_known": `/.well-known`, "GET api_graphql": `/api/graphql`, "POST api_graphql": `/api/graphql`, "GET data_errors_locale_json": (locale: (string | number), params?: { }) => { @@ -124,9 +130,9 @@ export const ACTIONS = { * LINKS */ export const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (str: (string | number), params?: { s?: (number), d?: ("retro" | "identicon") }) => { params = params ?? {} @@ -245,9 +251,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'lang' | 'id', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'lang' | 'id', 'match_id_int': 'lang' | 'id', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } - SERVERS: { 'GET server_func_get': never, 'GET server_func_get_and': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' } + PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'lang' | 'id', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'lang' | 'id', 'match_id_int': 'lang' | 'id', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'u+d83e_u+dd2a': never, 'u+d83e_u+dd2a_emoji_u+2b50': 'emoji', 'x+2e_well_known': never, 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } + SERVERS: { 'GET server_func_get': never, 'GET server_func_get_and': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET x+2e_well_known': never, 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' } ACTIONS: { 'default contract_id': 'lang' | 'id', 'create site': 'lang', 'u-p-d-a-t-e site': 'lang', 'update site_id': 'lang' | 'id', 'delete site_id': 'lang' | 'id', 'noSatisfies site_contract': 'lang', 'send site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id.ts index 8b8137d9..c3ec3aa9 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id.ts @@ -52,6 +52,11 @@ const PAGES = { "/[[lang]]/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "/[u+d83e][u+dd2a]": `/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (params: { emoji: (string | number) }) => { + return `/🤪/${params['emoji']}/⭐` + }, + "/[x+2e]well-known": `/.well-known`, "/a/[...rest]/z": (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` }, @@ -86,6 +91,7 @@ const SERVERS = { "GET /[[lang]]/site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `/.well-known`, "GET /api/graphql": `/api/graphql`, "POST /api/graphql": `/api/graphql`, "GET /data/errors/[locale].json": (params: { locale: (string | number) }) => { @@ -125,9 +131,9 @@ const ACTIONS = { * LINKS */ const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (params: { str: (string | number), s?: (number), d?: ("retro" | "identicon") }) => { params['s'] = params['s'] ?? 75; @@ -245,9 +251,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/(rootGroup)': never, '/(rootGroup)/base': never, '/(rootGroup)/base/(group-optional)/[[all]]': 'all', '/(rootGroup)/subGroup': never, '/(rootGroup)/subGroup/(anotherSub)/user': never, '/(rootGroup)/subGroup2': never, '/[[lang]]/contract': 'lang', '/[[lang]]/contract/[id]': 'id' | 'lang', '/[[lang]]/gp/(logged)/one': 'lang', '/[[lang]]/gp/(public)/two': 'lang', '/[[lang]]/main': 'lang', '/[[lang]]/match/[id=ab]': 'id' | 'lang', '/[[lang]]/match/[id=int]': 'id' | 'lang', '/[[lang]]/site': 'lang', '/[[lang]]/site/[id]': 'lang' | 'id', '/[[lang]]/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/(layVerySpecial)/normal': never, '/lay/(layVerySpecial)/root-layout': never, '/lay/(layVerySpecial)/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /(servers)/server_func_get': never, 'GET /(servers)/server_func_get_and_': never, 'POST /(servers)/server_func_post': never, 'GET /[[lang]]/contract': 'lang', 'POST /[[lang]]/contract': 'lang', 'GET /[[lang]]/site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/(rootGroup)': never, '/(rootGroup)/base': never, '/(rootGroup)/base/(group-optional)/[[all]]': 'all', '/(rootGroup)/subGroup': never, '/(rootGroup)/subGroup/(anotherSub)/user': never, '/(rootGroup)/subGroup2': never, '/[[lang]]/contract': 'lang', '/[[lang]]/contract/[id]': 'id' | 'lang', '/[[lang]]/gp/(logged)/one': 'lang', '/[[lang]]/gp/(public)/two': 'lang', '/[[lang]]/main': 'lang', '/[[lang]]/match/[id=ab]': 'id' | 'lang', '/[[lang]]/match/[id=int]': 'id' | 'lang', '/[[lang]]/site': 'lang', '/[[lang]]/site/[id]': 'lang' | 'id', '/[[lang]]/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/(layVerySpecial)/normal': never, '/lay/(layVerySpecial)/root-layout': never, '/lay/(layVerySpecial)/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /(servers)/server_func_get': never, 'GET /(servers)/server_func_get_and_': never, 'POST /(servers)/server_func_post': never, 'GET /[[lang]]/contract': 'lang', 'POST /[[lang]]/contract': 'lang', 'GET /[[lang]]/site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /[[lang]]/contract/[id]': 'id' | 'lang', 'create /[[lang]]/site': 'lang', 'u-p-d-a-t-e /[[lang]]/site': 'lang', 'update /[[lang]]/site/[id]': 'id' | 'lang', 'delete /[[lang]]/site/[id]': 'id' | 'lang', 'noSatisfies /[[lang]]/site_contract': 'lang', 'send /[[lang]]/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id_shortened.ts index 99ac56b5..5889a589 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id_shortened.ts @@ -52,6 +52,11 @@ const PAGES = { "/[[lang]]/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "/[u+d83e][u+dd2a]": `/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (emoji: (string | number), params?: { }) => { + return `/🤪/${emoji}/⭐` + }, + "/[x+2e]well-known": `/.well-known`, "/a/[...rest]/z": (rest: (string | number)[], params?: { }) => { return `/a/${rest?.join('/')}/z` }, @@ -86,6 +91,7 @@ const SERVERS = { "GET /[[lang]]/site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `/.well-known`, "GET /api/graphql": `/api/graphql`, "POST /api/graphql": `/api/graphql`, "GET /data/errors/[locale].json": (locale: (string | number), params?: { }) => { @@ -125,9 +131,9 @@ const ACTIONS = { * LINKS */ const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (str: (string | number), params?: { s?: (number), d?: ("retro" | "identicon") }) => { params = params ?? {} @@ -246,9 +252,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/(rootGroup)': never, '/(rootGroup)/base': never, '/(rootGroup)/base/(group-optional)/[[all]]': 'all', '/(rootGroup)/subGroup': never, '/(rootGroup)/subGroup/(anotherSub)/user': never, '/(rootGroup)/subGroup2': never, '/[[lang]]/contract': 'lang', '/[[lang]]/contract/[id]': 'lang' | 'id', '/[[lang]]/gp/(logged)/one': 'lang', '/[[lang]]/gp/(public)/two': 'lang', '/[[lang]]/main': 'lang', '/[[lang]]/match/[id=ab]': 'lang' | 'id', '/[[lang]]/match/[id=int]': 'lang' | 'id', '/[[lang]]/site': 'lang', '/[[lang]]/site/[id]': 'lang' | 'id', '/[[lang]]/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/(layVerySpecial)/normal': never, '/lay/(layVerySpecial)/root-layout': never, '/lay/(layVerySpecial)/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /(servers)/server_func_get': never, 'GET /(servers)/server_func_get_and_': never, 'POST /(servers)/server_func_post': never, 'GET /[[lang]]/contract': 'lang', 'POST /[[lang]]/contract': 'lang', 'GET /[[lang]]/site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/(rootGroup)': never, '/(rootGroup)/base': never, '/(rootGroup)/base/(group-optional)/[[all]]': 'all', '/(rootGroup)/subGroup': never, '/(rootGroup)/subGroup/(anotherSub)/user': never, '/(rootGroup)/subGroup2': never, '/[[lang]]/contract': 'lang', '/[[lang]]/contract/[id]': 'lang' | 'id', '/[[lang]]/gp/(logged)/one': 'lang', '/[[lang]]/gp/(public)/two': 'lang', '/[[lang]]/main': 'lang', '/[[lang]]/match/[id=ab]': 'lang' | 'id', '/[[lang]]/match/[id=int]': 'lang' | 'id', '/[[lang]]/site': 'lang', '/[[lang]]/site/[id]': 'lang' | 'id', '/[[lang]]/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/(layVerySpecial)/normal': never, '/lay/(layVerySpecial)/root-layout': never, '/lay/(layVerySpecial)/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /(servers)/server_func_get': never, 'GET /(servers)/server_func_get_and_': never, 'POST /(servers)/server_func_post': never, 'GET /[[lang]]/contract': 'lang', 'POST /[[lang]]/contract': 'lang', 'GET /[[lang]]/site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /[[lang]]/contract/[id]': 'lang' | 'id', 'create /[[lang]]/site': 'lang', 'u-p-d-a-t-e /[[lang]]/site': 'lang', 'update /[[lang]]/site/[id]': 'lang' | 'id', 'delete /[[lang]]/site/[id]': 'lang' | 'id', 'noSatisfies /[[lang]]/site_contract': 'lang', 'send /[[lang]]/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path.ts index 23f94a42..0c312be8 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path.ts @@ -51,6 +51,11 @@ const PAGES = { "/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "/[u+d83e][u+dd2a]": `/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (params: { emoji: (string | number) }) => { + return `/🤪/${params['emoji']}/⭐` + }, + "/[x+2e]well-known": `/.well-known`, "/a/[...rest]/z": (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` }, @@ -85,6 +90,7 @@ const SERVERS = { "GET /site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `/.well-known`, "GET /api/graphql": `/api/graphql`, "POST /api/graphql": `/api/graphql`, "GET /data/errors/[locale].json": (params: { locale: (string | number) }) => { @@ -124,9 +130,9 @@ const ACTIONS = { * LINKS */ const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (params: { str: (string | number), s?: (number), d?: ("retro" | "identicon") }) => { params['s'] = params['s'] ?? 75; @@ -244,9 +250,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /contract/[id]': 'id' | 'lang', 'create /site': 'lang', 'u-p-d-a-t-e /site': 'lang', 'update /site/[id]': 'id' | 'lang', 'delete /site/[id]': 'id' | 'lang', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path_shortened.ts index 7e4e9815..7b46258a 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path_shortened.ts @@ -51,6 +51,11 @@ const PAGES = { "/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "/[u+d83e][u+dd2a]": `/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (emoji: (string | number), params?: { }) => { + return `/🤪/${emoji}/⭐` + }, + "/[x+2e]well-known": `/.well-known`, "/a/[...rest]/z": (rest: (string | number)[], params?: { }) => { return `/a/${rest?.join('/')}/z` }, @@ -85,6 +90,7 @@ const SERVERS = { "GET /site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `/.well-known`, "GET /api/graphql": `/api/graphql`, "POST /api/graphql": `/api/graphql`, "GET /data/errors/[locale].json": (locale: (string | number), params?: { }) => { @@ -124,9 +130,9 @@ const ACTIONS = { * LINKS */ const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (str: (string | number), params?: { s?: (number), d?: ("retro" | "identicon") }) => { params = params ?? {} @@ -245,9 +251,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'lang' | 'id', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'lang' | 'id', '/match/[id=int]': 'lang' | 'id', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'lang' | 'id', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'lang' | 'id', '/match/[id=int]': 'lang' | 'id', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /contract/[id]': 'lang' | 'id', 'create /site': 'lang', 'u-p-d-a-t-e /site': 'lang', 'update /site/[id]': 'lang' | 'id', 'delete /site/[id]': 'lang' | 'id', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol.ts index 6338a8de..cc00d97e 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol.ts @@ -51,6 +51,11 @@ const PAGES = { "site_contract_siteId_contractId": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "u+d83e_u+dd2a": `/🤪`, + "u+d83e_u+dd2a_emoji_u+2b50": (params: { emoji: (string | number) }) => { + return `/🤪/${params['emoji']}/⭐` + }, + "x+2e_well_known": `/.well-known`, "a_rest_z": (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` }, @@ -85,6 +90,7 @@ const SERVERS = { "GET site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET x+2e_well_known": `/.well-known`, "GET api_graphql": `/api/graphql`, "POST api_graphql": `/api/graphql`, "GET data_errors_locale_json": (params: { locale: (string | number) }) => { @@ -124,9 +130,9 @@ const ACTIONS = { * LINKS */ const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (params: { str: (string | number), s?: (number), d?: ("retro" | "identicon") }) => { params['s'] = params['s'] ?? 75; @@ -244,9 +250,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } - SERVERS: { 'GET server_func_get': never, 'GET server_func_get_and': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' } + PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'u+d83e_u+dd2a': never, 'u+d83e_u+dd2a_emoji_u+2b50': 'emoji', 'x+2e_well_known': never, 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } + SERVERS: { 'GET server_func_get': never, 'GET server_func_get_and': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET x+2e_well_known': never, 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' } ACTIONS: { 'default contract_id': 'id' | 'lang', 'create site': 'lang', 'u-p-d-a-t-e site': 'lang', 'update site_id': 'id' | 'lang', 'delete site_id': 'id' | 'lang', 'noSatisfies site_contract': 'lang', 'send site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol_shortened.ts index 5c12f603..dbfc8d8e 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol_shortened.ts @@ -51,6 +51,11 @@ const PAGES = { "site_contract_siteId_contractId": (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` }, + "u+d83e_u+dd2a": `/🤪`, + "u+d83e_u+dd2a_emoji_u+2b50": (emoji: (string | number), params?: { }) => { + return `/🤪/${emoji}/⭐` + }, + "x+2e_well_known": `/.well-known`, "a_rest_z": (rest: (string | number)[], params?: { }) => { return `/a/${rest?.join('/')}/z` }, @@ -85,6 +90,7 @@ const SERVERS = { "GET site": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET x+2e_well_known": `/.well-known`, "GET api_graphql": `/api/graphql`, "POST api_graphql": `/api/graphql`, "GET data_errors_locale_json": (locale: (string | number), params?: { }) => { @@ -124,9 +130,9 @@ const ACTIONS = { * LINKS */ const LINKS = { - "twitter": `https://twitter.com/jycouet`, - "twitter_post": (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` + "bluesky": `https://bsky.app/profile/jyc.dev`, + "bluesky_post": (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` }, "gravatar": (str: (string | number), params?: { s?: (number), d?: ("retro" | "identicon") }) => { params = params ?? {} @@ -245,9 +251,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'lang' | 'id', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'lang' | 'id', 'match_id_int': 'lang' | 'id', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } - SERVERS: { 'GET server_func_get': never, 'GET server_func_get_and': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' } + PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'lang' | 'id', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'lang' | 'id', 'match_id_int': 'lang' | 'id', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'u+d83e_u+dd2a': never, 'u+d83e_u+dd2a_emoji_u+2b50': 'emoji', 'x+2e_well_known': never, 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } + SERVERS: { 'GET server_func_get': never, 'GET server_func_get_and': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET x+2e_well_known': never, 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' } ACTIONS: { 'default contract_id': 'lang' | 'id', 'create site': 'lang', 'u-p-d-a-t-e site': 'lang', 'update site_id': 'lang' | 'id', 'delete site_id': 'lang' | 'id', 'noSatisfies site_contract': 'lang', 'send site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables.ts index 1a4f7a5d..f7372e63 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables.ts @@ -50,6 +50,11 @@ export const PAGE_site_id = (params?: { lang?: ('fr' | 'hu' | undefined), id?: ( export const PAGE_site_contract_siteId_contractId = (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` } +export const PAGE_u_d83e_u_dd2a = `/🤪` +export const PAGE_u_d83e_u_dd2a_emoji_u_2b50 = (params: { emoji: (string | number) }) => { + return `/🤪/${params['emoji']}/⭐` +} +export const PAGE_x_2e_well_known = `/.well-known` export const PAGE_a_rest_z = (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` } @@ -86,6 +91,7 @@ export const SERVER_POST_contract = (params?: { lang?: ('fr' | 'en' | 'hu' | 'at export const SERVER_GET_site = (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` } +export const SERVER_GET_x_2e_well_known = `/.well-known` export const SERVER_GET_api_graphql = `/api/graphql` export const SERVER_POST_api_graphql = `/api/graphql` export const SERVER_GET_data_errors_locale_json = (params: { locale: (string | number) }) => { @@ -121,9 +127,9 @@ export const ACTION_send_site_contract_siteId_contractId = (params: { siteId: (s /** * LINKS */ -export const LINK_twitter = `https://twitter.com/jycouet` -export const LINK_twitter_post = (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` +export const LINK_bluesky = `https://bsky.app/profile/jyc.dev` +export const LINK_bluesky_post = (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` } export const LINK_gravatar = (params: { str: (string | number), s?: (number), d?: ("retro" | "identicon") }) => { params['s'] = params['s'] ?? 75; @@ -208,9 +214,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } - SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' } + PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'u+d83e_u+dd2a': never, 'u+d83e_u+dd2a_emoji_u+2b50': 'emoji', 'x+2e_well_known': never, 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } + SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_x+2e_well_known': never, 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' } ACTIONS: { 'default_contract_id': 'id' | 'lang', 'create_site': 'lang', 'u-p-d-a-t-e_site': 'lang', 'update_site_id': 'id' | 'lang', 'delete_site_id': 'id' | 'lang', 'noSatisfies_site_contract': 'lang', 'send_site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'ids': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'ids': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables_shortened.ts index e21261c3..2d4e17a0 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables_shortened.ts @@ -50,6 +50,11 @@ export const PAGE_site_id = (params?: { lang?: ('fr' | 'hu' | undefined), id?: ( export const PAGE_site_contract_siteId_contractId = (params: { siteId: (string | number), contractId: (string | number), lang?: ('fr' | 'en' | 'hu' | 'at' | string), limit?: (number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}${appendSp({ 'limit': params['limit'] })}` } +export const PAGE_u_d83e_u_dd2a = `/🤪` +export const PAGE_u_d83e_u_dd2a_emoji_u_2b50 = (emoji: (string | number), params?: { }) => { + return `/🤪/${emoji}/⭐` +} +export const PAGE_x_2e_well_known = `/.well-known` export const PAGE_a_rest_z = (rest: (string | number)[], params?: { }) => { return `/a/${rest?.join('/')}/z` } @@ -86,6 +91,7 @@ export const SERVER_POST_contract = (params?: { lang?: ('fr' | 'en' | 'hu' | 'at export const SERVER_GET_site = (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` } +export const SERVER_GET_x_2e_well_known = `/.well-known` export const SERVER_GET_api_graphql = `/api/graphql` export const SERVER_POST_api_graphql = `/api/graphql` export const SERVER_GET_data_errors_locale_json = (locale: (string | number), params?: { }) => { @@ -121,9 +127,9 @@ export const ACTION_send_site_contract_siteId_contractId = (params: { siteId: (s /** * LINKS */ -export const LINK_twitter = `https://twitter.com/jycouet` -export const LINK_twitter_post = (params: { name: (string | number), id: (string | number) }) => { - return `https://twitter.com/${params['name']}/status/${params['id']}` +export const LINK_bluesky = `https://bsky.app/profile/jyc.dev` +export const LINK_bluesky_post = (params: { did: (string | number), post_id: (string | number) }) => { + return `https://bsky.app/profile/${params['did']}/post/${params['post_id']}` } export const LINK_gravatar = (str: (string | number), params?: { s?: (number), d?: ("retro" | "identicon") }) => { params = params ?? {} @@ -209,9 +215,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'lang' | 'id', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'lang' | 'id', 'match_id_int': 'lang' | 'id', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } - SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' } + PAGES: { '_ROOT': never, 'base': 'all', 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'lang' | 'id', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'lang' | 'id', 'match_id_int': 'lang' | 'id', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'u+d83e_u+dd2a': never, 'u+d83e_u+dd2a_emoji_u+2b50': 'emoji', 'x+2e_well_known': never, 'a_rest_z': 'rest', 'anchors': never, 'anchors_id': 'id', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'md': never, 'sp': never, 'spArray': never, 'spArrayComma': never } + SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_x+2e_well_known': never, 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' } ACTIONS: { 'default_contract_id': 'lang' | 'id', 'create_site': 'lang', 'u-p-d-a-t-e_site': 'lang', 'update_site_id': 'lang' | 'id', 'delete_site_id': 'lang' | 'id', 'noSatisfies_site_contract': 'lang', 'send_site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' } - LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' } - Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'rest': never, 'hash': never, 'ids': never, 'locale': never, 'extra': never, 'name': never, 'str': never, 's': never, 'd': never } + LINKS: { 'bluesky': never, 'bluesky_post': 'did' | 'post_id', 'gravatar': 'str' } + Params: { 'all': never, 'first': never, 'lang': never, 'id': never, 'limit': never, 'demo': never, 'da-sh': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'hash': never, 'ids': never, 'locale': never, 'extra': never, 'did': never, 'post_id': never, 'str': never, 's': never, 'd': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_hash.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_hash.ts index 482ec8af..8da523de 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_hash.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_hash.ts @@ -46,6 +46,11 @@ const PAGES = { "/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: (string | number) }) => { return `#${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}` }, + "/[u+d83e][u+dd2a]": `#/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (params: { emoji: (string | number) }) => { + return `#/🤪/${params['emoji']}/⭐` + }, + "/[x+2e]well-known": `#/.well-known`, "/a/[...rest]/z": (params: { rest: (string | number)[] }) => { return `#/a/${params['rest']?.join('/')}/z` }, @@ -78,6 +83,7 @@ const SERVERS = { "GET /site": (params?: { lang?: (string | number) }) => { return `#${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `#/.well-known`, "GET /api/graphql": `#/api/graphql`, "POST /api/graphql": `#/api/graphql`, "GET /data/errors/[locale].json": (params: { locale: (string | number) }) => { @@ -228,9 +234,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'id' | 'lang', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'id' | 'lang', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /contract/[id]': 'id' | 'lang', 'create /site': 'lang', 'u-p-d-a-t-e /site': 'lang', 'update /site/[id]': 'id' | 'lang', 'delete /site/[id]': 'id' | 'lang', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } LINKS: Record - Params: { 'all': never, 'lang': never, 'id': never, 'siteId': never, 'contractId': never, 'rest': never, 'locale': never } + Params: { 'all': never, 'lang': never, 'id': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'locale': never } } diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_post-update.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_post-update.ts index d3bf2c35..cb484e78 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_post-update.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_post-update.ts @@ -46,6 +46,11 @@ const PAGES = { "/site_contract/[siteId]-[contractId]": (params: { siteId: (string | number), contractId: (string | number), lang?: (string | number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site_contract/${params['siteId']}-${params['contractId']}` }, + "/[u+d83e][u+dd2a]": `/🤪`, + "/[u+d83e][u+dd2a]/[emoji]/[u+2b50]": (params: { emoji: (string | number) }) => { + return `/🤪/${params['emoji']}/⭐` + }, + "/[x+2e]well-known": `/.well-known`, "/a/[...rest]/z": (params: { rest: (string | number)[] }) => { return `/a/${params['rest']?.join('/')}/z` }, @@ -78,6 +83,7 @@ const SERVERS = { "GET /site": (params?: { lang?: (string | number) }) => { return `${params?.['lang'] ? `/${params?.['lang']}`: ''}/site` }, + "GET /[x+2e]well-known": `/.well-known`, "GET /api/graphql": `/api/graphql`, "POST /api/graphql": `/api/graphql`, "GET /data/errors/[locale].json": (params: { locale: (string | number) }) => { @@ -228,9 +234,9 @@ type ExtractParamType any> = ExtractFnPredicate ext * ``` */ export type KIT_ROUTES = { - PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'id' | 'lang', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } - SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } + PAGES: { '/': never, '/base': 'all', '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'id' | 'lang', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/[u+d83e][u+dd2a]': never, '/[u+d83e][u+dd2a]/[emoji]/[u+2b50]': 'emoji', '/[x+2e]well-known': never, '/a/[...rest]/z': 'rest', '/anchors': never, '/anchors/[id]': 'id', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/md': never, '/sp': never, '/spArray': never, '/spArrayComma': never } + SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /[x+2e]well-known': never, 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' } ACTIONS: { 'default /contract/[id]': 'id' | 'lang', 'create /site': 'lang', 'u-p-d-a-t-e /site': 'lang', 'update /site/[id]': 'id' | 'lang', 'delete /site/[id]': 'id' | 'lang', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } LINKS: Record - Params: { 'all': never, 'lang': never, 'id': never, 'siteId': never, 'contractId': never, 'rest': never, 'locale': never } + Params: { 'all': never, 'lang': never, 'id': never, 'siteId': never, 'contractId': never, 'emoji': never, 'rest': never, 'locale': never } } diff --git a/packages/vite-plugin-kit-routes/vite.config.ts b/packages/vite-plugin-kit-routes/vite.config.ts index e3f3d8e9..2330e3ec 100644 --- a/packages/vite-plugin-kit-routes/vite.config.ts +++ b/packages/vite-plugin-kit-routes/vite.config.ts @@ -110,10 +110,10 @@ export const _kitRoutesConfig: Options = { }, LINKS: { // reference to a hardcoded link - twitter: 'https://twitter.com/jycouet', + bluesky: 'https://bsky.app/profile/jyc.dev', // reference to link with params! - twitter_post: 'https://twitter.com/[name]/status/[id]', + bluesky_post: 'https://bsky.app/profile/[did]/post/[post_id]', // reference to link with params & search params! gravatar: { -- 2.51.2