@salesforce/templates 66.15.0 → 66.17.0-beta.0
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/lib/generators/apexClassGenerator.js +5 -0
- package/lib/generators/apexClassGenerator.js.map +1 -1
- package/lib/generators/apexTriggerGenerator.js +5 -0
- package/lib/generators/apexTriggerGenerator.js.map +1 -1
- package/lib/generators/baseGenerator.d.ts +10 -0
- package/lib/generators/baseGenerator.js +28 -0
- package/lib/generators/baseGenerator.js.map +1 -1
- package/lib/generators/lightningComponentGenerator.js +5 -6
- package/lib/generators/lightningComponentGenerator.js.map +1 -1
- package/lib/generators/lightningOutGenerator.d.ts +7 -0
- package/lib/generators/lightningOutGenerator.js +122 -0
- package/lib/generators/lightningOutGenerator.js.map +1 -0
- package/lib/i18n/i18n.d.ts +12 -0
- package/lib/i18n/i18n.js +12 -0
- package/lib/i18n/i18n.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/templates/lightningout/default/corsWhitelistOrigin.xml +4 -0
- package/lib/templates/lightningout/default/externalClientApplication.xml +7 -0
- package/lib/templates/lightningout/default/extlClntAppGlobalOauthSettings.xml +7 -0
- package/lib/templates/lightningout/default/extlClntAppOauthSettings.xml +6 -0
- package/lib/templates/lightningout/default/lightningOutApp.xml +20 -0
- package/lib/templates/lightningout/default/myDomainSettings.xml +4 -0
- package/lib/templates/lightningout/default/securitySettings.xml +6 -0
- package/lib/templates/project/angularextapp/_p_/_m_/_w_/_a_/package-lock.json +775 -683
- package/lib/templates/project/angularintapp/_p_/_m_/_w_/_a_/package-lock.json +781 -689
- package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/package-lock.json +417 -415
- package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/package-lock.json +423 -421
- package/lib/templates/uiBundles/angularbasic/package-lock.json +775 -683
- package/lib/templates/uiBundles/reactbasic/package-lock.json +417 -415
- package/lib/utils/lightningOut.d.ts +42 -0
- package/lib/utils/lightningOut.js +119 -0
- package/lib/utils/lightningOut.js.map +1 -0
- package/lib/utils/template-placeholders.d.ts +10 -0
- package/lib/utils/template-placeholders.js +19 -0
- package/lib/utils/template-placeholders.js.map +1 -1
- package/lib/utils/types.d.ts +28 -6
- package/lib/utils/types.js +8 -5
- package/lib/utils/types.js.map +1 -1
- package/package.json +1 -1
- /package/lib/templates/project/angularextapp/_p_/_m_/_w_/_a_/src/app/_f_/_ls_/{__examples__ → _ex_}/html-middleware-site-example.ts +0 -0
- /package/lib/templates/project/angularextapp/_p_/_m_/_w_/_a_/src/app/_f_/_ls_/{__examples__ → _ex_}/language-switcher-example.ts +0 -0
- /package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_ls_/{__examples__ → _ex_}/language-switcher-example.tsx +0 -0
- /package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_ls_/{__examples__ → _ex_}/vite-config-site-example.ts +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtimes supported by a Lightning Out 2.0 app.
|
|
3
|
+
* Exposed so CLI plugins can derive their flag `options` list from a single source of truth.
|
|
4
|
+
*/
|
|
5
|
+
export declare const LIGHTNING_OUT_RUNTIMES: readonly ["LWR_CORE", "CLWR"];
|
|
6
|
+
export type LightningOutRuntime = (typeof LIGHTNING_OUT_RUNTIMES)[number];
|
|
7
|
+
/** Result of normalizing a raw host-domain list. Arrays are index-aligned. */
|
|
8
|
+
export interface NormalizedHostDomains {
|
|
9
|
+
/** Canonical origins (scheme://host[:port]) for allowedDomains + CorsWhitelistOrigin urlPattern. */
|
|
10
|
+
origins: string[];
|
|
11
|
+
/** Filesystem-safe token per origin (index-aligned with `origins`). */
|
|
12
|
+
fileTokens: string[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Filesystem-/Metadata-API-safe token for an origin. Strips the scheme first
|
|
16
|
+
* (so we never emit a leading "https_" the Metadata API misreads as a namespace
|
|
17
|
+
* prefix), then collapses runs of non-alphanumerics to '_' and trims underscores.
|
|
18
|
+
*/
|
|
19
|
+
export declare function originToFileToken(origin: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Normalize a raw host-domain list into canonical origins + filename tokens.
|
|
22
|
+
* Lowercases scheme/host, strips default ports, rejects wildcards/paths and any
|
|
23
|
+
* scheme other than http/https, dedupes case-insensitively, and throws
|
|
24
|
+
* if two distinct origins collide on the same filename token.
|
|
25
|
+
*/
|
|
26
|
+
export declare function normalizeHostDomains(raw: string[]): NormalizedHostDomains;
|
|
27
|
+
/**
|
|
28
|
+
* Validate a Salesforce DeveloperName within a max length. Returns an error
|
|
29
|
+
* string (for the caller's error list) or undefined when valid. ASCII only:
|
|
30
|
+
* starts with a letter, then letters/digits/single underscores, no consecutive
|
|
31
|
+
* or trailing underscore.
|
|
32
|
+
*/
|
|
33
|
+
export declare function checkDeveloperName(value: string, field: string, maxLength: number): string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* True if `ref` is a component reference in kebab ("ns-my-component"), module/slash
|
|
36
|
+
* ("ns/myComponent"), or Aura colon ("ns:MyComponent") form. This is a structural
|
|
37
|
+
* well-formedness check only: it mirrors Core's Aura-enabled component-name validator
|
|
38
|
+
* (setup_lightningout loApplicationEditHelper.validateComponentName). Because this
|
|
39
|
+
* generator is offline it can't read the org's Aura-in-Lightning-Out preference, so it
|
|
40
|
+
* always allows the colon (Aura) form and defers the org-policy decision to deploy time.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isValidComponentRef(ref: string): boolean;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2026, salesforce.com, inc.
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Licensed under the BSD 3-Clause license.
|
|
6
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.LIGHTNING_OUT_RUNTIMES = void 0;
|
|
10
|
+
exports.originToFileToken = originToFileToken;
|
|
11
|
+
exports.normalizeHostDomains = normalizeHostDomains;
|
|
12
|
+
exports.checkDeveloperName = checkDeveloperName;
|
|
13
|
+
exports.isValidComponentRef = isValidComponentRef;
|
|
14
|
+
const node_url_1 = require("node:url");
|
|
15
|
+
const i18n_1 = require("../i18n");
|
|
16
|
+
/**
|
|
17
|
+
* Runtimes supported by a Lightning Out 2.0 app.
|
|
18
|
+
* Exposed so CLI plugins can derive their flag `options` list from a single source of truth.
|
|
19
|
+
*/
|
|
20
|
+
exports.LIGHTNING_OUT_RUNTIMES = ['LWR_CORE', 'CLWR'];
|
|
21
|
+
/**
|
|
22
|
+
* Filesystem-/Metadata-API-safe token for an origin. Strips the scheme first
|
|
23
|
+
* (so we never emit a leading "https_" the Metadata API misreads as a namespace
|
|
24
|
+
* prefix), then collapses runs of non-alphanumerics to '_' and trims underscores.
|
|
25
|
+
*/
|
|
26
|
+
function originToFileToken(origin) {
|
|
27
|
+
return origin
|
|
28
|
+
.replace(/^https?:\/\//, '')
|
|
29
|
+
.replace(/[^A-Za-z0-9]+/g, '_')
|
|
30
|
+
.replace(/^_+|_+$/g, '');
|
|
31
|
+
}
|
|
32
|
+
function normalizeOne(raw) {
|
|
33
|
+
const trimmed = (raw !== null && raw !== void 0 ? raw : '').trim();
|
|
34
|
+
if (trimmed.includes('*')) {
|
|
35
|
+
throw new Error(i18n_1.nls.localize('InvalidLightningOutHostDomain', [raw, 'wildcards are not allowed']));
|
|
36
|
+
}
|
|
37
|
+
let u;
|
|
38
|
+
try {
|
|
39
|
+
u = new node_url_1.URL(trimmed);
|
|
40
|
+
}
|
|
41
|
+
catch (_a) {
|
|
42
|
+
throw new Error(i18n_1.nls.localize('InvalidLightningOutHostDomain', [raw, 'not a valid absolute URL']));
|
|
43
|
+
}
|
|
44
|
+
const scheme = u.protocol.replace(':', '').toLowerCase();
|
|
45
|
+
const host = u.hostname.toLowerCase();
|
|
46
|
+
// Mirror Core's LightningOutApp.isValidHostDomain: a host domain is an origin-style
|
|
47
|
+
// allowlist entry, so any http or https origin is accepted (http is not restricted to
|
|
48
|
+
// localhost). Other schemes (ftp/ws/...) are rejected. Since this generator is offline it
|
|
49
|
+
// can't know whether a domain is dev or prod, so it defers any https-in-production policy
|
|
50
|
+
// (e.g. Secure-cookie requirements) to deploy/runtime rather than rejecting http here.
|
|
51
|
+
if (scheme !== 'https' && scheme !== 'http') {
|
|
52
|
+
throw new Error(i18n_1.nls.localize('InvalidLightningOutHostDomain', [raw, 'must use an http or https scheme']));
|
|
53
|
+
}
|
|
54
|
+
if (u.username || u.password) {
|
|
55
|
+
throw new Error(i18n_1.nls.localize('InvalidLightningOutHostDomain', [raw, 'must not contain user info']));
|
|
56
|
+
}
|
|
57
|
+
if ((u.pathname && u.pathname !== '/') || u.search || u.hash) {
|
|
58
|
+
throw new Error(i18n_1.nls.localize('InvalidLightningOutHostDomain', [raw, 'must not contain a path, query, or fragment']));
|
|
59
|
+
}
|
|
60
|
+
const defaultPort = scheme === 'https' ? '443' : '80';
|
|
61
|
+
const port = u.port && u.port !== defaultPort ? `:${u.port}` : '';
|
|
62
|
+
const origin = `${scheme}://${host}${port}`;
|
|
63
|
+
return { origin };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Normalize a raw host-domain list into canonical origins + filename tokens.
|
|
67
|
+
* Lowercases scheme/host, strips default ports, rejects wildcards/paths and any
|
|
68
|
+
* scheme other than http/https, dedupes case-insensitively, and throws
|
|
69
|
+
* if two distinct origins collide on the same filename token.
|
|
70
|
+
*/
|
|
71
|
+
function normalizeHostDomains(raw) {
|
|
72
|
+
const origins = [];
|
|
73
|
+
const fileTokens = [];
|
|
74
|
+
const seen = new Set();
|
|
75
|
+
const tokenToOrigin = new Map();
|
|
76
|
+
for (const entry of raw) {
|
|
77
|
+
const { origin } = normalizeOne(entry);
|
|
78
|
+
if (seen.has(origin)) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const token = originToFileToken(origin);
|
|
82
|
+
const priorOrigin = tokenToOrigin.get(token);
|
|
83
|
+
if (priorOrigin && priorOrigin !== origin) {
|
|
84
|
+
throw new Error(i18n_1.nls.localize('InvalidLightningOutHostDomainCollision', [origin, priorOrigin, token]));
|
|
85
|
+
}
|
|
86
|
+
seen.add(origin);
|
|
87
|
+
tokenToOrigin.set(token, origin);
|
|
88
|
+
origins.push(origin);
|
|
89
|
+
fileTokens.push(token);
|
|
90
|
+
}
|
|
91
|
+
return { origins, fileTokens };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Validate a Salesforce DeveloperName within a max length. Returns an error
|
|
95
|
+
* string (for the caller's error list) or undefined when valid. ASCII only:
|
|
96
|
+
* starts with a letter, then letters/digits/single underscores, no consecutive
|
|
97
|
+
* or trailing underscore.
|
|
98
|
+
*/
|
|
99
|
+
function checkDeveloperName(value, field, maxLength) {
|
|
100
|
+
if (!/^[A-Za-z][A-Za-z0-9_]*$/.test(value) || /__/.test(value) || value.endsWith('_')) {
|
|
101
|
+
return i18n_1.nls.localize('InvalidLightningOutName', [field, value]);
|
|
102
|
+
}
|
|
103
|
+
if (value.length > maxLength) {
|
|
104
|
+
return i18n_1.nls.localize('InvalidLightningOutNameLength', [field, String(maxLength), String(value.length)]);
|
|
105
|
+
}
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* True if `ref` is a component reference in kebab ("ns-my-component"), module/slash
|
|
110
|
+
* ("ns/myComponent"), or Aura colon ("ns:MyComponent") form. This is a structural
|
|
111
|
+
* well-formedness check only: it mirrors Core's Aura-enabled component-name validator
|
|
112
|
+
* (setup_lightningout loApplicationEditHelper.validateComponentName). Because this
|
|
113
|
+
* generator is offline it can't read the org's Aura-in-Lightning-Out preference, so it
|
|
114
|
+
* always allows the colon (Aura) form and defers the org-policy decision to deploy time.
|
|
115
|
+
*/
|
|
116
|
+
function isValidComponentRef(ref) {
|
|
117
|
+
return /^[a-z][a-zA-Z0-9_]*[-:/][A-Za-z][A-Za-z0-9_-]*[A-Za-z0-9]$/.test((ref !== null && ref !== void 0 ? ref : '').trim());
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=lightningOut.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightningOut.js","sourceRoot":"","sources":["../../src/utils/lightningOut.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAyBH,8CAKC;AA2CD,oDAqBC;AAQD,gDAQC;AAUD,kDAEC;AAxHD,uCAA+B;AAC/B,kCAA8B;AAE9B;;;GAGG;AACU,QAAA,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,CAAU,CAAC;AAWpE;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,MAAM;SACV,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,OAAO,GAAG,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,CAAM,CAAC;IACX,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,cAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACtC,oFAAoF;IACpF,sFAAsF;IACtF,0FAA0F;IAC1F,0FAA0F;IAC1F,uFAAuF;IACvF,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC,CAAC,CAAC;IAC5G,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,UAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC,CACpG,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,MAAM,MAAM,GAAG,GAAG,MAAM,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,GAAa;IAChD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,WAAW,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,wCAAwC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjB,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,KAAa,EAAE,KAAa,EAAE,SAAiB;IAChF,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtF,OAAO,UAAG,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,GAAW;IAC7C,OAAO,4DAA4D,CAAC,IAAI,CAAC,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/F,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Single source for placeholder rename (copy-templates) and replacement (uiBundleTemplateUtils).
|
|
3
|
+
* Some keys (e.g., FEATURES_PLACEHOLDER, EXAMPLES_PLACEHOLDER) have multiple entries for different app template shapes/layouts.
|
|
3
4
|
* Do not add .json - this .ts is compiled to lib/ so no copy step is needed.
|
|
4
5
|
*/
|
|
5
6
|
declare const _default: ({
|
|
@@ -38,5 +39,14 @@ declare const _default: ({
|
|
|
38
39
|
replacement: string;
|
|
39
40
|
removeEmptySibling?: undefined;
|
|
40
41
|
toPath?: undefined;
|
|
42
|
+
} | {
|
|
43
|
+
key: string;
|
|
44
|
+
placeholder: string;
|
|
45
|
+
dirInNpm: string;
|
|
46
|
+
parent: string;
|
|
47
|
+
subpath: string;
|
|
48
|
+
replacement: string;
|
|
49
|
+
removeEmptySibling?: undefined;
|
|
50
|
+
toPath?: undefined;
|
|
41
51
|
})[];
|
|
42
52
|
export default _default;
|
|
@@ -6,8 +6,11 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const tslib_1 = require("tslib");
|
|
10
|
+
const path = tslib_1.__importStar(require("path"));
|
|
9
11
|
/**
|
|
10
12
|
* Single source for placeholder rename (copy-templates) and replacement (uiBundleTemplateUtils).
|
|
13
|
+
* Some keys (e.g., FEATURES_PLACEHOLDER, EXAMPLES_PLACEHOLDER) have multiple entries for different app template shapes/layouts.
|
|
11
14
|
* Do not add .json - this .ts is compiled to lib/ so no copy step is needed.
|
|
12
15
|
*/
|
|
13
16
|
exports.default = [
|
|
@@ -87,6 +90,15 @@ exports.default = [
|
|
|
87
90
|
subpath: ['src', 'src/app'],
|
|
88
91
|
replacement: 'features',
|
|
89
92
|
},
|
|
93
|
+
// Angular templates (angularextapp/angularintapp) nest features one level deeper, under src/app.
|
|
94
|
+
{
|
|
95
|
+
key: 'FEATURES_PLACEHOLDER',
|
|
96
|
+
placeholder: '_f_',
|
|
97
|
+
dirInNpm: 'features',
|
|
98
|
+
parent: '_a_',
|
|
99
|
+
subpath: path.join('src', 'app'),
|
|
100
|
+
replacement: 'features',
|
|
101
|
+
},
|
|
90
102
|
{
|
|
91
103
|
key: 'LANGUAGE_SWITCHER_PLACEHOLDER',
|
|
92
104
|
placeholder: '_ls_',
|
|
@@ -108,6 +120,13 @@ exports.default = [
|
|
|
108
120
|
parent: '_os_',
|
|
109
121
|
replacement: '__examples__',
|
|
110
122
|
},
|
|
123
|
+
{
|
|
124
|
+
key: 'EXAMPLES_PLACEHOLDER',
|
|
125
|
+
placeholder: '_ex_',
|
|
126
|
+
dirInNpm: '__examples__',
|
|
127
|
+
parent: '_ls_',
|
|
128
|
+
replacement: '__examples__',
|
|
129
|
+
},
|
|
111
130
|
{
|
|
112
131
|
key: 'GLOBAL_SEARCH_PLACEHOLDER',
|
|
113
132
|
placeholder: '_gs_',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-placeholders.js","sourceRoot":"","sources":["../../src/utils/template-placeholders.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"template-placeholders.js","sourceRoot":"","sources":["../../src/utils/template-placeholders.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/types.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import FlexipageGenerator from '../generators/flexipageGenerator';
|
|
|
5
5
|
import LightningAppGenerator from '../generators/lightningAppGenerator';
|
|
6
6
|
import LightningComponentGenerator from '../generators/lightningComponentGenerator';
|
|
7
7
|
import UIEmbeddingGenerator from '../generators/uiEmbeddingGenerator';
|
|
8
|
+
import LightningOutGenerator from '../generators/lightningOutGenerator';
|
|
8
9
|
import LightningEventGenerator from '../generators/lightningEventGenerator';
|
|
9
10
|
import LightningInterfaceGenerator from '../generators/lightningInterfaceGenerator';
|
|
10
11
|
import LightningTestGenerator from '../generators/lightningTestGenerator';
|
|
@@ -27,7 +28,7 @@ export type GeneratorContext = {
|
|
|
27
28
|
/** Absolute path to built-in templates root. Overrides __dirname-based resolution. */
|
|
28
29
|
readonly templatesRootPath?: string;
|
|
29
30
|
};
|
|
30
|
-
export type Generators = typeof AnalyticsTemplateGenerator | typeof ApexClassGenerator | typeof ApexTriggerGenerator | typeof FlexipageGenerator | typeof LightningAppGenerator | typeof LightningComponentGenerator | typeof LightningEventGenerator | typeof LightningTestGenerator | typeof LightningInterfaceGenerator | typeof DigitalExperienceSiteGenerator | typeof UIEmbeddingGenerator | typeof ProjectGenerator | typeof StaticResourceGenerator | typeof VisualforceComponentGenerator | typeof VisualforcePageGenerator | typeof UIBundleGenerator;
|
|
31
|
+
export type Generators = typeof AnalyticsTemplateGenerator | typeof ApexClassGenerator | typeof ApexTriggerGenerator | typeof FlexipageGenerator | typeof LightningAppGenerator | typeof LightningComponentGenerator | typeof LightningEventGenerator | typeof LightningTestGenerator | typeof LightningInterfaceGenerator | typeof DigitalExperienceSiteGenerator | typeof UIEmbeddingGenerator | typeof LightningOutGenerator | typeof ProjectGenerator | typeof StaticResourceGenerator | typeof VisualforceComponentGenerator | typeof VisualforcePageGenerator | typeof UIBundleGenerator;
|
|
31
32
|
/**
|
|
32
33
|
* Available Template types
|
|
33
34
|
* Each template type must have a corresponding generator class:
|
|
@@ -47,11 +48,12 @@ export declare enum TemplateType {
|
|
|
47
48
|
LightningTest = 8,
|
|
48
49
|
DigitalExperienceSite = 9,
|
|
49
50
|
UIEmbedding = 10,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
LightningOut = 11,
|
|
52
|
+
Project = 12,
|
|
53
|
+
VisualforceComponent = 13,
|
|
54
|
+
VisualforcePage = 14,
|
|
55
|
+
StaticResource = 15,
|
|
56
|
+
UIBundle = 16
|
|
55
57
|
}
|
|
56
58
|
export declare const generators: Map<TemplateType, GeneratorClass<any>>;
|
|
57
59
|
export type CreateOutput = {
|
|
@@ -122,6 +124,26 @@ export interface UIEmbeddingOptions extends TemplateOptions {
|
|
|
122
124
|
title: string;
|
|
123
125
|
internal: boolean;
|
|
124
126
|
}
|
|
127
|
+
export interface LightningOutEcaOptions {
|
|
128
|
+
/** ECA DeveloperName (≤ 80 chars). */
|
|
129
|
+
name: string;
|
|
130
|
+
/** Required contact email. */
|
|
131
|
+
contactEmail: string;
|
|
132
|
+
/** Required absolute https callback/redirect URL. */
|
|
133
|
+
callbackUrl: string;
|
|
134
|
+
}
|
|
135
|
+
export interface LightningOutOptions extends TemplateOptions {
|
|
136
|
+
/** LightningOutApp DeveloperName AND <applicationName> value (≤ 64 chars). */
|
|
137
|
+
appName: string;
|
|
138
|
+
/** LWR_CORE or CLWR. */
|
|
139
|
+
runtime: 'LWR_CORE' | 'CLWR';
|
|
140
|
+
/** Explicit https origins of the external host pages that embed the app. Required, ≥ 1. */
|
|
141
|
+
hostDomains: string[];
|
|
142
|
+
/** Optional component references exposed by the app (LWC "c/x" or Aura "c:X"). */
|
|
143
|
+
components?: string[];
|
|
144
|
+
/** External Client Application (OAuth) settings. */
|
|
145
|
+
eca: LightningOutEcaOptions;
|
|
146
|
+
}
|
|
125
147
|
export interface ProjectOptions extends TemplateOptions {
|
|
126
148
|
projectname: string;
|
|
127
149
|
defaultpackagedir: string;
|
package/lib/utils/types.js
CHANGED
|
@@ -15,6 +15,7 @@ const flexipageGenerator_1 = tslib_1.__importDefault(require("../generators/flex
|
|
|
15
15
|
const lightningAppGenerator_1 = tslib_1.__importDefault(require("../generators/lightningAppGenerator"));
|
|
16
16
|
const lightningComponentGenerator_1 = tslib_1.__importDefault(require("../generators/lightningComponentGenerator"));
|
|
17
17
|
const uiEmbeddingGenerator_1 = tslib_1.__importDefault(require("../generators/uiEmbeddingGenerator"));
|
|
18
|
+
const lightningOutGenerator_1 = tslib_1.__importDefault(require("../generators/lightningOutGenerator"));
|
|
18
19
|
const lightningEventGenerator_1 = tslib_1.__importDefault(require("../generators/lightningEventGenerator"));
|
|
19
20
|
const lightningInterfaceGenerator_1 = tslib_1.__importDefault(require("../generators/lightningInterfaceGenerator"));
|
|
20
21
|
const lightningTestGenerator_1 = tslib_1.__importDefault(require("../generators/lightningTestGenerator"));
|
|
@@ -44,11 +45,12 @@ var TemplateType;
|
|
|
44
45
|
TemplateType[TemplateType["LightningTest"] = 8] = "LightningTest";
|
|
45
46
|
TemplateType[TemplateType["DigitalExperienceSite"] = 9] = "DigitalExperienceSite";
|
|
46
47
|
TemplateType[TemplateType["UIEmbedding"] = 10] = "UIEmbedding";
|
|
47
|
-
TemplateType[TemplateType["
|
|
48
|
-
TemplateType[TemplateType["
|
|
49
|
-
TemplateType[TemplateType["
|
|
50
|
-
TemplateType[TemplateType["
|
|
51
|
-
TemplateType[TemplateType["
|
|
48
|
+
TemplateType[TemplateType["LightningOut"] = 11] = "LightningOut";
|
|
49
|
+
TemplateType[TemplateType["Project"] = 12] = "Project";
|
|
50
|
+
TemplateType[TemplateType["VisualforceComponent"] = 13] = "VisualforceComponent";
|
|
51
|
+
TemplateType[TemplateType["VisualforcePage"] = 14] = "VisualforcePage";
|
|
52
|
+
TemplateType[TemplateType["StaticResource"] = 15] = "StaticResource";
|
|
53
|
+
TemplateType[TemplateType["UIBundle"] = 16] = "UIBundle";
|
|
52
54
|
})(TemplateType || (exports.TemplateType = TemplateType = {}));
|
|
53
55
|
exports.generators = new Map([
|
|
54
56
|
[TemplateType.AnalyticsTemplate, analyticsTemplateGenerator_1.default],
|
|
@@ -62,6 +64,7 @@ exports.generators = new Map([
|
|
|
62
64
|
[TemplateType.LightningTest, lightningTestGenerator_1.default],
|
|
63
65
|
[TemplateType.DigitalExperienceSite, digitalExperienceSiteGenerator_1.default],
|
|
64
66
|
[TemplateType.UIEmbedding, uiEmbeddingGenerator_1.default],
|
|
67
|
+
[TemplateType.LightningOut, lightningOutGenerator_1.default],
|
|
65
68
|
[TemplateType.Project, projectGenerator_1.default],
|
|
66
69
|
[TemplateType.StaticResource, staticResourceGenerator_1.default],
|
|
67
70
|
[TemplateType.VisualforceComponent, visualforceComponentGenerator_1.default],
|
package/lib/utils/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,kHAAkF;AAClF,kGAAkE;AAClE,sGAAsE;AACtE,kGAAkE;AAClE,wGAAwE;AACxE,oHAAoF;AACpF,sGAAsE;AACtE,4GAA4E;AAC5E,oHAAoF;AACpF,0GAA0E;AAC1E,0HAA0F;AAC1F,8FAA8D;AAC9D,4GAA4E;AAC5E,wHAAwF;AACxF,8GAA8E;AAC9E,gGAAgE;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,kHAAkF;AAClF,kGAAkE;AAClE,sGAAsE;AACtE,kGAAkE;AAClE,wGAAwE;AACxE,oHAAoF;AACpF,sGAAsE;AACtE,wGAAwE;AACxE,4GAA4E;AAC5E,oHAAoF;AACpF,0GAA0E;AAC1E,0HAA0F;AAC1F,8FAA8D;AAC9D,4GAA4E;AAC5E,wHAAwF;AACxF,8GAA8E;AAC9E,gGAAgE;AAwChE;;;;;;GAMG;AACH,IAAY,YAkBX;AAlBD,WAAY,YAAY;IACtB,yEAAiB,CAAA;IACjB,yDAAS,CAAA;IACT,6DAAW,CAAA;IACX,yDAAS,CAAA;IACT,+DAAY,CAAA;IACZ,2EAAkB,CAAA;IAClB,mEAAc,CAAA;IACd,2EAAkB,CAAA;IAClB,iEAAa,CAAA;IACb,iFAAqB,CAAA;IACrB,8DAAW,CAAA;IACX,gEAAY,CAAA;IACZ,sDAAO,CAAA;IACP,gFAAoB,CAAA;IACpB,sEAAe,CAAA;IACf,oEAAc,CAAA;IACd,wDAAQ,CAAA;AACV,CAAC,EAlBW,YAAY,4BAAZ,YAAY,QAkBvB;AAEY,QAAA,UAAU,GAAG,IAAI,GAAG,CAAoC;IACnE,CAAC,YAAY,CAAC,iBAAiB,EAAE,oCAA0B,CAAC;IAC5D,CAAC,YAAY,CAAC,SAAS,EAAE,4BAAkB,CAAC;IAC5C,CAAC,YAAY,CAAC,WAAW,EAAE,8BAAoB,CAAC;IAChD,CAAC,YAAY,CAAC,SAAS,EAAE,4BAAkB,CAAC;IAC5C,CAAC,YAAY,CAAC,YAAY,EAAE,+BAAqB,CAAC;IAClD,CAAC,YAAY,CAAC,kBAAkB,EAAE,qCAA2B,CAAC;IAC9D,CAAC,YAAY,CAAC,cAAc,EAAE,iCAAuB,CAAC;IACtD,CAAC,YAAY,CAAC,kBAAkB,EAAE,qCAA2B,CAAC;IAC9D,CAAC,YAAY,CAAC,aAAa,EAAE,gCAAsB,CAAC;IACpD,CAAC,YAAY,CAAC,qBAAqB,EAAE,wCAA8B,CAAC;IACpE,CAAC,YAAY,CAAC,WAAW,EAAE,8BAAoB,CAAC;IAChD,CAAC,YAAY,CAAC,YAAY,EAAE,+BAAqB,CAAC;IAClD,CAAC,YAAY,CAAC,OAAO,EAAE,0BAAgB,CAAC;IACxC,CAAC,YAAY,CAAC,cAAc,EAAE,iCAAuB,CAAC;IACtD,CAAC,YAAY,CAAC,oBAAoB,EAAE,uCAA6B,CAAC;IAClE,CAAC,YAAY,CAAC,eAAe,EAAE,kCAAwB,CAAC;IACxD,CAAC,YAAY,CAAC,QAAQ,EAAE,2BAAiB,CAAC;CAC3C,CAAC,CAAC"}
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|