@okam/directus-next 2.1.1 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ ## 2.2.0 (2026-04-06)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **next-component:** allow formatting Link locale via i18n config ([#460](https://github.com/OKAMca/stack/pull/460))
6
+ - **directus-next:** getPageSettings props accepts gql client ([a6d983fa](https://github.com/OKAMca/stack/commit/a6d983fa))
7
+
8
+ ### 🩹 Fixes
9
+
10
+ - **directus-next:** getPageSettings also allows custom query fn ([c76c5163](https://github.com/OKAMca/stack/commit/c76c5163))
11
+ - **directus-next:** remove props client memoization to match config arg ([fb169f6a](https://github.com/OKAMca/stack/commit/fb169f6a))
12
+
13
+ ### 🧱 Updated Dependencies
14
+
15
+ - Updated core-lib to 2.1.0
16
+ - Updated next-component to 2.1.0
17
+ - Updated directus-node to 1.1.0
18
+ - Updated directus-query to 2.1.0
19
+
20
+ ### ❤️ Thank You
21
+
22
+ - Pierre-Olivier Clerson @poclerson
23
+ - poclerson
24
+
1
25
  ## 2.1.1 (2026-03-26)
2
26
 
3
27
  ### 🚀 Features
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const router = require("./router-DorBYKUX.js");
3
+ const router = require("./router-gCcQYkLJ.js");
4
4
  const headers = require("next/headers");
5
5
  const navigation = require("next/navigation");
6
6
  const radashi = require("radashi");
@@ -36,6 +36,7 @@ function getJsonErrorResponse(data, status) {
36
36
  headers: headers2
37
37
  });
38
38
  }
39
+ const TEMPLATE_VAR_RE = /\{\{([a-z]+)\}\}/gi;
39
40
  function jsonStringsArraySchema(message, code) {
40
41
  return zod__namespace.string().transform((val, ctx) => {
41
42
  try {
@@ -97,7 +98,7 @@ function parseDraftParams(url, expectedSecret) {
97
98
  }
98
99
  function getPathFromRoute(routeUrl, url, index = 0) {
99
100
  const { searchParams } = new URL(url);
100
- const matches = [...routeUrl.matchAll(/\{\{([a-z]+)\}\}/gi)];
101
+ const matches = [...routeUrl.matchAll(TEMPLATE_VAR_RE)];
101
102
  const map = {};
102
103
  matches.forEach((match) => {
103
104
  const key = match[1] ?? "";
@@ -202,13 +203,18 @@ async function handleRedirectsRoute({
202
203
  const { redirects, rewrites } = await edge.fetchRedirectsData({ graphqlEndpoint, graphqlApiKey, limit }, init);
203
204
  return new Response(JSON.stringify({ redirects, rewrites }), { status: 200 });
204
205
  }
206
+ var DirectusRouteLocalePrefix = /* @__PURE__ */ ((DirectusRouteLocalePrefix2) => {
207
+ DirectusRouteLocalePrefix2["AsNeeded"] = "as-needed";
208
+ DirectusRouteLocalePrefix2["Always"] = "always";
209
+ return DirectusRouteLocalePrefix2;
210
+ })(DirectusRouteLocalePrefix || {});
205
211
  exports.DirectusNextLogger = router.logger;
206
- exports.DirectusRouteLocalePrefix = router.DirectusRouteLocalePrefix;
207
212
  exports.directusRouteRouter = router.directusRouteRouter;
208
213
  exports.getApiRouteUrlDefault = router.getApiRouteUrlDefault;
209
214
  exports.getRedirectSecretDefault = router.getRedirectSecretDefault;
210
215
  exports.getRedirectsRoute = router.getRedirectsRoute;
211
216
  exports.handleRedirect = router.handleRedirect;
217
+ exports.DirectusRouteLocalePrefix = DirectusRouteLocalePrefix;
212
218
  exports.getDraftSecretDefault = getDraftSecretDefault;
213
219
  exports.getJsonErrorResponse = getJsonErrorResponse;
214
220
  exports.getPathFromRoute = getPathFromRoute;
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { g as getRedirectSecretDefault } from "./router-DC6WVUlz.mjs";
2
- import { l, D, d, a, b, h } from "./router-DC6WVUlz.mjs";
1
+ import { g as getRedirectSecretDefault } from "./router-CnD4Qckn.mjs";
2
+ import { l, d, a, b, h } from "./router-CnD4Qckn.mjs";
3
3
  import { draftMode } from "next/headers";
4
4
  import { redirect } from "next/navigation";
5
5
  import { template } from "radashi";
@@ -18,6 +18,7 @@ function getJsonErrorResponse(data, status) {
18
18
  headers
19
19
  });
20
20
  }
21
+ const TEMPLATE_VAR_RE = /\{\{([a-z]+)\}\}/gi;
21
22
  function jsonStringsArraySchema(message, code) {
22
23
  return zod.string().transform((val, ctx) => {
23
24
  try {
@@ -79,7 +80,7 @@ function parseDraftParams(url, expectedSecret) {
79
80
  }
80
81
  function getPathFromRoute(routeUrl, url, index = 0) {
81
82
  const { searchParams } = new URL(url);
82
- const matches = [...routeUrl.matchAll(/\{\{([a-z]+)\}\}/gi)];
83
+ const matches = [...routeUrl.matchAll(TEMPLATE_VAR_RE)];
83
84
  const map = {};
84
85
  matches.forEach((match) => {
85
86
  const key = match[1] ?? "";
@@ -184,9 +185,14 @@ async function handleRedirectsRoute({
184
185
  const { redirects, rewrites } = await fetchRedirectsData({ graphqlEndpoint, graphqlApiKey, limit }, init);
185
186
  return new Response(JSON.stringify({ redirects, rewrites }), { status: 200 });
186
187
  }
188
+ var DirectusRouteLocalePrefix = /* @__PURE__ */ ((DirectusRouteLocalePrefix2) => {
189
+ DirectusRouteLocalePrefix2["AsNeeded"] = "as-needed";
190
+ DirectusRouteLocalePrefix2["Always"] = "always";
191
+ return DirectusRouteLocalePrefix2;
192
+ })(DirectusRouteLocalePrefix || {});
187
193
  export {
188
194
  l as DirectusNextLogger,
189
- D as DirectusRouteLocalePrefix,
195
+ DirectusRouteLocalePrefix,
190
196
  d as directusRouteRouter,
191
197
  a as getApiRouteUrlDefault,
192
198
  getDraftSecretDefault,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@okam/directus-next",
3
- "version": "2.1.1",
3
+ "version": "2.2.1",
4
4
  "repository": {
5
5
  "url": "https://github.com/OKAMca/stack.git"
6
6
  },
@@ -42,11 +42,11 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@graphql-typed-document-node/core": "3.2.0",
45
- "@okam/core-lib": "2.0.0",
46
- "@okam/directus-node": "1.0.0",
47
- "@okam/directus-query": "2.0.1",
45
+ "@okam/core-lib": "2.2.0",
46
+ "@okam/directus-node": "1.2.0",
47
+ "@okam/directus-query": "2.1.1",
48
48
  "@okam/logger": "1.1.0",
49
- "@okam/next-component": "2.1.0",
49
+ "@okam/next-component": "2.1.1",
50
50
  "graphql-request": "^7.1.2",
51
51
  "radashi": "^12.3.0",
52
52
  "server-only": "0.0.1",
@@ -1,3 +1,4 @@
1
+ import { LocalePrefix } from "@okam/next-component/server";
1
2
  import { NextResponse } from "next/server";
2
3
  import { capitalize, isEmpty } from "radashi";
3
4
  import { createLogger } from "@okam/logger";
@@ -88,11 +89,6 @@ async function handleRedirect(request, options = {}) {
88
89
  log(`${capitalize(type)}ing to ${url.toString()} with status ${status}`);
89
90
  return NextResponse[type](url, { status });
90
91
  }
91
- var DirectusRouteLocalePrefix = /* @__PURE__ */ ((DirectusRouteLocalePrefix2) => {
92
- DirectusRouteLocalePrefix2["AsNeeded"] = "as-needed";
93
- DirectusRouteLocalePrefix2["Always"] = "always";
94
- return DirectusRouteLocalePrefix2;
95
- })(DirectusRouteLocalePrefix || {});
96
92
  const query = `
97
93
  query Languages_code($filter: page_settings_translations_filter) {
98
94
  page_settings_translations(filter: $filter) {
@@ -195,11 +191,11 @@ async function directusRouteRouter(request, config, NextResponse$1 = NextRespons
195
191
  log(`PageSettings with id ${id} was found but is not associated with any locale.`, { id }, "warn");
196
192
  return NextResponse$1.next();
197
193
  }
198
- const { localeMap, collectionSettings, localePrefix = DirectusRouteLocalePrefix.Always, defaultLocale } = config;
194
+ const { localeMap, collectionSettings, localePrefix = LocalePrefix.Always, defaultLocale } = config;
199
195
  const mappedLocale = localeMap?.[directusLocale] || directusLocale;
200
196
  const isDirectusRouteLocalePrefixedMap = {
201
- [DirectusRouteLocalePrefix.Always]: true,
202
- [DirectusRouteLocalePrefix.AsNeeded]: directusLocale !== defaultLocale
197
+ [LocalePrefix.Always]: true,
198
+ [LocalePrefix.AsNeeded]: directusLocale !== defaultLocale
203
199
  };
204
200
  const isDirectusRouteLocalePrefixed = isDirectusRouteLocalePrefixedMap[localePrefix];
205
201
  const displayedLocale = isDirectusRouteLocalePrefixed ? `/${mappedLocale}` : "";
@@ -217,7 +213,6 @@ async function directusRouteRouter(request, config, NextResponse$1 = NextRespons
217
213
  return NextResponse$1.rewrite(url);
218
214
  }
219
215
  export {
220
- DirectusRouteLocalePrefix as D,
221
216
  getApiRouteUrlDefault as a,
222
217
  getRedirectsRoute as b,
223
218
  log as c,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ const server$1 = require("@okam/next-component/server");
2
3
  const server = require("next/server");
3
4
  const radashi = require("radashi");
4
5
  const logger$1 = require("@okam/logger");
@@ -89,11 +90,6 @@ async function handleRedirect(request, options = {}) {
89
90
  log(`${radashi.capitalize(type)}ing to ${url.toString()} with status ${status}`);
90
91
  return server.NextResponse[type](url, { status });
91
92
  }
92
- var DirectusRouteLocalePrefix = /* @__PURE__ */ ((DirectusRouteLocalePrefix2) => {
93
- DirectusRouteLocalePrefix2["AsNeeded"] = "as-needed";
94
- DirectusRouteLocalePrefix2["Always"] = "always";
95
- return DirectusRouteLocalePrefix2;
96
- })(DirectusRouteLocalePrefix || {});
97
93
  const query = `
98
94
  query Languages_code($filter: page_settings_translations_filter) {
99
95
  page_settings_translations(filter: $filter) {
@@ -196,11 +192,11 @@ async function directusRouteRouter(request, config, NextResponse = server.NextRe
196
192
  log(`PageSettings with id ${id} was found but is not associated with any locale.`, { id }, "warn");
197
193
  return NextResponse.next();
198
194
  }
199
- const { localeMap, collectionSettings, localePrefix = DirectusRouteLocalePrefix.Always, defaultLocale } = config;
195
+ const { localeMap, collectionSettings, localePrefix = server$1.LocalePrefix.Always, defaultLocale } = config;
200
196
  const mappedLocale = localeMap?.[directusLocale] || directusLocale;
201
197
  const isDirectusRouteLocalePrefixedMap = {
202
- [DirectusRouteLocalePrefix.Always]: true,
203
- [DirectusRouteLocalePrefix.AsNeeded]: directusLocale !== defaultLocale
198
+ [server$1.LocalePrefix.Always]: true,
199
+ [server$1.LocalePrefix.AsNeeded]: directusLocale !== defaultLocale
204
200
  };
205
201
  const isDirectusRouteLocalePrefixed = isDirectusRouteLocalePrefixedMap[localePrefix];
206
202
  const displayedLocale = isDirectusRouteLocalePrefixed ? `/${mappedLocale}` : "";
@@ -217,7 +213,6 @@ async function directusRouteRouter(request, config, NextResponse = server.NextRe
217
213
  log("Rewriting to URL:", url.toString());
218
214
  return NextResponse.rewrite(url);
219
215
  }
220
- exports.DirectusRouteLocalePrefix = DirectusRouteLocalePrefix;
221
216
  exports.directusRouteRouter = directusRouteRouter;
222
217
  exports.getApiRouteUrlDefault = getApiRouteUrlDefault;
223
218
  exports.getRedirectSecretDefault = getRedirectSecretDefault;
package/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  require("server-only");
2
2
  "use strict";
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
- const router = require("./router-DorBYKUX.js");
4
+ const router = require("./router-gCcQYkLJ.js");
5
5
  const directusQuery = require("@okam/directus-query");
6
6
  const radashi = require("radashi");
7
7
  const server = require("@okam/next-component/server");
package/server.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import "server-only";
2
- import { c as log } from "./router-DC6WVUlz.mjs";
3
- import { d } from "./router-DC6WVUlz.mjs";
2
+ import { c as log } from "./router-CnD4Qckn.mjs";
3
+ import { d } from "./router-CnD4Qckn.mjs";
4
4
  import { queryGql, defaultGraphqlRequestClient } from "@okam/directus-query";
5
5
  import { isEqual, get, invert } from "radashi";
6
6
  import { createServerContext } from "@okam/next-component/server";
@@ -1,3 +1,4 @@
1
+ import { LocalePrefix } from '@okam/next-component/server';
1
2
  export interface TDirectusRouteRedirectsModule {
2
3
  /**
3
4
  * @default process.env.NEXT_API_REDIRECT_SECRET
@@ -12,6 +13,10 @@ export interface TDirectusRouteRedirectsModule {
12
13
  */
13
14
  apiRoute?: string;
14
15
  }
16
+ /**
17
+ * @deprecated
18
+ * Use `LocalePrefix` from `@okam/next-component` instead.
19
+ */
15
20
  export declare enum DirectusRouteLocalePrefix {
16
21
  /**
17
22
  * The pathname will be prefixed with the locale only when it is not the default locale
@@ -66,16 +71,10 @@ export declare enum DirectusRouteLocalePrefix {
66
71
  }
67
72
  export type TDirectusRouteI18n<Locales extends string> = {
68
73
  defaultLocale: Locales;
69
- /**
70
- * {@link DirectusRouteLocalePrefix}
71
- */
72
- localePrefix: `${DirectusRouteLocalePrefix.AsNeeded}`;
74
+ localePrefix: `${LocalePrefix.AsNeeded}`;
73
75
  } | {
74
76
  defaultLocale?: Locales;
75
- /**
76
- * {@link DirectusRouteLocalePrefix}
77
- */
78
- localePrefix?: `${DirectusRouteLocalePrefix.Always}` | undefined;
77
+ localePrefix?: `${LocalePrefix.Always}` | undefined;
79
78
  };
80
79
  export type TDirectusRouteConfig<Locales extends string = string> = {
81
80
  localeMap?: Record<Locales, string>;