@opinly/next 0.1.15 → 0.1.16

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/dist/index.cjs CHANGED
@@ -16,8 +16,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
16
16
  var index_exports = {};
17
17
  module.exports = __toCommonJS(index_exports);
18
18
  __reExport(index_exports, require("./components/opinly-blog"), module.exports);
19
+ __reExport(index_exports, require("./utils/with-opinly-config"), module.exports);
19
20
  // Annotate the CommonJS export names for ESM import in node:
20
21
  0 && (module.exports = {
21
- ...require("./components/opinly-blog")
22
+ ...require("./components/opinly-blog"),
23
+ ...require("./utils/with-opinly-config")
22
24
  });
23
25
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./components/opinly-blog\";\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,qCAAd;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./components/opinly-blog\";\n\nexport * from \"./utils/with-opinly-config\";\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,qCAAd;AAEA,0BAAc,uCAFd;","names":[]}
package/dist/index.d.cts CHANGED
@@ -1,3 +1,6 @@
1
1
  export { OpinlyBlog } from './components/opinly-blog.cjs';
2
+ export { withOpinlyConfig } from './utils/with-opinly-config.cjs';
2
3
  import 'react/jsx-runtime';
3
4
  import '@opinly/backend';
5
+ import 'next';
6
+ import 'zod';
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  export { OpinlyBlog } from './components/opinly-blog.js';
2
+ export { withOpinlyConfig } from './utils/with-opinly-config.js';
2
3
  import 'react/jsx-runtime';
3
4
  import '@opinly/backend';
5
+ import 'next';
6
+ import 'zod';
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./components/opinly-blog";
2
+ export * from "./utils/with-opinly-config";
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./components/opinly-blog\";\n"],"mappings":"AAAA,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./components/opinly-blog\";\n\nexport * from \"./utils/with-opinly-config\";\n"],"mappings":"AAAA,cAAc;AAEd,cAAc;","names":[]}
@@ -27,15 +27,9 @@ const opinlyEnvVars = {
27
27
  OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX,
28
28
  OPINLY_SITE_URL: process.env.OPINLY_SITE_URL,
29
29
  OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX,
30
- OPINLY_CDN_URL: process.env.OPINLY_CDN_URL,
31
30
  OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME,
32
31
  OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES
33
32
  };
34
- Object.entries(opinlyEnvVars).forEach(([key, value]) => {
35
- if (!value) {
36
- throw new Error(`OPINLY ERROR: env var ${key} is not set`);
37
- }
38
- });
39
33
  let opinlyConfig = {
40
34
  cdnUrl: process.env.OPINLY_CDN_URL || "https://cdn.opinly.ai",
41
35
  siteUrl: process.env.OPINLY_SITE_URL,
@@ -44,7 +38,7 @@ let opinlyConfig = {
44
38
  blogPrefix: process.env.OPINLY_BLOG_PREFIX,
45
39
  blogUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_BLOG_PREFIX}`,
46
40
  siteName: process.env.OPINLY_SITE_NAME,
47
- unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === "true"
41
+ unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === "true" ? true : void 0
48
42
  };
49
43
  function setOpinlyConfig(newConfig) {
50
44
  opinlyConfig = { ...opinlyConfig, ...newConfig };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/sdk-config.ts"],"sourcesContent":["const siteUrl = process.env.OPINLY_SITE_URL;\n\nconst opinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX as string,\n OPINLY_SITE_URL: process.env.OPINLY_SITE_URL as string,\n OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX as string,\n OPINLY_CDN_URL: process.env.OPINLY_CDN_URL as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES as string,\n};\n\nObject.entries(opinlyEnvVars).forEach(([key, value]) => {\n if (!value) {\n throw new Error(`OPINLY ERROR: env var ${key} is not set`);\n }\n});\n\nexport let opinlyConfig: {\n cdnUrl: string;\n imagesPrefix: string;\n imagesUrl: string;\n siteUrl: string;\n blogPrefix: string;\n blogUrl: string;\n siteName: string;\n unoptimizedImages: boolean;\n} = {\n cdnUrl: process.env.OPINLY_CDN_URL || \"https://cdn.opinly.ai\",\n siteUrl: process.env.OPINLY_SITE_URL as string,\n imagesPrefix: process.env.OPINLY_IMAGES_PREFIX as string,\n imagesUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_IMAGES_PREFIX as string}`,\n blogPrefix: process.env.OPINLY_BLOG_PREFIX as string,\n blogUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_BLOG_PREFIX as string}`,\n siteName: process.env.OPINLY_SITE_NAME as string,\n unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === \"true\",\n};\n\nexport function setOpinlyConfig(newConfig: typeof opinlyConfig) {\n opinlyConfig = { ...opinlyConfig, ...newConfig };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,UAAU,QAAQ,IAAI;AAE5B,MAAM,gBAAgB;AAAA,EACpB,sBAAsB,QAAQ,IAAI;AAAA,EAClC,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,oBAAoB,QAAQ,IAAI;AAAA,EAChC,gBAAgB,QAAQ,IAAI;AAAA,EAC5B,kBAAkB,QAAQ,IAAI;AAAA,EAC9B,2BAA2B,QAAQ,IAAI;AACzC;AAEA,OAAO,QAAQ,aAAa,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACtD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,yBAAyB,GAAG,aAAa;AAAA,EAC3D;AACF,CAAC;AAEM,IAAI,eASP;AAAA,EACF,QAAQ,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,QAAQ,IAAI;AAAA,EACrB,cAAc,QAAQ,IAAI;AAAA,EAC1B,WAAW,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,oBAA8B;AAAA,EAChG,YAAY,QAAQ,IAAI;AAAA,EACxB,SAAS,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,kBAA4B;AAAA,EAC5F,UAAU,QAAQ,IAAI;AAAA,EACtB,mBAAmB,QAAQ,IAAI,8BAA8B;AAC/D;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/sdk-config.ts"],"sourcesContent":["const siteUrl = process.env.OPINLY_SITE_URL;\n\nconst opinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX as string,\n OPINLY_SITE_URL: process.env.OPINLY_SITE_URL as string,\n OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES as\n | string\n | undefined,\n};\n\nexport type OpinlyEnvVars = typeof opinlyEnvVars;\n\nexport let opinlyConfig: {\n cdnUrl: string;\n imagesPrefix: string;\n imagesUrl: string;\n siteUrl: string;\n blogPrefix: string;\n blogUrl: string;\n siteName: string;\n unoptimizedImages?: boolean;\n} = {\n cdnUrl: process.env.OPINLY_CDN_URL || \"https://cdn.opinly.ai\",\n siteUrl: process.env.OPINLY_SITE_URL as string,\n imagesPrefix: process.env.OPINLY_IMAGES_PREFIX as string,\n imagesUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_IMAGES_PREFIX as string}`,\n blogPrefix: process.env.OPINLY_BLOG_PREFIX as string,\n blogUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_BLOG_PREFIX as string}`,\n siteName: process.env.OPINLY_SITE_NAME as string,\n unoptimizedImages:\n process.env.OPINLY_UNOPTIMIZED_IMAGES === \"true\" ? true : undefined,\n};\n\nexport function setOpinlyConfig(newConfig: typeof opinlyConfig) {\n opinlyConfig = { ...opinlyConfig, ...newConfig };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,UAAU,QAAQ,IAAI;AAE5B,MAAM,gBAAgB;AAAA,EACpB,sBAAsB,QAAQ,IAAI;AAAA,EAClC,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,oBAAoB,QAAQ,IAAI;AAAA,EAChC,kBAAkB,QAAQ,IAAI;AAAA,EAC9B,2BAA2B,QAAQ,IAAI;AAGzC;AAIO,IAAI,eASP;AAAA,EACF,QAAQ,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,QAAQ,IAAI;AAAA,EACrB,cAAc,QAAQ,IAAI;AAAA,EAC1B,WAAW,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,oBAA8B;AAAA,EAChG,YAAY,QAAQ,IAAI;AAAA,EACxB,SAAS,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,kBAA4B;AAAA,EAC5F,UAAU,QAAQ,IAAI;AAAA,EACtB,mBACE,QAAQ,IAAI,8BAA8B,SAAS,OAAO;AAC9D;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}
@@ -1,3 +1,11 @@
1
+ declare const opinlyEnvVars: {
2
+ OPINLY_IMAGES_PREFIX: string;
3
+ OPINLY_SITE_URL: string;
4
+ OPINLY_BLOG_PREFIX: string;
5
+ OPINLY_SITE_NAME: string;
6
+ OPINLY_UNOPTIMIZED_IMAGES: string | undefined;
7
+ };
8
+ type OpinlyEnvVars = typeof opinlyEnvVars;
1
9
  declare let opinlyConfig: {
2
10
  cdnUrl: string;
3
11
  imagesPrefix: string;
@@ -6,8 +14,8 @@ declare let opinlyConfig: {
6
14
  blogPrefix: string;
7
15
  blogUrl: string;
8
16
  siteName: string;
9
- unoptimizedImages: boolean;
17
+ unoptimizedImages?: boolean;
10
18
  };
11
19
  declare function setOpinlyConfig(newConfig: typeof opinlyConfig): void;
12
20
 
13
- export { opinlyConfig, setOpinlyConfig };
21
+ export { type OpinlyEnvVars, opinlyConfig, setOpinlyConfig };
@@ -1,3 +1,11 @@
1
+ declare const opinlyEnvVars: {
2
+ OPINLY_IMAGES_PREFIX: string;
3
+ OPINLY_SITE_URL: string;
4
+ OPINLY_BLOG_PREFIX: string;
5
+ OPINLY_SITE_NAME: string;
6
+ OPINLY_UNOPTIMIZED_IMAGES: string | undefined;
7
+ };
8
+ type OpinlyEnvVars = typeof opinlyEnvVars;
1
9
  declare let opinlyConfig: {
2
10
  cdnUrl: string;
3
11
  imagesPrefix: string;
@@ -6,8 +14,8 @@ declare let opinlyConfig: {
6
14
  blogPrefix: string;
7
15
  blogUrl: string;
8
16
  siteName: string;
9
- unoptimizedImages: boolean;
17
+ unoptimizedImages?: boolean;
10
18
  };
11
19
  declare function setOpinlyConfig(newConfig: typeof opinlyConfig): void;
12
20
 
13
- export { opinlyConfig, setOpinlyConfig };
21
+ export { type OpinlyEnvVars, opinlyConfig, setOpinlyConfig };
@@ -3,15 +3,9 @@ const opinlyEnvVars = {
3
3
  OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX,
4
4
  OPINLY_SITE_URL: process.env.OPINLY_SITE_URL,
5
5
  OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX,
6
- OPINLY_CDN_URL: process.env.OPINLY_CDN_URL,
7
6
  OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME,
8
7
  OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES
9
8
  };
10
- Object.entries(opinlyEnvVars).forEach(([key, value]) => {
11
- if (!value) {
12
- throw new Error(`OPINLY ERROR: env var ${key} is not set`);
13
- }
14
- });
15
9
  let opinlyConfig = {
16
10
  cdnUrl: process.env.OPINLY_CDN_URL || "https://cdn.opinly.ai",
17
11
  siteUrl: process.env.OPINLY_SITE_URL,
@@ -20,7 +14,7 @@ let opinlyConfig = {
20
14
  blogPrefix: process.env.OPINLY_BLOG_PREFIX,
21
15
  blogUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_BLOG_PREFIX}`,
22
16
  siteName: process.env.OPINLY_SITE_NAME,
23
- unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === "true"
17
+ unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === "true" ? true : void 0
24
18
  };
25
19
  function setOpinlyConfig(newConfig) {
26
20
  opinlyConfig = { ...opinlyConfig, ...newConfig };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/sdk-config.ts"],"sourcesContent":["const siteUrl = process.env.OPINLY_SITE_URL;\n\nconst opinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX as string,\n OPINLY_SITE_URL: process.env.OPINLY_SITE_URL as string,\n OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX as string,\n OPINLY_CDN_URL: process.env.OPINLY_CDN_URL as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES as string,\n};\n\nObject.entries(opinlyEnvVars).forEach(([key, value]) => {\n if (!value) {\n throw new Error(`OPINLY ERROR: env var ${key} is not set`);\n }\n});\n\nexport let opinlyConfig: {\n cdnUrl: string;\n imagesPrefix: string;\n imagesUrl: string;\n siteUrl: string;\n blogPrefix: string;\n blogUrl: string;\n siteName: string;\n unoptimizedImages: boolean;\n} = {\n cdnUrl: process.env.OPINLY_CDN_URL || \"https://cdn.opinly.ai\",\n siteUrl: process.env.OPINLY_SITE_URL as string,\n imagesPrefix: process.env.OPINLY_IMAGES_PREFIX as string,\n imagesUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_IMAGES_PREFIX as string}`,\n blogPrefix: process.env.OPINLY_BLOG_PREFIX as string,\n blogUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_BLOG_PREFIX as string}`,\n siteName: process.env.OPINLY_SITE_NAME as string,\n unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === \"true\",\n};\n\nexport function setOpinlyConfig(newConfig: typeof opinlyConfig) {\n opinlyConfig = { ...opinlyConfig, ...newConfig };\n}\n"],"mappings":"AAAA,MAAM,UAAU,QAAQ,IAAI;AAE5B,MAAM,gBAAgB;AAAA,EACpB,sBAAsB,QAAQ,IAAI;AAAA,EAClC,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,oBAAoB,QAAQ,IAAI;AAAA,EAChC,gBAAgB,QAAQ,IAAI;AAAA,EAC5B,kBAAkB,QAAQ,IAAI;AAAA,EAC9B,2BAA2B,QAAQ,IAAI;AACzC;AAEA,OAAO,QAAQ,aAAa,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACtD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,yBAAyB,GAAG,aAAa;AAAA,EAC3D;AACF,CAAC;AAEM,IAAI,eASP;AAAA,EACF,QAAQ,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,QAAQ,IAAI;AAAA,EACrB,cAAc,QAAQ,IAAI;AAAA,EAC1B,WAAW,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,oBAA8B;AAAA,EAChG,YAAY,QAAQ,IAAI;AAAA,EACxB,SAAS,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,kBAA4B;AAAA,EAC5F,UAAU,QAAQ,IAAI;AAAA,EACtB,mBAAmB,QAAQ,IAAI,8BAA8B;AAC/D;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/sdk-config.ts"],"sourcesContent":["const siteUrl = process.env.OPINLY_SITE_URL;\n\nconst opinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX as string,\n OPINLY_SITE_URL: process.env.OPINLY_SITE_URL as string,\n OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES as\n | string\n | undefined,\n};\n\nexport type OpinlyEnvVars = typeof opinlyEnvVars;\n\nexport let opinlyConfig: {\n cdnUrl: string;\n imagesPrefix: string;\n imagesUrl: string;\n siteUrl: string;\n blogPrefix: string;\n blogUrl: string;\n siteName: string;\n unoptimizedImages?: boolean;\n} = {\n cdnUrl: process.env.OPINLY_CDN_URL || \"https://cdn.opinly.ai\",\n siteUrl: process.env.OPINLY_SITE_URL as string,\n imagesPrefix: process.env.OPINLY_IMAGES_PREFIX as string,\n imagesUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_IMAGES_PREFIX as string}`,\n blogPrefix: process.env.OPINLY_BLOG_PREFIX as string,\n blogUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_BLOG_PREFIX as string}`,\n siteName: process.env.OPINLY_SITE_NAME as string,\n unoptimizedImages:\n process.env.OPINLY_UNOPTIMIZED_IMAGES === \"true\" ? true : undefined,\n};\n\nexport function setOpinlyConfig(newConfig: typeof opinlyConfig) {\n opinlyConfig = { ...opinlyConfig, ...newConfig };\n}\n"],"mappings":"AAAA,MAAM,UAAU,QAAQ,IAAI;AAE5B,MAAM,gBAAgB;AAAA,EACpB,sBAAsB,QAAQ,IAAI;AAAA,EAClC,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,oBAAoB,QAAQ,IAAI;AAAA,EAChC,kBAAkB,QAAQ,IAAI;AAAA,EAC9B,2BAA2B,QAAQ,IAAI;AAGzC;AAIO,IAAI,eASP;AAAA,EACF,QAAQ,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,QAAQ,IAAI;AAAA,EACrB,cAAc,QAAQ,IAAI;AAAA,EAC1B,WAAW,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,oBAA8B;AAAA,EAChG,YAAY,QAAQ,IAAI;AAAA,EACxB,SAAS,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,kBAA4B;AAAA,EAC5F,UAAU,QAAQ,IAAI;AAAA,EACtB,mBACE,QAAQ,IAAI,8BAA8B,SAAS,OAAO;AAC9D;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var with_opinly_config_exports = {};
20
+ __export(with_opinly_config_exports, {
21
+ withOpinlyConfig: () => withOpinlyConfig
22
+ });
23
+ module.exports = __toCommonJS(with_opinly_config_exports);
24
+ var import_zod = require("zod");
25
+ const opinlyOptionsSchema = import_zod.z.object({
26
+ imagesPath: import_zod.z.string({}).refine(
27
+ (val) => val.startsWith("/") || import_zod.z.string().url().safeParse(val).success,
28
+ {
29
+ message: "imagesPath must start with a leading slash (e.g. '/images')"
30
+ }
31
+ ),
32
+ blogPath: import_zod.z.string({}).startsWith("/", {
33
+ message: "blogPath must start with a leading slash i.e. `/blog`"
34
+ }),
35
+ companyName: import_zod.z.string({
36
+ required_error: "companyName is required",
37
+ invalid_type_error: "companyName must be a string"
38
+ }),
39
+ cdnNamespace: import_zod.z.string().min(21, "CDN namespace must be 21 characters long").max(21, "CDN namespace must be 21 characters long"),
40
+ siteUrl: import_zod.z.string().url({
41
+ message: "siteUrl must be a valid URL"
42
+ }),
43
+ unoptimizedImages: import_zod.z.boolean().optional(),
44
+ cdnDomain: import_zod.z.string({
45
+ description: "INTERNAL USE ONLY: The domain of the CDN. If not provided, the default domain will be used."
46
+ }).url({
47
+ message: "cdnDomain must be a valid URL"
48
+ }).optional()
49
+ });
50
+ const validateOpinlyOptions = (opinlyOptions) => {
51
+ if (!opinlyOptions) {
52
+ throw new Error(
53
+ "[@opinly/next] `opts` is required. Please provide the options object."
54
+ );
55
+ }
56
+ const parsedOpinlyOptions = opinlyOptionsSchema.safeParse(opinlyOptions);
57
+ if (!parsedOpinlyOptions.success) {
58
+ throw new Error(
59
+ `[@opinly/next] Invalid options provided in next.config.js: ${parsedOpinlyOptions.error.message}`
60
+ );
61
+ }
62
+ };
63
+ const processRewrites = (userNextConfig, opinlyOptions) => {
64
+ const imagesPath = opinlyOptions.imagesPath;
65
+ if (!imagesPath.startsWith("/")) {
66
+ console.warn(
67
+ `[@opinly/next] You have provided a url for imagesPath. This is only valid for internal testing and rewrites will be skipped.`
68
+ );
69
+ return;
70
+ }
71
+ const originalRewrites = userNextConfig.rewrites;
72
+ userNextConfig.rewrites = async () => {
73
+ const opinlyRewrite = {
74
+ source: `${opinlyOptions.imagesPath}/:path*`,
75
+ destination: `${opinlyOptions.cdnDomain || "https://cdn.opinly.ai"}/${opinlyOptions.cdnNamespace}/:path*`
76
+ };
77
+ console.log("opinlyRewrite", opinlyRewrite);
78
+ if (typeof originalRewrites !== "function") {
79
+ return [opinlyRewrite];
80
+ }
81
+ const resolvedRewrites = await originalRewrites();
82
+ if (Array.isArray(resolvedRewrites)) {
83
+ return [...resolvedRewrites, opinlyRewrite];
84
+ } else {
85
+ return {
86
+ ...resolvedRewrites,
87
+ beforeFiles: [...resolvedRewrites.beforeFiles || [], opinlyRewrite]
88
+ };
89
+ }
90
+ };
91
+ };
92
+ function addEnvVars(userNextConfig, opinlyOptions) {
93
+ const opinlyEnvVars = {
94
+ OPINLY_IMAGES_PREFIX: opinlyOptions.imagesPath,
95
+ OPINLY_BLOG_PREFIX: opinlyOptions.blogPath,
96
+ OPINLY_SITE_NAME: opinlyOptions.companyName,
97
+ OPINLY_SITE_URL: opinlyOptions.siteUrl,
98
+ OPINLY_UNOPTIMIZED_IMAGES: opinlyOptions.unoptimizedImages ? "true" : void 0
99
+ };
100
+ userNextConfig.env = {
101
+ ...userNextConfig.env || {},
102
+ ...opinlyEnvVars
103
+ };
104
+ }
105
+ const withOpinlyConfig = (opinlyOptions) => (nextConfig) => {
106
+ validateOpinlyOptions(opinlyOptions);
107
+ addEnvVars(nextConfig, opinlyOptions);
108
+ processRewrites(nextConfig, opinlyOptions);
109
+ return nextConfig;
110
+ };
111
+ // Annotate the CommonJS export names for ESM import in node:
112
+ 0 && (module.exports = {
113
+ withOpinlyConfig
114
+ });
115
+ //# sourceMappingURL=with-opinly-config.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/with-opinly-config.ts"],"sourcesContent":["import { NextConfig } from \"next\";\nimport { Rewrite } from \"next/dist/lib/load-custom-routes\";\nimport type { OpinlyEnvVars } from \"./sdk-config\";\nimport { z } from \"zod\";\n\ninterface WithOpinlyOptions {\n imagesPath: `/${string}`;\n blogPath: `/${string}`;\n companyName: string;\n cdnNamespace: string;\n siteUrl: string;\n unoptimizedImages?: boolean;\n}\n\ntype ResolvedRewrites = ReturnType<\n NonNullable<Awaited<NextConfig[\"rewrites\"]>>\n>;\n\nconst opinlyOptionsSchema = z.object({\n imagesPath: z\n .string({})\n .refine(\n (val) => val.startsWith(\"/\") || z.string().url().safeParse(val).success,\n {\n message: \"imagesPath must start with a leading slash (e.g. '/images')\",\n }\n ),\n blogPath: z.string({}).startsWith(\"/\", {\n message: \"blogPath must start with a leading slash i.e. `/blog`\",\n }),\n companyName: z.string({\n required_error: \"companyName is required\",\n invalid_type_error: \"companyName must be a string\",\n }),\n cdnNamespace: z\n .string()\n .min(21, \"CDN namespace must be 21 characters long\")\n .max(21, \"CDN namespace must be 21 characters long\"),\n siteUrl: z.string().url({\n message: \"siteUrl must be a valid URL\",\n }),\n unoptimizedImages: z.boolean().optional(),\n cdnDomain: z\n .string({\n description:\n \"INTERNAL USE ONLY: The domain of the CDN. If not provided, the default domain will be used.\",\n })\n .url({\n message: \"cdnDomain must be a valid URL\",\n })\n .optional(),\n});\n\ntype OpinlyOptions = z.infer<typeof opinlyOptionsSchema>;\n\nconst validateOpinlyOptions = (opinlyOptions: OpinlyOptions) => {\n if (!opinlyOptions) {\n throw new Error(\n \"[@opinly/next] `opts` is required. Please provide the options object.\"\n );\n }\n\n const parsedOpinlyOptions = opinlyOptionsSchema.safeParse(opinlyOptions);\n\n if (!parsedOpinlyOptions.success) {\n throw new Error(\n `[@opinly/next] Invalid options provided in next.config.js: ${parsedOpinlyOptions.error.message}`\n );\n }\n};\n\nconst processRewrites = (\n userNextConfig: NextConfig,\n opinlyOptions: OpinlyOptions\n): void => {\n const imagesPath = opinlyOptions.imagesPath;\n\n if (!imagesPath.startsWith(\"/\")) {\n console.warn(\n `[@opinly/next] You have provided a url for imagesPath. This is only valid for internal testing and rewrites will be skipped.`\n );\n\n return;\n }\n\n const originalRewrites = userNextConfig.rewrites;\n\n userNextConfig.rewrites = async () => {\n const opinlyRewrite = {\n source: `${opinlyOptions.imagesPath}/:path*`,\n destination: `${opinlyOptions.cdnDomain || \"https://cdn.opinly.ai\"}/${opinlyOptions.cdnNamespace}/:path*`,\n };\n\n console.log(\"opinlyRewrite\", opinlyRewrite);\n\n if (typeof originalRewrites !== \"function\") {\n return [opinlyRewrite];\n }\n\n const resolvedRewrites = await originalRewrites();\n\n if (Array.isArray(resolvedRewrites)) {\n return [...resolvedRewrites, opinlyRewrite];\n } else {\n return {\n ...resolvedRewrites,\n beforeFiles: [...(resolvedRewrites.beforeFiles || []), opinlyRewrite],\n };\n }\n };\n};\n\nfunction addEnvVars(userNextConfig: NextConfig, opinlyOptions: OpinlyOptions) {\n const opinlyEnvVars: OpinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: opinlyOptions.imagesPath,\n OPINLY_BLOG_PREFIX: opinlyOptions.blogPath,\n OPINLY_SITE_NAME: opinlyOptions.companyName,\n OPINLY_SITE_URL: opinlyOptions.siteUrl,\n OPINLY_UNOPTIMIZED_IMAGES: opinlyOptions.unoptimizedImages\n ? \"true\"\n : undefined,\n };\n\n userNextConfig.env = {\n ...(userNextConfig.env || {}),\n ...opinlyEnvVars,\n };\n}\n\n/**\n * Modifies the passed in Next.js configuration with image rewrites and environment variables.\n *\n * @param nextConfig A Next.js configuration object, as usually exported in `next.config.js` or `next.config.mjs`.\n * @param opinlyOptions Additional options to configure Opinly.\n * @returns The modified config to be exported\n */\nexport const withOpinlyConfig =\n (opinlyOptions: OpinlyOptions) =>\n (nextConfig: NextConfig): NextConfig => {\n validateOpinlyOptions(opinlyOptions);\n\n addEnvVars(nextConfig, opinlyOptions);\n\n processRewrites(nextConfig, opinlyOptions);\n\n return nextConfig;\n };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAAkB;AAelB,MAAM,sBAAsB,aAAE,OAAO;AAAA,EACnC,YAAY,aACT,OAAO,CAAC,CAAC,EACT;AAAA,IACC,CAAC,QAAQ,IAAI,WAAW,GAAG,KAAK,aAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE;AAAA,IAChE;AAAA,MACE,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACF,UAAU,aAAE,OAAO,CAAC,CAAC,EAAE,WAAW,KAAK;AAAA,IACrC,SAAS;AAAA,EACX,CAAC;AAAA,EACD,aAAa,aAAE,OAAO;AAAA,IACpB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,EACtB,CAAC;AAAA,EACD,cAAc,aACX,OAAO,EACP,IAAI,IAAI,0CAA0C,EAClD,IAAI,IAAI,0CAA0C;AAAA,EACrD,SAAS,aAAE,OAAO,EAAE,IAAI;AAAA,IACtB,SAAS;AAAA,EACX,CAAC;AAAA,EACD,mBAAmB,aAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,WAAW,aACR,OAAO;AAAA,IACN,aACE;AAAA,EACJ,CAAC,EACA,IAAI;AAAA,IACH,SAAS;AAAA,EACX,CAAC,EACA,SAAS;AACd,CAAC;AAID,MAAM,wBAAwB,CAAC,kBAAiC;AAC9D,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,sBAAsB,oBAAoB,UAAU,aAAa;AAEvE,MAAI,CAAC,oBAAoB,SAAS;AAChC,UAAM,IAAI;AAAA,MACR,8DAA8D,oBAAoB,MAAM,OAAO;AAAA,IACjG;AAAA,EACF;AACF;AAEA,MAAM,kBAAkB,CACtB,gBACA,kBACS;AACT,QAAM,aAAa,cAAc;AAEjC,MAAI,CAAC,WAAW,WAAW,GAAG,GAAG;AAC/B,YAAQ;AAAA,MACN;AAAA,IACF;AAEA;AAAA,EACF;AAEA,QAAM,mBAAmB,eAAe;AAExC,iBAAe,WAAW,YAAY;AACpC,UAAM,gBAAgB;AAAA,MACpB,QAAQ,GAAG,cAAc,UAAU;AAAA,MACnC,aAAa,GAAG,cAAc,aAAa,uBAAuB,IAAI,cAAc,YAAY;AAAA,IAClG;AAEA,YAAQ,IAAI,iBAAiB,aAAa;AAE1C,QAAI,OAAO,qBAAqB,YAAY;AAC1C,aAAO,CAAC,aAAa;AAAA,IACvB;AAEA,UAAM,mBAAmB,MAAM,iBAAiB;AAEhD,QAAI,MAAM,QAAQ,gBAAgB,GAAG;AACnC,aAAO,CAAC,GAAG,kBAAkB,aAAa;AAAA,IAC5C,OAAO;AACL,aAAO;AAAA,QACL,GAAG;AAAA,QACH,aAAa,CAAC,GAAI,iBAAiB,eAAe,CAAC,GAAI,aAAa;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,WAAW,gBAA4B,eAA8B;AAC5E,QAAM,gBAA+B;AAAA,IACnC,sBAAsB,cAAc;AAAA,IACpC,oBAAoB,cAAc;AAAA,IAClC,kBAAkB,cAAc;AAAA,IAChC,iBAAiB,cAAc;AAAA,IAC/B,2BAA2B,cAAc,oBACrC,SACA;AAAA,EACN;AAEA,iBAAe,MAAM;AAAA,IACnB,GAAI,eAAe,OAAO,CAAC;AAAA,IAC3B,GAAG;AAAA,EACL;AACF;AASO,MAAM,mBACX,CAAC,kBACD,CAAC,eAAuC;AACtC,wBAAsB,aAAa;AAEnC,aAAW,YAAY,aAAa;AAEpC,kBAAgB,YAAY,aAAa;AAEzC,SAAO;AACT;","names":[]}
@@ -0,0 +1,39 @@
1
+ import { NextConfig } from 'next';
2
+ import { z } from 'zod';
3
+
4
+ declare const opinlyOptionsSchema: z.ZodObject<{
5
+ imagesPath: z.ZodEffects<z.ZodString, string, string>;
6
+ blogPath: z.ZodString;
7
+ companyName: z.ZodString;
8
+ cdnNamespace: z.ZodString;
9
+ siteUrl: z.ZodString;
10
+ unoptimizedImages: z.ZodOptional<z.ZodBoolean>;
11
+ cdnDomain: z.ZodOptional<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ imagesPath: string;
14
+ blogPath: string;
15
+ companyName: string;
16
+ cdnNamespace: string;
17
+ siteUrl: string;
18
+ unoptimizedImages?: boolean | undefined;
19
+ cdnDomain?: string | undefined;
20
+ }, {
21
+ imagesPath: string;
22
+ blogPath: string;
23
+ companyName: string;
24
+ cdnNamespace: string;
25
+ siteUrl: string;
26
+ unoptimizedImages?: boolean | undefined;
27
+ cdnDomain?: string | undefined;
28
+ }>;
29
+ type OpinlyOptions = z.infer<typeof opinlyOptionsSchema>;
30
+ /**
31
+ * Modifies the passed in Next.js configuration with image rewrites and environment variables.
32
+ *
33
+ * @param nextConfig A Next.js configuration object, as usually exported in `next.config.js` or `next.config.mjs`.
34
+ * @param opinlyOptions Additional options to configure Opinly.
35
+ * @returns The modified config to be exported
36
+ */
37
+ declare const withOpinlyConfig: (opinlyOptions: OpinlyOptions) => (nextConfig: NextConfig) => NextConfig;
38
+
39
+ export { withOpinlyConfig };
@@ -0,0 +1,39 @@
1
+ import { NextConfig } from 'next';
2
+ import { z } from 'zod';
3
+
4
+ declare const opinlyOptionsSchema: z.ZodObject<{
5
+ imagesPath: z.ZodEffects<z.ZodString, string, string>;
6
+ blogPath: z.ZodString;
7
+ companyName: z.ZodString;
8
+ cdnNamespace: z.ZodString;
9
+ siteUrl: z.ZodString;
10
+ unoptimizedImages: z.ZodOptional<z.ZodBoolean>;
11
+ cdnDomain: z.ZodOptional<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ imagesPath: string;
14
+ blogPath: string;
15
+ companyName: string;
16
+ cdnNamespace: string;
17
+ siteUrl: string;
18
+ unoptimizedImages?: boolean | undefined;
19
+ cdnDomain?: string | undefined;
20
+ }, {
21
+ imagesPath: string;
22
+ blogPath: string;
23
+ companyName: string;
24
+ cdnNamespace: string;
25
+ siteUrl: string;
26
+ unoptimizedImages?: boolean | undefined;
27
+ cdnDomain?: string | undefined;
28
+ }>;
29
+ type OpinlyOptions = z.infer<typeof opinlyOptionsSchema>;
30
+ /**
31
+ * Modifies the passed in Next.js configuration with image rewrites and environment variables.
32
+ *
33
+ * @param nextConfig A Next.js configuration object, as usually exported in `next.config.js` or `next.config.mjs`.
34
+ * @param opinlyOptions Additional options to configure Opinly.
35
+ * @returns The modified config to be exported
36
+ */
37
+ declare const withOpinlyConfig: (opinlyOptions: OpinlyOptions) => (nextConfig: NextConfig) => NextConfig;
38
+
39
+ export { withOpinlyConfig };
@@ -0,0 +1,91 @@
1
+ import { z } from "zod";
2
+ const opinlyOptionsSchema = z.object({
3
+ imagesPath: z.string({}).refine(
4
+ (val) => val.startsWith("/") || z.string().url().safeParse(val).success,
5
+ {
6
+ message: "imagesPath must start with a leading slash (e.g. '/images')"
7
+ }
8
+ ),
9
+ blogPath: z.string({}).startsWith("/", {
10
+ message: "blogPath must start with a leading slash i.e. `/blog`"
11
+ }),
12
+ companyName: z.string({
13
+ required_error: "companyName is required",
14
+ invalid_type_error: "companyName must be a string"
15
+ }),
16
+ cdnNamespace: z.string().min(21, "CDN namespace must be 21 characters long").max(21, "CDN namespace must be 21 characters long"),
17
+ siteUrl: z.string().url({
18
+ message: "siteUrl must be a valid URL"
19
+ }),
20
+ unoptimizedImages: z.boolean().optional(),
21
+ cdnDomain: z.string({
22
+ description: "INTERNAL USE ONLY: The domain of the CDN. If not provided, the default domain will be used."
23
+ }).url({
24
+ message: "cdnDomain must be a valid URL"
25
+ }).optional()
26
+ });
27
+ const validateOpinlyOptions = (opinlyOptions) => {
28
+ if (!opinlyOptions) {
29
+ throw new Error(
30
+ "[@opinly/next] `opts` is required. Please provide the options object."
31
+ );
32
+ }
33
+ const parsedOpinlyOptions = opinlyOptionsSchema.safeParse(opinlyOptions);
34
+ if (!parsedOpinlyOptions.success) {
35
+ throw new Error(
36
+ `[@opinly/next] Invalid options provided in next.config.js: ${parsedOpinlyOptions.error.message}`
37
+ );
38
+ }
39
+ };
40
+ const processRewrites = (userNextConfig, opinlyOptions) => {
41
+ const imagesPath = opinlyOptions.imagesPath;
42
+ if (!imagesPath.startsWith("/")) {
43
+ console.warn(
44
+ `[@opinly/next] You have provided a url for imagesPath. This is only valid for internal testing and rewrites will be skipped.`
45
+ );
46
+ return;
47
+ }
48
+ const originalRewrites = userNextConfig.rewrites;
49
+ userNextConfig.rewrites = async () => {
50
+ const opinlyRewrite = {
51
+ source: `${opinlyOptions.imagesPath}/:path*`,
52
+ destination: `${opinlyOptions.cdnDomain || "https://cdn.opinly.ai"}/${opinlyOptions.cdnNamespace}/:path*`
53
+ };
54
+ console.log("opinlyRewrite", opinlyRewrite);
55
+ if (typeof originalRewrites !== "function") {
56
+ return [opinlyRewrite];
57
+ }
58
+ const resolvedRewrites = await originalRewrites();
59
+ if (Array.isArray(resolvedRewrites)) {
60
+ return [...resolvedRewrites, opinlyRewrite];
61
+ } else {
62
+ return {
63
+ ...resolvedRewrites,
64
+ beforeFiles: [...resolvedRewrites.beforeFiles || [], opinlyRewrite]
65
+ };
66
+ }
67
+ };
68
+ };
69
+ function addEnvVars(userNextConfig, opinlyOptions) {
70
+ const opinlyEnvVars = {
71
+ OPINLY_IMAGES_PREFIX: opinlyOptions.imagesPath,
72
+ OPINLY_BLOG_PREFIX: opinlyOptions.blogPath,
73
+ OPINLY_SITE_NAME: opinlyOptions.companyName,
74
+ OPINLY_SITE_URL: opinlyOptions.siteUrl,
75
+ OPINLY_UNOPTIMIZED_IMAGES: opinlyOptions.unoptimizedImages ? "true" : void 0
76
+ };
77
+ userNextConfig.env = {
78
+ ...userNextConfig.env || {},
79
+ ...opinlyEnvVars
80
+ };
81
+ }
82
+ const withOpinlyConfig = (opinlyOptions) => (nextConfig) => {
83
+ validateOpinlyOptions(opinlyOptions);
84
+ addEnvVars(nextConfig, opinlyOptions);
85
+ processRewrites(nextConfig, opinlyOptions);
86
+ return nextConfig;
87
+ };
88
+ export {
89
+ withOpinlyConfig
90
+ };
91
+ //# sourceMappingURL=with-opinly-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/with-opinly-config.ts"],"sourcesContent":["import { NextConfig } from \"next\";\nimport { Rewrite } from \"next/dist/lib/load-custom-routes\";\nimport type { OpinlyEnvVars } from \"./sdk-config\";\nimport { z } from \"zod\";\n\ninterface WithOpinlyOptions {\n imagesPath: `/${string}`;\n blogPath: `/${string}`;\n companyName: string;\n cdnNamespace: string;\n siteUrl: string;\n unoptimizedImages?: boolean;\n}\n\ntype ResolvedRewrites = ReturnType<\n NonNullable<Awaited<NextConfig[\"rewrites\"]>>\n>;\n\nconst opinlyOptionsSchema = z.object({\n imagesPath: z\n .string({})\n .refine(\n (val) => val.startsWith(\"/\") || z.string().url().safeParse(val).success,\n {\n message: \"imagesPath must start with a leading slash (e.g. '/images')\",\n }\n ),\n blogPath: z.string({}).startsWith(\"/\", {\n message: \"blogPath must start with a leading slash i.e. `/blog`\",\n }),\n companyName: z.string({\n required_error: \"companyName is required\",\n invalid_type_error: \"companyName must be a string\",\n }),\n cdnNamespace: z\n .string()\n .min(21, \"CDN namespace must be 21 characters long\")\n .max(21, \"CDN namespace must be 21 characters long\"),\n siteUrl: z.string().url({\n message: \"siteUrl must be a valid URL\",\n }),\n unoptimizedImages: z.boolean().optional(),\n cdnDomain: z\n .string({\n description:\n \"INTERNAL USE ONLY: The domain of the CDN. If not provided, the default domain will be used.\",\n })\n .url({\n message: \"cdnDomain must be a valid URL\",\n })\n .optional(),\n});\n\ntype OpinlyOptions = z.infer<typeof opinlyOptionsSchema>;\n\nconst validateOpinlyOptions = (opinlyOptions: OpinlyOptions) => {\n if (!opinlyOptions) {\n throw new Error(\n \"[@opinly/next] `opts` is required. Please provide the options object.\"\n );\n }\n\n const parsedOpinlyOptions = opinlyOptionsSchema.safeParse(opinlyOptions);\n\n if (!parsedOpinlyOptions.success) {\n throw new Error(\n `[@opinly/next] Invalid options provided in next.config.js: ${parsedOpinlyOptions.error.message}`\n );\n }\n};\n\nconst processRewrites = (\n userNextConfig: NextConfig,\n opinlyOptions: OpinlyOptions\n): void => {\n const imagesPath = opinlyOptions.imagesPath;\n\n if (!imagesPath.startsWith(\"/\")) {\n console.warn(\n `[@opinly/next] You have provided a url for imagesPath. This is only valid for internal testing and rewrites will be skipped.`\n );\n\n return;\n }\n\n const originalRewrites = userNextConfig.rewrites;\n\n userNextConfig.rewrites = async () => {\n const opinlyRewrite = {\n source: `${opinlyOptions.imagesPath}/:path*`,\n destination: `${opinlyOptions.cdnDomain || \"https://cdn.opinly.ai\"}/${opinlyOptions.cdnNamespace}/:path*`,\n };\n\n console.log(\"opinlyRewrite\", opinlyRewrite);\n\n if (typeof originalRewrites !== \"function\") {\n return [opinlyRewrite];\n }\n\n const resolvedRewrites = await originalRewrites();\n\n if (Array.isArray(resolvedRewrites)) {\n return [...resolvedRewrites, opinlyRewrite];\n } else {\n return {\n ...resolvedRewrites,\n beforeFiles: [...(resolvedRewrites.beforeFiles || []), opinlyRewrite],\n };\n }\n };\n};\n\nfunction addEnvVars(userNextConfig: NextConfig, opinlyOptions: OpinlyOptions) {\n const opinlyEnvVars: OpinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: opinlyOptions.imagesPath,\n OPINLY_BLOG_PREFIX: opinlyOptions.blogPath,\n OPINLY_SITE_NAME: opinlyOptions.companyName,\n OPINLY_SITE_URL: opinlyOptions.siteUrl,\n OPINLY_UNOPTIMIZED_IMAGES: opinlyOptions.unoptimizedImages\n ? \"true\"\n : undefined,\n };\n\n userNextConfig.env = {\n ...(userNextConfig.env || {}),\n ...opinlyEnvVars,\n };\n}\n\n/**\n * Modifies the passed in Next.js configuration with image rewrites and environment variables.\n *\n * @param nextConfig A Next.js configuration object, as usually exported in `next.config.js` or `next.config.mjs`.\n * @param opinlyOptions Additional options to configure Opinly.\n * @returns The modified config to be exported\n */\nexport const withOpinlyConfig =\n (opinlyOptions: OpinlyOptions) =>\n (nextConfig: NextConfig): NextConfig => {\n validateOpinlyOptions(opinlyOptions);\n\n addEnvVars(nextConfig, opinlyOptions);\n\n processRewrites(nextConfig, opinlyOptions);\n\n return nextConfig;\n };\n"],"mappings":"AAGA,SAAS,SAAS;AAelB,MAAM,sBAAsB,EAAE,OAAO;AAAA,EACnC,YAAY,EACT,OAAO,CAAC,CAAC,EACT;AAAA,IACC,CAAC,QAAQ,IAAI,WAAW,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE;AAAA,IAChE;AAAA,MACE,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACF,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,WAAW,KAAK;AAAA,IACrC,SAAS;AAAA,EACX,CAAC;AAAA,EACD,aAAa,EAAE,OAAO;AAAA,IACpB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,EACtB,CAAC;AAAA,EACD,cAAc,EACX,OAAO,EACP,IAAI,IAAI,0CAA0C,EAClD,IAAI,IAAI,0CAA0C;AAAA,EACrD,SAAS,EAAE,OAAO,EAAE,IAAI;AAAA,IACtB,SAAS;AAAA,EACX,CAAC;AAAA,EACD,mBAAmB,EAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,WAAW,EACR,OAAO;AAAA,IACN,aACE;AAAA,EACJ,CAAC,EACA,IAAI;AAAA,IACH,SAAS;AAAA,EACX,CAAC,EACA,SAAS;AACd,CAAC;AAID,MAAM,wBAAwB,CAAC,kBAAiC;AAC9D,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,sBAAsB,oBAAoB,UAAU,aAAa;AAEvE,MAAI,CAAC,oBAAoB,SAAS;AAChC,UAAM,IAAI;AAAA,MACR,8DAA8D,oBAAoB,MAAM,OAAO;AAAA,IACjG;AAAA,EACF;AACF;AAEA,MAAM,kBAAkB,CACtB,gBACA,kBACS;AACT,QAAM,aAAa,cAAc;AAEjC,MAAI,CAAC,WAAW,WAAW,GAAG,GAAG;AAC/B,YAAQ;AAAA,MACN;AAAA,IACF;AAEA;AAAA,EACF;AAEA,QAAM,mBAAmB,eAAe;AAExC,iBAAe,WAAW,YAAY;AACpC,UAAM,gBAAgB;AAAA,MACpB,QAAQ,GAAG,cAAc,UAAU;AAAA,MACnC,aAAa,GAAG,cAAc,aAAa,uBAAuB,IAAI,cAAc,YAAY;AAAA,IAClG;AAEA,YAAQ,IAAI,iBAAiB,aAAa;AAE1C,QAAI,OAAO,qBAAqB,YAAY;AAC1C,aAAO,CAAC,aAAa;AAAA,IACvB;AAEA,UAAM,mBAAmB,MAAM,iBAAiB;AAEhD,QAAI,MAAM,QAAQ,gBAAgB,GAAG;AACnC,aAAO,CAAC,GAAG,kBAAkB,aAAa;AAAA,IAC5C,OAAO;AACL,aAAO;AAAA,QACL,GAAG;AAAA,QACH,aAAa,CAAC,GAAI,iBAAiB,eAAe,CAAC,GAAI,aAAa;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,WAAW,gBAA4B,eAA8B;AAC5E,QAAM,gBAA+B;AAAA,IACnC,sBAAsB,cAAc;AAAA,IACpC,oBAAoB,cAAc;AAAA,IAClC,kBAAkB,cAAc;AAAA,IAChC,iBAAiB,cAAc;AAAA,IAC/B,2BAA2B,cAAc,oBACrC,SACA;AAAA,EACN;AAEA,iBAAe,MAAM;AAAA,IACnB,GAAI,eAAe,OAAO,CAAC;AAAA,IAC3B,GAAG;AAAA,EACL;AACF;AASO,MAAM,mBACX,CAAC,kBACD,CAAC,eAAuC;AACtC,wBAAsB,aAAa;AAEnC,aAAW,YAAY,aAAa;AAEpC,kBAAgB,YAAY,aAAa;AAEzC,SAAO;AACT;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opinly/next",
3
- "version": "0.1.15",
3
+ "version": "0.1.16",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "main": "dist/index.cjs",
@@ -29,7 +29,8 @@
29
29
  "react-syntax-highlighter": "^15.6.1",
30
30
  "schema-dts": "^1.1.5",
31
31
  "tailwind-merge": "^1.14.0",
32
- "@opinly/backend": "0.1.15"
32
+ "zod": "^3.25.67",
33
+ "@opinly/backend": "0.1.16"
33
34
  },
34
35
  "engines": {
35
36
  "node": ">=16"