@sitecore-content-sdk/core 0.2.0-canary.13 → 0.2.0-canary.15

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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HIDDEN_RENDERING_NAME = exports.SITECORE_EDGE_URL_DEFAULT = exports.siteNameError = exports.SitecoreTemplateId = void 0;
3
+ exports.DEFAULT_SITECORE_AUTH_AUDIENCE = exports.DEFAULT_SITECORE_AUTH_ENDPOINT = exports.HIDDEN_RENDERING_NAME = exports.SITECORE_EDGE_URL_DEFAULT = exports.siteNameError = exports.SitecoreTemplateId = void 0;
4
4
  var SitecoreTemplateId;
5
5
  (function (SitecoreTemplateId) {
6
6
  // /sitecore/templates/Foundation/JavaScript Services/App
@@ -11,3 +11,5 @@ var SitecoreTemplateId;
11
11
  exports.siteNameError = 'The siteName cannot be empty';
12
12
  exports.SITECORE_EDGE_URL_DEFAULT = 'https://edge-platform.sitecorecloud.io';
13
13
  exports.HIDDEN_RENDERING_NAME = 'Hidden Rendering';
14
+ exports.DEFAULT_SITECORE_AUTH_ENDPOINT = 'https://auth.sitecorecloud.io/oauth/token';
15
+ exports.DEFAULT_SITECORE_AUTH_AUDIENCE = 'https://api.sitecorecloud.io';
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fetchBearerToken = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const constants_1 = require("../../constants");
9
+ /**
10
+ * Connects to M2M endpoint and fetches the bearer token
11
+ * Uses client_id and client_secret from environment variables
12
+ * @param {FetchBearerTokenOptions} options client id, secret, and other parameters for connection to m2m endpoint
13
+ * @returns {string} bearer token string
14
+ */
15
+ const fetchBearerToken = async (options) => {
16
+ const { clientId, clientSecret } = options;
17
+ const audience = options.audience || constants_1.DEFAULT_SITECORE_AUTH_AUDIENCE;
18
+ const endpoint = options.endpoint || constants_1.DEFAULT_SITECORE_AUTH_ENDPOINT;
19
+ try {
20
+ // TODO:adjust when M2M endpoint is live
21
+ const authenticateResponse = await fetch(endpoint, {
22
+ method: 'POST',
23
+ headers: {
24
+ 'Content-Type': 'application/json',
25
+ },
26
+ body: JSON.stringify({
27
+ client_id: clientId,
28
+ client_secret: clientSecret,
29
+ audience: audience,
30
+ grant_type: 'client_credentials',
31
+ }),
32
+ });
33
+ const jsonResponse = await authenticateResponse.json();
34
+ return jsonResponse.access_token;
35
+ }
36
+ catch (error) {
37
+ console.error(chalk_1.default.red('Error authenticating with Sitecore Auth endpoint:', error));
38
+ return null;
39
+ }
40
+ };
41
+ exports.fetchBearerToken = fetchBearerToken;
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.scaffoldComponent = exports.generateMetadata = exports.generateSites = void 0;
17
+ exports.fetchBearerToken = exports.scaffoldComponent = exports.generateMetadata = exports.generateSites = void 0;
18
18
  var generateSites_1 = require("./generateSites");
19
19
  Object.defineProperty(exports, "generateSites", { enumerable: true, get: function () { return generateSites_1.generateSites; } });
20
20
  var generateMetadata_1 = require("./generateMetadata");
@@ -22,3 +22,5 @@ Object.defineProperty(exports, "generateMetadata", { enumerable: true, get: func
22
22
  var scaffold_1 = require("./scaffold");
23
23
  Object.defineProperty(exports, "scaffoldComponent", { enumerable: true, get: function () { return scaffold_1.scaffoldComponent; } });
24
24
  __exportStar(require("./templating"), exports);
25
+ var fetch_bearer_token_1 = require("./auth/fetch-bearer-token");
26
+ Object.defineProperty(exports, "fetchBearerToken", { enumerable: true, get: function () { return fetch_bearer_token_1.fetchBearerToken; } });
@@ -8,3 +8,5 @@ export var SitecoreTemplateId;
8
8
  export const siteNameError = 'The siteName cannot be empty';
9
9
  export const SITECORE_EDGE_URL_DEFAULT = 'https://edge-platform.sitecorecloud.io';
10
10
  export const HIDDEN_RENDERING_NAME = 'Hidden Rendering';
11
+ export const DEFAULT_SITECORE_AUTH_ENDPOINT = 'https://auth.sitecorecloud.io/oauth/token';
12
+ export const DEFAULT_SITECORE_AUTH_AUDIENCE = 'https://api.sitecorecloud.io';
@@ -0,0 +1,34 @@
1
+ import chalk from 'chalk';
2
+ import { DEFAULT_SITECORE_AUTH_AUDIENCE, DEFAULT_SITECORE_AUTH_ENDPOINT } from '../../constants';
3
+ /**
4
+ * Connects to M2M endpoint and fetches the bearer token
5
+ * Uses client_id and client_secret from environment variables
6
+ * @param {FetchBearerTokenOptions} options client id, secret, and other parameters for connection to m2m endpoint
7
+ * @returns {string} bearer token string
8
+ */
9
+ export const fetchBearerToken = async (options) => {
10
+ const { clientId, clientSecret } = options;
11
+ const audience = options.audience || DEFAULT_SITECORE_AUTH_AUDIENCE;
12
+ const endpoint = options.endpoint || DEFAULT_SITECORE_AUTH_ENDPOINT;
13
+ try {
14
+ // TODO:adjust when M2M endpoint is live
15
+ const authenticateResponse = await fetch(endpoint, {
16
+ method: 'POST',
17
+ headers: {
18
+ 'Content-Type': 'application/json',
19
+ },
20
+ body: JSON.stringify({
21
+ client_id: clientId,
22
+ client_secret: clientSecret,
23
+ audience: audience,
24
+ grant_type: 'client_credentials',
25
+ }),
26
+ });
27
+ const jsonResponse = await authenticateResponse.json();
28
+ return jsonResponse.access_token;
29
+ }
30
+ catch (error) {
31
+ console.error(chalk.red('Error authenticating with Sitecore Auth endpoint:', error));
32
+ return null;
33
+ }
34
+ };
@@ -2,3 +2,4 @@ export { generateSites } from './generateSites';
2
2
  export { generateMetadata } from './generateMetadata';
3
3
  export { scaffoldComponent } from './scaffold';
4
4
  export * from './templating';
5
+ export { fetchBearerToken } from './auth/fetch-bearer-token';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-content-sdk/core",
3
- "version": "0.2.0-canary.13",
3
+ "version": "0.2.0-canary.15",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -58,7 +58,7 @@
58
58
  "nock": "14.0.0-beta.7",
59
59
  "nyc": "^17.1.0",
60
60
  "proxyquire": "^2.1.3",
61
- "sinon": "^19.0.2",
61
+ "sinon": "^20.0.0",
62
62
  "tslib": "^2.8.1",
63
63
  "tsx": "^4.19.2",
64
64
  "typescript": "~5.7.3"
@@ -77,7 +77,7 @@
77
77
  },
78
78
  "description": "",
79
79
  "types": "types/index.d.ts",
80
- "gitHead": "e250f8e91a6f9a562d8e6f23cd0cb3f2be365ec6",
80
+ "gitHead": "44bc7e454d2fc29207bc22992978ba0d439013d6",
81
81
  "files": [
82
82
  "dist",
83
83
  "types",
@@ -5,3 +5,5 @@ export declare enum SitecoreTemplateId {
5
5
  export declare const siteNameError = "The siteName cannot be empty";
6
6
  export declare const SITECORE_EDGE_URL_DEFAULT = "https://edge-platform.sitecorecloud.io";
7
7
  export declare const HIDDEN_RENDERING_NAME = "Hidden Rendering";
8
+ export declare const DEFAULT_SITECORE_AUTH_ENDPOINT = "https://auth.sitecorecloud.io/oauth/token";
9
+ export declare const DEFAULT_SITECORE_AUTH_AUDIENCE = "https://api.sitecorecloud.io";
@@ -0,0 +1,13 @@
1
+ export type FetchBearerTokenOptions = {
2
+ clientId: string;
3
+ clientSecret: string;
4
+ audience?: string;
5
+ endpoint?: string;
6
+ };
7
+ /**
8
+ * Connects to M2M endpoint and fetches the bearer token
9
+ * Uses client_id and client_secret from environment variables
10
+ * @param {FetchBearerTokenOptions} options client id, secret, and other parameters for connection to m2m endpoint
11
+ * @returns {string} bearer token string
12
+ */
13
+ export declare const fetchBearerToken: (options: FetchBearerTokenOptions) => Promise<any>;
@@ -2,3 +2,4 @@ export { generateSites, GenerateSitesConfig } from './generateSites';
2
2
  export { generateMetadata } from './generateMetadata';
3
3
  export { scaffoldComponent } from './scaffold';
4
4
  export * from './templating';
5
+ export { fetchBearerToken } from './auth/fetch-bearer-token';