@adminide-stack/form-builder-core 5.1.8-alpha.16 → 5.1.8-alpha.160

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/LICENSE CHANGED
@@ -1,30 +1,71 @@
1
- PROPRIETARY SOFTWARE LICENSE
1
+ PROPRIETARY SOFTWARE LICENSE AGREEMENT
2
2
 
3
- Copyright (c) 2025 CDMBase. All Rights Reserved.
3
+ Copyright (c) 2026 CDEBase Inc. All Rights Reserved.
4
4
 
5
- This software and associated documentation files (the "Software") are the
6
- proprietary and confidential property of CDMBase.
5
+ NOTICE TO USER: THIS IS A CONTRACT. BY INSTALLING, COPYING, OR OTHERWISE
6
+ USING THE SOFTWARE, YOU AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE.
7
+ IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, DO NOT INSTALL, COPY,
8
+ OR USE THE SOFTWARE.
7
9
 
8
- ALL RIGHTS RESERVED.
10
+ NO LICENSE GRANTED
11
+ No license, express or implied, is granted to any person or entity.
12
+ All rights are reserved by CDEBase Inc. Any use of this software
13
+ without prior written authorization from CDEBase Inc. is strictly
14
+ prohibited.
9
15
 
10
- No part of this Software may be reproduced, distributed, transmitted,
11
- displayed, published, or broadcast in any form or by any means, electronic,
12
- mechanical, photocopying, recording, or otherwise, without the prior written
13
- permission of CDMBase.
16
+ RESTRICTIONS
17
+ You may NOT:
18
+ a) Copy, modify, adapt, translate, reverse engineer, decompile, or
19
+ disassemble the software or create derivative works based on it
20
+ b) Distribute, sublicense, lease, rent, loan, or otherwise transfer
21
+ the software to any third party
22
+ c) Remove or alter any proprietary notices, labels, or marks on the
23
+ software
24
+ d) Use the software to develop competing products or services
25
+ e) Publicly disclose any benchmarking or performance results
26
+ f) Use the software in any manner that violates applicable laws or
27
+ regulations
28
+ g) Access, view, or use any portion of the source code without
29
+ explicit prior written consent from CDEBase Inc.
14
30
 
15
- The Software is provided to authorized users only under separate written
16
- agreement and may not be used, copied, modified, merged, published, distributed,
17
- sublicensed, and/or sold without express written permission from CDMBase.
31
+ OWNERSHIP
32
+ This software is the exclusive proprietary property of CDEBase Inc.
33
+ and is protected by copyright laws and international treaty provisions.
34
+ CDEBase Inc. retains all rights, title, and interest in and to the
35
+ software, including all copyrights, patents, trade secrets, trademarks,
36
+ and other intellectual property rights. No rights are transferred or
37
+ conveyed by possession or access to this software.
18
38
 
19
- UNAUTHORIZED USE, REPRODUCTION, OR DISTRIBUTION OF THIS SOFTWARE, OR ANY
20
- PORTION OF IT, MAY RESULT IN SEVERE CIVIL AND CRIMINAL PENALTIES, AND WILL
21
- BE PROSECUTED TO THE MAXIMUM EXTENT POSSIBLE UNDER LAW.
39
+ CONFIDENTIALITY
40
+ The software contains trade secrets and proprietary information of
41
+ CDEBase Inc. You agree to maintain strict confidentiality of the
42
+ software and not disclose it, in whole or in part, to any third party
43
+ without prior written consent of CDEBase Inc. This obligation survives
44
+ termination of any agreement with CDEBase Inc.
22
45
 
23
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26
- CDMBase BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27
- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
46
+ TERMINATION
47
+ Any unauthorized use automatically and immediately terminates all
48
+ permissions. CDEBase Inc. may seek all available legal and equitable
49
+ remedies, including injunctive relief, for any unauthorized use or
50
+ disclosure.
29
51
 
30
- For licensing inquiries, please contact: legal@cdmbase.com
52
+ WARRANTY DISCLAIMER
53
+ THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS
54
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
55
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
56
+ NONINFRINGEMENT.
57
+
58
+ LIMITATION OF LIABILITY
59
+ IN NO EVENT SHALL CDEBASE INC. BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
60
+ INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER ARISING OUT OF THE USE
61
+ OF OR INABILITY TO USE THE SOFTWARE.
62
+
63
+ GOVERNING LAW
64
+ This agreement shall be governed by and construed in accordance with
65
+ the laws of the jurisdiction in which CDEBase Inc. is registered,
66
+ without regard to its conflict of law provisions.
67
+
68
+ For licensing inquiries, contact: legal@cdebase.com
69
+
70
+ CDEBase Inc.
71
+ All Rights Reserved.
@@ -1,13 +1,17 @@
1
1
  /**
2
- * CDN / asset-URL configuration.
2
+ * CDN / asset-URL configuration for connector artwork.
3
3
  *
4
4
  * Connector configs store only the *path* portion
5
5
  * (e.g. `_side/thirdparty/logos/gmail.svg`); call `iurl(path)` to get the
6
6
  * full URL at runtime.
7
7
  *
8
- * The CDN base is read from `AWS_CDN_URL` env var via `setCdnBase()`.
9
- * Browser packages call `setCdnBase(config.AWS_CDN_URL)` at init time.
8
+ * Logos are served from the `cde-extensions` bucket (the same CDN that fronts
9
+ * the connector registry and pods), *not* from the tenant upload bucket that
10
+ * `AWS_CDN_URL` points at. Override with the `EXTENSION_CDN_URL` env var via
11
+ * `setCdnBase()`; browser packages do that at init time.
10
12
  */
13
+ /** `cde-extensions` bucket CDN — the default home for connector artwork. */
14
+ export declare const DEFAULT_EXTENSION_CDN_BASE = "https://cdn.yantra.app";
11
15
  /** Set the CDN base URL (typically called once from env-config). */
12
16
  export declare function setCdnBase(base: string): void;
13
17
  /** Get the current CDN base URL. */
@@ -1 +1 @@
1
- {"version":3,"file":"cdnConfig.d.ts","sourceRoot":"","sources":["../../src/config/cdnConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,oCAAoC;AACpC,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,0DAA0D;AAC1D,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOzC"}
1
+ {"version":3,"file":"cdnConfig.d.ts","sourceRoot":"","sources":["../../src/config/cdnConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAInE,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAS7C;AAED,oCAAoC;AACpC,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,0DAA0D;AAC1D,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOzC"}
@@ -1,18 +1,28 @@
1
1
  /**
2
- * CDN / asset-URL configuration.
2
+ * CDN / asset-URL configuration for connector artwork.
3
3
  *
4
4
  * Connector configs store only the *path* portion
5
5
  * (e.g. `_side/thirdparty/logos/gmail.svg`); call `iurl(path)` to get the
6
6
  * full URL at runtime.
7
7
  *
8
- * The CDN base is read from `AWS_CDN_URL` env var via `setCdnBase()`.
9
- * Browser packages call `setCdnBase(config.AWS_CDN_URL)` at init time.
8
+ * Logos are served from the `cde-extensions` bucket (the same CDN that fronts
9
+ * the connector registry and pods), *not* from the tenant upload bucket that
10
+ * `AWS_CDN_URL` points at. Override with the `EXTENSION_CDN_URL` env var via
11
+ * `setCdnBase()`; browser packages do that at init time.
10
12
  */
11
- let _cdnBase = '';
13
+ /** `cde-extensions` bucket CDN — the default home for connector artwork. */
14
+ const DEFAULT_EXTENSION_CDN_BASE = 'https://cdn.yantra.app';
15
+ let _cdnBase = DEFAULT_EXTENSION_CDN_BASE;
12
16
  /** Set the CDN base URL (typically called once from env-config). */
13
17
  function setCdnBase(base) {
14
- // Strip trailing slash for consistency.
15
- _cdnBase = base.endsWith('/') ? base.slice(0, -1) : base;
18
+ // Strip trailing slash for consistency. Empty/blank resets to the default
19
+ // so an unset env var can never degrade logos to host-relative 404s.
20
+ const trimmed = (base || '').trim();
21
+ if (!trimmed) {
22
+ _cdnBase = DEFAULT_EXTENSION_CDN_BASE;
23
+ return;
24
+ }
25
+ _cdnBase = trimmed.endsWith('/') ? trimmed.slice(0, -1) : trimmed;
16
26
  }
17
27
  /** Get the current CDN base URL. */
18
28
  function getCdnBase() {
@@ -26,4 +36,4 @@ function iurl(path) {
26
36
  // Strip leading slash so we don't end up with a double-slash.
27
37
  const clean = path.startsWith('/') ? path.slice(1) : path;
28
38
  return _cdnBase ? `${_cdnBase}/${clean}` : clean;
29
- }export{getCdnBase,iurl,setCdnBase};//# sourceMappingURL=cdnConfig.js.map
39
+ }export{DEFAULT_EXTENSION_CDN_BASE,getCdnBase,iurl,setCdnBase};//# sourceMappingURL=cdnConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdnConfig.js","sources":["../../src/config/cdnConfig.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;AASG;AAIH,IAAA,QAAA,GAAA,EAAA;AACA;AAKA,SAAA,UAAA,CAAA,IAAA,EAAA;AACA;AAIA,EAAA,QAAA,GAAA,IAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,IAAA,CAAA,KAAA,CAAA,CAAA,EAAA,EAAA,CAAA,GAAA,IAA0D;AAC1D;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"cdnConfig.js","sources":["../../src/config/cdnConfig.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;AAWG;AAEH;AACA,MAAA,0BAAa,GAAA;AAIb,IAAA,QAAA,GAAA,0BAAA;AACA;AAWA,SAAA,UAAA,CAAA,IAAA,EAAA;AACA;AAIA;AACA,EAAA,MAAA,OAAA,GAAA,CAAA,IAAA,MAAqB,EAAA,IAAM,EAAA;;;;;;;;;;;;;;;;;;;"}
package/lib/index.d.ts CHANGED
@@ -10,4 +10,5 @@ export * from './utils/connectorFieldTokenResolver';
10
10
  export * from './utils/deepMergeFormSteps';
11
11
  export * from './utils/json';
12
12
  export * from './utils/schemaHelpers';
13
+ export * from './utils/integrationCommands';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAC9F,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAC9F,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC"}
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- export{getCdnBase,iurl,setCdnBase}from'./config/cdnConfig.js';export{CONNECTOR_CATALOG_SAMPLE_CHUNK_SIZE,CONNECTOR_CATALOG_SAMPLE_ENTRIES,CONNECTOR_CATALOG_SAMPLE_ENTRY_BY_SCHEMA_ID}from'./config/connectorSampleOptions.generated.js';export{CONNECTOR_CATEGORIES}from'./config/configTypes.js';export{generateFunctionCode,generateHandlerBody,generateHandlerBodyWithReturn,generateStepFromFunction,generateStepFunctionsFromDB,wrapStepsInInngestFunction}from'./inngest/generateFunctionCode.js';export{getAvailableDefinitions,installLibraryForAutocomplete,setupMonacoAutocomplete,setupStepAutocomplete,updateAutocompleteConfig}from'./inngest/monacoAutocompleteIntegration.js';export{cleanStepCode,extractFunctionBody,extractStepVarName,generateFromExtractedFunctions}from'./inngest/stepGenerator.js';export{buildMetadataSchema,buildProviderConfig,buildProviderSeedFromConfig,buildProviderWithRefs,createOAuthSeedGenerator}from'./utils/authMetaDataSchema.js';export{resolveConnectorFieldTokensInString,resolveConnectorFieldTokensInValue}from'./utils/connectorFieldTokenResolver.js';export{deepMergeElements,deepMergeFormSteps}from'./utils/deepMergeFormSteps.js';export{flatten,unflatten}from'./utils/json.js';export{DatabaseType,FORM_METADATA_NODE_TYPE,FormType,SCHEMA_ID_OPTIONS,flattenSchemaWithUiContext,flattenSchemas,flattenUiSchema,isContributionSchemaId,parseSampleNodes}from'./utils/schemaHelpers.js';//# sourceMappingURL=index.js.map
1
+ export{DEFAULT_EXTENSION_CDN_BASE,getCdnBase,iurl,setCdnBase}from'./config/cdnConfig.js';export{CONNECTOR_CATALOG_SAMPLE_CHUNK_SIZE,CONNECTOR_CATALOG_SAMPLE_ENTRIES,CONNECTOR_CATALOG_SAMPLE_ENTRY_BY_SCHEMA_ID}from'./config/connectorSampleOptions.generated.js';export{CONNECTOR_CATEGORIES}from'./config/configTypes.js';export{generateFunctionCode,generateHandlerBody,generateHandlerBodyWithReturn,generateStepFromFunction,generateStepFunctionsFromDB,wrapStepsInInngestFunction}from'./inngest/generateFunctionCode.js';export{getAvailableDefinitions,installLibraryForAutocomplete,setupMonacoAutocomplete,setupStepAutocomplete,updateAutocompleteConfig}from'./inngest/monacoAutocompleteIntegration.js';export{cleanStepCode,extractFunctionBody,extractStepVarName,generateFromExtractedFunctions}from'./inngest/stepGenerator.js';export{buildCredentialOAuthConfigKey,buildCredentialOAuthTokenVaultKeys,buildCredentialScopedSecretKey,buildMetadataSchema,buildNamespaceCredentialOAuthTokenVaultKeys,buildOAuthInstanceTokenVaultKeys,buildProviderConfig,buildProviderCredentialOAuthTokenVaultKeys,buildProviderSeedFromConfig,buildProviderWithRefs,createOAuthSeedGenerator,credentialIdFromOAuthConfigKey,credentialIdFromScopedSecretKey,isCredentialAccountConfigKey,isCredentialScopedSecretKey,namespaceFromOAuthConfigKey,stripCredentialAccountConfigKey,stripCredentialScopedSecretKey,toVaultPrefix}from'./utils/authMetaDataSchema.js';export{resolveConnectorFieldTokensInString,resolveConnectorFieldTokensInValue}from'./utils/connectorFieldTokenResolver.js';export{deepMergeElements,deepMergeFormSteps}from'./utils/deepMergeFormSteps.js';export{flatten,unflatten}from'./utils/json.js';export{DatabaseType,FORM_METADATA_NODE_TYPE,FormType,SCHEMA_ID_OPTIONS,flattenSchemaWithUiContext,flattenSchemas,flattenUiSchema,isContributionSchemaId,parseSampleNodes}from'./utils/schemaHelpers.js';export{buildCommandsFromActions,buildIntegrationConfigurationContribution,buildMenusFromCommands,buildParamBindings,extractTemplateUserFields,extractUserFieldsFromStepperFormMetadata,parseInputTemplate,resolveInputTemplate}from'./utils/integrationCommands.js';//# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  import { ConnectorType } from 'common';
2
2
  import { ConnectorCategoryTuple, ConnectorConfig, CustomButtonConfig, FormFieldConfig, FormResourceConfig, MCPProviderConfig } from '../config/configTypes';
3
3
  type SampleFormGenerator = (title?: string, formIcon?: string, formExtensionId?: string) => any[];
4
- interface ProviderTemplateSeed {
4
+ export interface ProviderTemplateSeed {
5
5
  key: string;
6
6
  providerId: string;
7
7
  title: string;
@@ -179,7 +179,96 @@ export declare const buildProviderConfig: (providerConfig: CustomProviderConfigI
179
179
  }[];
180
180
  };
181
181
  export declare function buildProviderSeedFromConfig(provider: ConnectorConfig | MCPProviderConfig, connectorType: ConnectorType): ProviderTemplateSeed;
182
- export declare function createOAuthSeedGenerator(seeds: ProviderTemplateSeed[]): SampleFormGenerator;
182
+ /**
183
+ * Normalize a provider id or form namespace into a vault secret key prefix.
184
+ * e.g. `gmail-app-hk7zf7w9` → `GMAIL_APP_HK7ZF7W9`
185
+ */
186
+ export declare const toVaultPrefix: (value: string) => string;
187
+ /**
188
+ * Per-form-instance vault keys for non-account-specific secrets (e.g. API key fields).
189
+ *
190
+ * Do NOT use these for OAuth access/refresh tokens when multiple accounts can share
191
+ * one published form — connecting account B would overwrite account A's vault entry.
192
+ * Access/refresh live under per-credential `configKey.accounts.{id}.*` and durable
193
+ * `CRED_<id>_*` vault keys via syncOAuthTokensToCredentialVault.
194
+ *
195
+ * Client id/secret stay provider-scoped (shared OAuth app credentials).
196
+ */
197
+ export declare const buildOAuthInstanceTokenVaultKeys: (namespace: string) => {
198
+ /** @deprecated Do not wire access tokens to this shared key — use CRED_* instead. */
199
+ readonly accessToken: `${string}_ACCESS_TOKEN`;
200
+ /** @deprecated Do not wire refresh tokens to this shared key — use CRED_* instead. */
201
+ readonly refreshToken: `${string}_REFRESH_TOKEN`;
202
+ readonly apiKey: `${string}_API_KEY`;
203
+ };
204
+ /**
205
+ * Credential-scoped vault key: `{BASE_KEY}_{credentialId}`.
206
+ *
207
+ * This is the platform's own convention — `preferences-service` resolves a
208
+ * `format: 'secret'` config key to `${defaultValueSource.secretKey}_${credentialId}`
209
+ * on both read and write whenever the node context carries a `credentialId`.
210
+ * API-key connectors reuse the exact same shape so several credentials for one
211
+ * provider can coexist in a project/env instead of overwriting each other's
212
+ * shared `PROVIDER_API_KEY` entry (the same isolation OAuth gets from its
213
+ * per-account configKey).
214
+ *
215
+ * Idempotent when `baseSecretKey` is already scoped to the same credential.
216
+ */
217
+ export declare const buildCredentialScopedSecretKey: (baseSecretKey: string, credentialId: string) => string;
218
+ /** True when a vault key already carries a `_{credentialId}` suffix. */
219
+ export declare const isCredentialScopedSecretKey: (secretKey: string) => boolean;
220
+ /** Strip `_{credentialId}` to recover the catalog/base vault key. */
221
+ export declare const stripCredentialScopedSecretKey: (secretKey: string) => string;
222
+ /** credentialId embedded in a scoped vault key, if any. */
223
+ export declare const credentialIdFromScopedSecretKey: (secretKey: string) => string | null;
224
+ /**
225
+ * Durable per-credential token vault keys. Used after OAuth connect so each
226
+ * FormBuilderCredential keeps its own token pair even when several credentials
227
+ * share the same published template/configKey staging path.
228
+ */
229
+ export declare const buildCredentialOAuthTokenVaultKeys: (credentialId: string) => {
230
+ readonly accessToken: `${string}_ACCESS_TOKEN`;
231
+ readonly refreshToken: `${string}_REFRESH_TOKEN`;
232
+ };
233
+ /**
234
+ * Provider-scoped per-credential OAuth vault keys (e.g. OAuth callback writes
235
+ * `GOOGLE_GMAIL_ACCESS_TOKEN_{credentialId}` to Personal Vault).
236
+ */
237
+ export declare const buildProviderCredentialOAuthTokenVaultKeys: (providerId: string, credentialId: string) => {
238
+ readonly accessToken: `${string}_ACCESS_TOKEN_${string}`;
239
+ readonly refreshToken: `${string}_REFRESH_TOKEN_${string}`;
240
+ };
241
+ /**
242
+ * Namespace-scoped per-credential OAuth vault keys (`google_gmail-app` → `GOOGLE_GMAIL_APP_*_{id}`).
243
+ */
244
+ export declare const buildNamespaceCredentialOAuthTokenVaultKeys: (namespace: string, credentialId: string) => {
245
+ readonly accessToken: `${string}_ACCESS_TOKEN_${string}`;
246
+ readonly refreshToken: `${string}_REFRESH_TOKEN_${string}`;
247
+ };
248
+ /** True when configKey is already scoped to a FormBuilder credential account. */
249
+ export declare const isCredentialAccountConfigKey: (configKey: string) => boolean;
250
+ /** Strip `.accounts.{credentialId}` to recover the published template configKey. */
251
+ export declare const stripCredentialAccountConfigKey: (configKey: string) => string;
252
+ /** credentialId embedded in an account-scoped configKey, if any. */
253
+ export declare const credentialIdFromOAuthConfigKey: (configKey: string) => string | null;
254
+ /**
255
+ * Build the per-credential OAuth configKey used for connect / refresh / disconnect.
256
+ * Idempotent when `baseConfigKey` is already account-scoped for the same id.
257
+ */
258
+ export declare const buildCredentialOAuthConfigKey: (baseConfigKey: string, credentialId: string) => string;
259
+ /** Extract the form namespace from an oauthConnector configKey path. */
260
+ export declare const namespaceFromOAuthConfigKey: (configKey: string) => string | null;
261
+ export interface SeedGeneratorOptions {
262
+ /**
263
+ * Exact namespace (== formId) per seed, aligned by index. Pass a published template's
264
+ * key to regenerate a form that is identity-compatible with it - same formId and the
265
+ * same `integrationSettings.settings.<type>.<ns>.oauthConnector` configuration keys -
266
+ * so stored credentials and OAuth writes keep resolving. Omitted entries fall back to
267
+ * the random-suffix default (new-form behavior).
268
+ */
269
+ namespaces?: Array<string | undefined>;
270
+ }
271
+ export declare function createOAuthSeedGenerator(seeds: ProviderTemplateSeed[], options?: SeedGeneratorOptions): SampleFormGenerator;
183
272
  export declare const buildProviderWithRefs: (provider: any, sampleNodes: any[]) => any;
184
273
  export declare const buildMetadataSchema: (sampleNodes: any[]) => ({
185
274
  schemaId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"authMetaDataSchema.d.ts","sourceRoot":"","sources":["../../src/utils/authMetaDataSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authMetaDataSchema.d.ts","sourceRoot":"","sources":["../../src/utils/authMetaDataSchema.ts"],"names":[],"mappings":"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"}
@@ -226,7 +226,134 @@ function buildInngestNode() {
226
226
  };
227
227
  }
228
228
  const seedCategory = seed => seed.categories[0];
229
+ /**
230
+ * uiLayout credential namespace bucket — collapses every connector category into
231
+ * one of three: app | llm | mcp. MCP by connectorType; LLM seeds carry connectorType
232
+ * 'app' but a `${id}:llm` key; everything else is an app connector.
233
+ */
234
+ const seedCredentialNamespace = seed => seed.connectorType === 'mcp' ? 'mcp' : seed.key.endsWith(':llm') ? 'llm' : 'app';
235
+ /**
236
+ * Normalize a provider id or form namespace into a vault secret key prefix.
237
+ * e.g. `gmail-app-hk7zf7w9` → `GMAIL_APP_HK7ZF7W9`
238
+ */
229
239
  const toVaultPrefix = value => value.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase();
240
+ /**
241
+ * Per-form-instance vault keys for non-account-specific secrets (e.g. API key fields).
242
+ *
243
+ * Do NOT use these for OAuth access/refresh tokens when multiple accounts can share
244
+ * one published form — connecting account B would overwrite account A's vault entry.
245
+ * Access/refresh live under per-credential `configKey.accounts.{id}.*` and durable
246
+ * `CRED_<id>_*` vault keys via syncOAuthTokensToCredentialVault.
247
+ *
248
+ * Client id/secret stay provider-scoped (shared OAuth app credentials).
249
+ */
250
+ const buildOAuthInstanceTokenVaultKeys = namespace => {
251
+ const prefix = toVaultPrefix(namespace);
252
+ return {
253
+ /** @deprecated Do not wire access tokens to this shared key — use CRED_* instead. */
254
+ accessToken: `${prefix}_ACCESS_TOKEN`,
255
+ /** @deprecated Do not wire refresh tokens to this shared key — use CRED_* instead. */
256
+ refreshToken: `${prefix}_REFRESH_TOKEN`,
257
+ apiKey: `${prefix}_API_KEY`
258
+ };
259
+ };
260
+ /** `_{24-hex}` suffix appended to a base vault key to scope it to one credential. */
261
+ const CREDENTIAL_SCOPED_SECRET_KEY_RE = /_([a-fA-F0-9]{24})$/;
262
+ /**
263
+ * Credential-scoped vault key: `{BASE_KEY}_{credentialId}`.
264
+ *
265
+ * This is the platform's own convention — `preferences-service` resolves a
266
+ * `format: 'secret'` config key to `${defaultValueSource.secretKey}_${credentialId}`
267
+ * on both read and write whenever the node context carries a `credentialId`.
268
+ * API-key connectors reuse the exact same shape so several credentials for one
269
+ * provider can coexist in a project/env instead of overwriting each other's
270
+ * shared `PROVIDER_API_KEY` entry (the same isolation OAuth gets from its
271
+ * per-account configKey).
272
+ *
273
+ * Idempotent when `baseSecretKey` is already scoped to the same credential.
274
+ */
275
+ const buildCredentialScopedSecretKey = (baseSecretKey, credentialId) => {
276
+ const base = stripCredentialScopedSecretKey(baseSecretKey || '');
277
+ if (!base || !credentialId) {
278
+ return base || '';
279
+ }
280
+ return `${base}_${credentialId}`;
281
+ };
282
+ /** True when a vault key already carries a `_{credentialId}` suffix. */
283
+ const isCredentialScopedSecretKey = secretKey => CREDENTIAL_SCOPED_SECRET_KEY_RE.test(secretKey || '');
284
+ /** Strip `_{credentialId}` to recover the catalog/base vault key. */
285
+ const stripCredentialScopedSecretKey = secretKey => (secretKey || '').replace(CREDENTIAL_SCOPED_SECRET_KEY_RE, '');
286
+ /** credentialId embedded in a scoped vault key, if any. */
287
+ const credentialIdFromScopedSecretKey = secretKey => CREDENTIAL_SCOPED_SECRET_KEY_RE.exec(secretKey || '')?.[1] || null;
288
+ /**
289
+ * Durable per-credential token vault keys. Used after OAuth connect so each
290
+ * FormBuilderCredential keeps its own token pair even when several credentials
291
+ * share the same published template/configKey staging path.
292
+ */
293
+ const buildCredentialOAuthTokenVaultKeys = credentialId => {
294
+ const prefix = toVaultPrefix(`cred_${credentialId}`);
295
+ return {
296
+ accessToken: `${prefix}_ACCESS_TOKEN`,
297
+ refreshToken: `${prefix}_REFRESH_TOKEN`
298
+ };
299
+ };
300
+ /**
301
+ * Provider-scoped per-credential OAuth vault keys (e.g. OAuth callback writes
302
+ * `GOOGLE_GMAIL_ACCESS_TOKEN_{credentialId}` to Personal Vault).
303
+ */
304
+ const buildProviderCredentialOAuthTokenVaultKeys = (providerId, credentialId) => {
305
+ const prefix = toVaultPrefix(providerId);
306
+ return {
307
+ accessToken: `${prefix}_ACCESS_TOKEN_${credentialId}`,
308
+ refreshToken: `${prefix}_REFRESH_TOKEN_${credentialId}`
309
+ };
310
+ };
311
+ /**
312
+ * Namespace-scoped per-credential OAuth vault keys (`google_gmail-app` → `GOOGLE_GMAIL_APP_*_{id}`).
313
+ */
314
+ const buildNamespaceCredentialOAuthTokenVaultKeys = (namespace, credentialId) => {
315
+ const prefix = toVaultPrefix(namespace);
316
+ return {
317
+ accessToken: `${prefix}_ACCESS_TOKEN_${credentialId}`,
318
+ refreshToken: `${prefix}_REFRESH_TOKEN_${credentialId}`
319
+ };
320
+ };
321
+ /**
322
+ * Per-connected-account OAuth preferences path.
323
+ * Template: `….{namespace}.oauthConnector`
324
+ * Account: `….{namespace}.oauthConnector.accounts.{credentialId}`
325
+ *
326
+ * OAuth app settings (client id/secret, scopes, endpoints) are seeded from the
327
+ * template path onto each account path so ApplicationConnectorOAuthService can
328
+ * use a single configKey without a shared token staging slot.
329
+ */
330
+ const CREDENTIAL_ACCOUNT_CONFIG_KEY_RE = /\.accounts\.([a-fA-F0-9]{24})$/;
331
+ /** True when configKey is already scoped to a FormBuilder credential account. */
332
+ const isCredentialAccountConfigKey = configKey => CREDENTIAL_ACCOUNT_CONFIG_KEY_RE.test(configKey || '');
333
+ /** Strip `.accounts.{credentialId}` to recover the published template configKey. */
334
+ const stripCredentialAccountConfigKey = configKey => (configKey || '').replace(CREDENTIAL_ACCOUNT_CONFIG_KEY_RE, '');
335
+ /** credentialId embedded in an account-scoped configKey, if any. */
336
+ const credentialIdFromOAuthConfigKey = configKey => {
337
+ const match = CREDENTIAL_ACCOUNT_CONFIG_KEY_RE.exec(configKey || '');
338
+ return match?.[1] || null;
339
+ };
340
+ /**
341
+ * Build the per-credential OAuth configKey used for connect / refresh / disconnect.
342
+ * Idempotent when `baseConfigKey` is already account-scoped for the same id.
343
+ */
344
+ const buildCredentialOAuthConfigKey = (baseConfigKey, credentialId) => {
345
+ const base = stripCredentialAccountConfigKey(baseConfigKey || '').replace(/\.+$/, '');
346
+ if (!base || !credentialId) {
347
+ return base || '';
348
+ }
349
+ return `${base}.accounts.${credentialId}`;
350
+ };
351
+ /** Extract the form namespace from an oauthConnector configKey path. */
352
+ const namespaceFromOAuthConfigKey = configKey => {
353
+ const normalized = stripCredentialAccountConfigKey(configKey || '');
354
+ const match = /integrationSettings\.settings\.[^.]+\.([^.]+)\.oauthConnector(?:\.|$)/.exec(normalized);
355
+ return match?.[1] || null;
356
+ };
230
357
  const seedAuthMethodDefault = seed => seed.authMethods.includes('oauth2') ? 'oauth' : seed.connectorType === 'mcp' ? 'mcp' : 'api_key';
231
358
  /**
232
359
  * Build a `genericType -> count` map for the given fields. Used by
@@ -264,7 +391,10 @@ const resolveFieldKey = (field, genericTypeCounts) => {
264
391
  return field.name;
265
392
  };
266
393
  function buildPreGeneratedFormSteps(seed, namespace) {
267
- const vaultPrefix = toVaultPrefix(seed.providerId);
394
+ // Shared OAuth app credentials (one client id/secret per provider).
395
+ const providerVaultPrefix = toVaultPrefix(seed.providerId);
396
+ // Per-form-instance tokens — unique namespace prevents multi-account overwrite.
397
+ const instanceTokenKeys = buildOAuthInstanceTokenVaultKeys(namespace);
268
398
  const isApp = seed.connectorType === 'app';
269
399
  const isApiKeyOnly = seedIsApiKeyOnly(seed);
270
400
  const templateType = seedTemplateType(seed);
@@ -361,12 +491,13 @@ function buildPreGeneratedFormSteps(seed, namespace) {
361
491
  useBasicAuth: seed.useBasicAuth ?? false,
362
492
  connectorRedirectUri: '{{CLIENT_URL}}/{{CONNECTOR_ENDPOINT}}',
363
493
  // connectorAuthMethod — present only for non-oauth connectors (matches reference forms)
364
- ...(!seed.authMethods.includes('oauth2') ? {
494
+ ...(seedAuthMethodDefault(seed) !== 'oauth' ? {
365
495
  connectorAuthMethod: seedAuthMethodDefault(seed)
366
496
  } : {}),
367
- ...(seed.fields.length > 0 ? {
368
- connectorProviderFields: seed.fields
369
- } : {}),
497
+ // Always emitted, even empty: a template entry is self-describing only when a reader can
498
+ // tell "no extra provider fields" from "unknown", and the credential picker synthesizes
499
+ // the form from this entry instead of fetching the published form document.
500
+ connectorProviderFields: seed.fields,
370
501
  ...(seed.resources.length > 0 ? {
371
502
  connectorProviderResources: seed.resources
372
503
  } : {}),
@@ -401,7 +532,7 @@ function buildPreGeneratedFormSteps(seed, namespace) {
401
532
  defaultValueSource: {
402
533
  type: ContributeDefaultValueSourceType.Vault,
403
534
  secretType: 'OAUTH_CLIENT',
404
- secretKey: `${vaultPrefix}_CLIENT_ID`,
535
+ secretKey: `${providerVaultPrefix}_CLIENT_ID`,
405
536
  ...(isApp ? {
406
537
  requiredReference: true
407
538
  } : {})
@@ -420,7 +551,7 @@ function buildPreGeneratedFormSteps(seed, namespace) {
420
551
  defaultValueSource: {
421
552
  type: ContributeDefaultValueSourceType.Vault,
422
553
  secretType: 'OAUTH_CLIENT',
423
- secretKey: `${vaultPrefix}_CLIENT_SECRET`,
554
+ secretKey: `${providerVaultPrefix}_CLIENT_SECRET`,
424
555
  ...(isApp ? {
425
556
  requiredReference: true
426
557
  } : {})
@@ -439,7 +570,7 @@ function buildPreGeneratedFormSteps(seed, namespace) {
439
570
  defaultValueSource: {
440
571
  type: ContributeDefaultValueSourceType.Vault,
441
572
  secretType: 'API_KEY',
442
- secretKey: `${vaultPrefix}_API_KEY`
573
+ secretKey: instanceTokenKeys.apiKey
443
574
  }
444
575
  }
445
576
  }, {
@@ -451,11 +582,16 @@ function buildPreGeneratedFormSteps(seed, namespace) {
451
582
  default: '',
452
583
  readOnly: true,
453
584
  scope: 1 /* ConfigurationScope.APPLICATION */,
585
+
586
+ // No shared vault secretKey by default — multi-account connects would overwrite.
587
+ // Staging still needs a vault route: writeSettings discards format:secret when
588
+ // defaultValueSource is missing. Instance keys are the temporary staging slot;
589
+ // completeOAuth / sync(force) copies them into CRED_<credentialId>_*.
454
590
  schemaExtensions: {
455
591
  defaultValueSource: {
456
592
  type: ContributeDefaultValueSourceType.Vault,
457
593
  secretType: 'OAUTH_CLIENT',
458
- secretKey: `${vaultPrefix}_ACCESS_TOKEN`
594
+ secretKey: instanceTokenKeys.accessToken
459
595
  }
460
596
  }
461
597
  }, {
@@ -471,7 +607,7 @@ function buildPreGeneratedFormSteps(seed, namespace) {
471
607
  defaultValueSource: {
472
608
  type: ContributeDefaultValueSourceType.Vault,
473
609
  secretType: 'OAUTH_CLIENT',
474
- secretKey: `${vaultPrefix}_REFRESH_TOKEN`
610
+ secretKey: instanceTokenKeys.refreshToken
475
611
  }
476
612
  }
477
613
  }, {
@@ -754,12 +890,13 @@ function buildPreGeneratedFormSteps(seed, namespace) {
754
890
  useBasicAuth: seed.useBasicAuth ?? false,
755
891
  connectorRedirectUri: '{{CLIENT_URL}}/{{CONNECTOR_ENDPOINT}}',
756
892
  // connectorAuthMethod — present only for non-oauth connectors (matches reference forms)
757
- ...(!seed.authMethods.includes('oauth2') ? {
893
+ ...(seedAuthMethodDefault(seed) !== 'oauth' ? {
758
894
  connectorAuthMethod: seedAuthMethodDefault(seed)
759
895
  } : {}),
760
- ...(seed.fields.length > 0 ? {
761
- connectorProviderFields: seed.fields
762
- } : {}),
896
+ // Always emitted, even empty: a template entry is self-describing only when a reader can
897
+ // tell "no extra provider fields" from "unknown", and the credential picker synthesizes
898
+ // the form from this entry instead of fetching the published form document.
899
+ connectorProviderFields: seed.fields,
763
900
  ...(seed.resources.length > 0 ? {
764
901
  connectorProviderResources: seed.resources
765
902
  } : {}),
@@ -776,25 +913,6 @@ function buildPreGeneratedFormSteps(seed, namespace) {
776
913
  }]
777
914
  }];
778
915
  }
779
- const buildCategoryKeyLookup = () => {
780
- const lookup = new Map();
781
- const prefix = 'uiLayout.credential.templates.';
782
- const suffix = '.value';
783
- for (const [key, value] of Object.entries(CONTRIBUTION_POINTS)) {
784
- if (key.startsWith(prefix) && key.endsWith(suffix)) {
785
- lookup.set(value, key.slice(prefix.length, -suffix.length));
786
- }
787
- }
788
- return lookup;
789
- };
790
- const CATEGORY_KEY_LOOKUP = buildCategoryKeyLookup();
791
- const categoryToTemplateTypeKey = category => {
792
- const key = CATEGORY_KEY_LOOKUP.get(category);
793
- if (!key) {
794
- throw new Error(`No contribution-point template type found for category "${category}"`);
795
- }
796
- return key;
797
- };
798
916
  function buildOAuthConfigurationContribution(seedsWithNamespaces) {
799
917
  const formProperties = {
800
918
  required: []
@@ -805,7 +923,8 @@ function buildOAuthConfigurationContribution(seedsWithNamespaces) {
805
923
  seed,
806
924
  namespace
807
925
  } of seedsWithNamespaces) {
808
- const vaultPrefix = toVaultPrefix(seed.providerId);
926
+ const providerVaultPrefix = toVaultPrefix(seed.providerId);
927
+ const instanceTokenKeys = buildOAuthInstanceTokenVaultKeys(namespace);
809
928
  const isApp = seed.connectorType === 'app';
810
929
  const isApiKeyOnly = seedIsApiKeyOnly(seed);
811
930
  const templateType = seedTemplateType(seed);
@@ -867,7 +986,7 @@ function buildOAuthConfigurationContribution(seedsWithNamespaces) {
867
986
  defaultValueSource: {
868
987
  type: ContributeDefaultValueSourceType.Vault,
869
988
  secretType: 'OAUTH_CLIENT',
870
- secretKey: `${vaultPrefix}_CLIENT_ID`,
989
+ secretKey: `${providerVaultPrefix}_CLIENT_ID`,
871
990
  ...(isApp ? {
872
991
  requiredReference: true
873
992
  } : {})
@@ -888,7 +1007,7 @@ function buildOAuthConfigurationContribution(seedsWithNamespaces) {
888
1007
  defaultValueSource: {
889
1008
  type: ContributeDefaultValueSourceType.Vault,
890
1009
  secretType: 'OAUTH_CLIENT',
891
- secretKey: `${vaultPrefix}_CLIENT_SECRET`,
1010
+ secretKey: `${providerVaultPrefix}_CLIENT_SECRET`,
892
1011
  ...(isApp ? {
893
1012
  requiredReference: true
894
1013
  } : {})
@@ -909,7 +1028,7 @@ function buildOAuthConfigurationContribution(seedsWithNamespaces) {
909
1028
  defaultValueSource: {
910
1029
  type: ContributeDefaultValueSourceType.Vault,
911
1030
  secretType: 'API_KEY',
912
- secretKey: `${vaultPrefix}_API_KEY`
1031
+ secretKey: instanceTokenKeys.apiKey
913
1032
  }
914
1033
  }, {
915
1034
  'ui:widget': !seed.authMethods.includes('oauth2') ? 'password' : 'hidden',
@@ -925,10 +1044,13 @@ function buildOAuthConfigurationContribution(seedsWithNamespaces) {
925
1044
  readOnly: true,
926
1045
  writeOnly: true,
927
1046
  scope: 1 /* ConfigurationScope.APPLICATION */,
1047
+
1048
+ // Staging vault route required — writeSettings drops format:secret
1049
+ // without defaultValueSource. Durable isolation is CRED_* via sync.
928
1050
  defaultValueSource: {
929
1051
  type: ContributeDefaultValueSourceType.Vault,
930
1052
  secretType: 'OAUTH_CLIENT',
931
- secretKey: `${vaultPrefix}_ACCESS_TOKEN`
1053
+ secretKey: instanceTokenKeys.accessToken
932
1054
  }
933
1055
  }, {
934
1056
  'ui:widget': 'hidden'
@@ -945,7 +1067,7 @@ function buildOAuthConfigurationContribution(seedsWithNamespaces) {
945
1067
  defaultValueSource: {
946
1068
  type: ContributeDefaultValueSourceType.Vault,
947
1069
  secretType: 'OAUTH_CLIENT',
948
- secretKey: `${vaultPrefix}_REFRESH_TOKEN`
1070
+ secretKey: instanceTokenKeys.refreshToken
949
1071
  }
950
1072
  }, {
951
1073
  'ui:widget': 'hidden'
@@ -1052,6 +1174,18 @@ function buildOAuthConfigurationContribution(seedsWithNamespaces) {
1052
1174
  }, {
1053
1175
  'ui:widget': 'hidden'
1054
1176
  });
1177
+ // Without this key in the registry the connect flow cannot see the catalog's
1178
+ // usePKCE, and both the widget and readOAuthConfigFromRegistry fall back to
1179
+ // PKCE-on — silently ignoring every `usePKCE: false` in the catalog.
1180
+ addField('usePKCE', {
1181
+ type: 'boolean',
1182
+ title: 'Use PKCE',
1183
+ default: seed.usePKCE !== false,
1184
+ readOnly: true,
1185
+ scope: 2 /* ConfigurationScope.MACHINE */
1186
+ }, {
1187
+ 'ui:widget': 'hidden'
1188
+ });
1055
1189
  if (seed.clientAuthMethod) {
1056
1190
  addField('clientAuthMethod', {
1057
1191
  type: 'string',
@@ -1299,15 +1433,24 @@ function buildOAuthConfigurationContribution(seedsWithNamespaces) {
1299
1433
  properties: formUIProperties
1300
1434
  }];
1301
1435
  }
1302
- function generateFromSeeds(seeds, title, formIcon, formExtensionId) {
1436
+ function generateFromSeeds(seeds, title, formIcon, formExtensionId, options = {}) {
1303
1437
  const allNodes = [];
1304
1438
  const mergedUiLayoutTemplates = {};
1305
1439
  const mergedUiLayoutUi = {};
1306
1440
  let uiLayoutFormMetadataNode = null;
1307
1441
  const seedsWithNamespaces = [];
1308
1442
  seeds.forEach((seed, idx) => {
1309
- const generatedFormId = `${sanitizeFieldKey(seed.providerId)}-${seed.connectorType}-${Math.random().toString(36).substring(2, 10)}`;
1310
- const providerTitle = `${seed.title} (${seed.connectorType.toUpperCase()})`;
1443
+ // The namespace doubles as the formId AND flows into every configuration key
1444
+ // (`integrationSettings.settings.<type>.<ns>.oauthConnector…`). An explicit
1445
+ // namespace lets a caller regenerate the form for an ALREADY-PUBLISHED template
1446
+ // so the output is identity-compatible with it (same formId, same config keys);
1447
+ // the random default is only safe for brand-new forms.
1448
+ const generatedFormId = options.namespaces?.[idx] || `${sanitizeFieldKey(seed.providerId)}-${seed.connectorType}-${Math.random().toString(36).substring(2, 10)}`;
1449
+ // The connector's own title, with no `(APP)` marker appended. `connectorType` is
1450
+ // `app` for every one of the 1166 catalog connectors, so the suffix carried no
1451
+ // information - it just made every row in the credential picker read "… (APP)".
1452
+ // The type is still contributed as `connectorType` for anything that needs it.
1453
+ const providerTitle = seed.title;
1311
1454
  const namespace = generatedFormId;
1312
1455
  seedsWithNamespaces.push({
1313
1456
  seed,
@@ -1543,13 +1686,13 @@ function generateFromSeeds(seeds, title, formIcon, formExtensionId) {
1543
1686
  const credentialBasePath = CONTRIBUTION_POINTS['uiLayout.credential.path'];
1544
1687
  const prefixedTemplates = {};
1545
1688
  const prefixedUi = {};
1546
- // Build a namespace→category lookup from seeds using contribution-point template type keys
1689
+ // Bucket each seed into one of three credential namespaces: app | llm | mcp
1547
1690
  const nsToCategoryMap = new Map();
1548
1691
  seedsWithNamespaces.forEach(({
1549
1692
  seed,
1550
1693
  namespace
1551
1694
  }) => {
1552
- nsToCategoryMap.set(namespace, categoryToTemplateTypeKey(seedCategory(seed)));
1695
+ nsToCategoryMap.set(namespace, seedCredentialNamespace(seed));
1553
1696
  });
1554
1697
  Object.keys(mergedUiLayoutTemplates).forEach(key => {
1555
1698
  const categoryKey = nsToCategoryMap.get(key);
@@ -1587,8 +1730,8 @@ function generateFromSeeds(seeds, title, formIcon, formExtensionId) {
1587
1730
  if (!uiLayoutFormMetadataNode) return allNodes;
1588
1731
  return [...allNodes, uiLayoutFormMetadataNode, uiLayoutFormNode, uiLayoutFormUINode];
1589
1732
  }
1590
- function createOAuthSeedGenerator(seeds) {
1591
- return (title = '', formIcon = '', formExtensionId = '') => generateFromSeeds(seeds, title, formIcon, formExtensionId);
1733
+ function createOAuthSeedGenerator(seeds, options = {}) {
1734
+ return (title = '', formIcon = '', formExtensionId = '') => generateFromSeeds(seeds, title, formIcon, formExtensionId, options);
1592
1735
  }
1593
1736
  // create provider refs
1594
1737
  const findRefPath = node => {
@@ -1646,4 +1789,4 @@ const buildMetadataSchema = sampleNodes => {
1646
1789
  configurationNodes: entry.configurationNodes,
1647
1790
  contributes: {}
1648
1791
  }))];
1649
- };export{buildMetadataSchema,buildProviderConfig,buildProviderSeedFromConfig,buildProviderWithRefs,createOAuthSeedGenerator};//# sourceMappingURL=authMetaDataSchema.js.map
1792
+ };export{buildCredentialOAuthConfigKey,buildCredentialOAuthTokenVaultKeys,buildCredentialScopedSecretKey,buildMetadataSchema,buildNamespaceCredentialOAuthTokenVaultKeys,buildOAuthInstanceTokenVaultKeys,buildProviderConfig,buildProviderCredentialOAuthTokenVaultKeys,buildProviderSeedFromConfig,buildProviderWithRefs,createOAuthSeedGenerator,credentialIdFromOAuthConfigKey,credentialIdFromScopedSecretKey,isCredentialAccountConfigKey,isCredentialScopedSecretKey,namespaceFromOAuthConfigKey,stripCredentialAccountConfigKey,stripCredentialScopedSecretKey,toVaultPrefix};//# sourceMappingURL=authMetaDataSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authMetaDataSchema.js","sources":["../../src/utils/authMetaDataSchema.ts"],"sourcesContent":[null],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"authMetaDataSchema.js","sources":["../../src/utils/authMetaDataSchema.ts"],"sourcesContent":[null],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,94 @@
1
+ type JsonObject = Record<string, unknown>;
2
+ export interface IntegrationCommandParameter {
3
+ name: string;
4
+ schema: {
5
+ type: string;
6
+ description?: string;
7
+ [key: string]: unknown;
8
+ };
9
+ }
10
+ export interface IntegrationCommandExecution {
11
+ type: 'workflow';
12
+ namespace: string;
13
+ workflowSlug: string;
14
+ version: string;
15
+ paramBindings: Record<string, string>;
16
+ /** Parsed JSON body template. When present, the runtime resolves it via resolveInputTemplate instead of building a flat body from paramBindings. */
17
+ inputTemplate?: unknown;
18
+ }
19
+ export interface IntegrationCommand {
20
+ command: string;
21
+ title: string;
22
+ category?: string;
23
+ description?: string;
24
+ parameters: IntegrationCommandParameter[];
25
+ execution: IntegrationCommandExecution;
26
+ }
27
+ export interface FieldBinding {
28
+ userField?: string;
29
+ workflowNodeId?: string;
30
+ paramName?: string;
31
+ }
32
+ export interface ActionBinding {
33
+ action?: string;
34
+ label?: string;
35
+ workflow?: JsonObject;
36
+ fieldBindings?: FieldBinding[];
37
+ /** Optional JSON body template authored by the publisher; {{$user.<field>}} placeholders are filled with end-user values at run time. */
38
+ inputTemplate?: string;
39
+ }
40
+ export interface UserFieldDef {
41
+ type?: string;
42
+ title?: string;
43
+ format?: string;
44
+ enum?: unknown[];
45
+ }
46
+ export interface BuildActionsOptions {
47
+ slug: string;
48
+ category?: string;
49
+ namespace?: string;
50
+ userFields?: Record<string, UserFieldDef>;
51
+ }
52
+ export type MetadataSchemaEntry = {
53
+ schemaId?: string;
54
+ [key: string]: unknown;
55
+ };
56
+ export declare function parseInputTemplate(raw?: string): unknown;
57
+ /** Collects the user-field keys referenced as {{$user.<key>}} anywhere in a parsed template. */
58
+ export declare function extractTemplateUserFields(node: unknown, refs?: Set<string>): string[];
59
+ /**
60
+ * Fills {{$user.<key>}} placeholders with end-user values by walking the parsed template.
61
+ * A string that is exactly one placeholder is replaced with the raw typed value; placeholders
62
+ * embedded in a longer string are interpolated. Everything else (including workflow-native
63
+ * {{...}} expressions) passes through untouched.
64
+ *
65
+ * Values that the template never references are appended to the resolved root object so callers
66
+ * still receive them; template-authored keys always win over a same-named extra value.
67
+ */
68
+ export declare function resolveInputTemplate(node: unknown, values: Record<string, unknown>): unknown;
69
+ export declare function buildParamBindings(action: ActionBinding): Record<string, string>;
70
+ export declare function buildCommandsFromActions(actions: ActionBinding[], opts: BuildActionsOptions): IntegrationCommand[];
71
+ export interface IntegrationMenuEntry {
72
+ command: string;
73
+ label: string;
74
+ enabled: boolean;
75
+ order: number;
76
+ }
77
+ export interface IntegrationMenusContributes {
78
+ commandPalette: IntegrationMenuEntry[];
79
+ }
80
+ export declare function buildMenusFromCommands(commands: IntegrationCommand[]): IntegrationMenusContributes;
81
+ export interface IntegrationConfigurationIdentity {
82
+ title?: string;
83
+ formId: string;
84
+ /** Identifies this template independently of formId — generated fresh if not supplied. */
85
+ formTemplateId?: string;
86
+ formExtensionId?: string;
87
+ description?: string;
88
+ projectType?: string;
89
+ tags?: string[];
90
+ }
91
+ export declare function buildIntegrationConfigurationContribution(userFields: Record<string, UserFieldDef>, slug: string, identity?: IntegrationConfigurationIdentity): Record<string, unknown>[];
92
+ export declare function extractUserFieldsFromStepperFormMetadata(metadataSchema: MetadataSchemaEntry[], stepKey?: string): Record<string, UserFieldDef>;
93
+ export {};
94
+ //# sourceMappingURL=integrationCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrationCommands.d.ts","sourceRoot":"","sources":["../../src/utils/integrationCommands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,253 @@
1
+ import {v4}from'uuid';function normalizeWorkflowSelection(workflow) {
2
+ if (!workflow) return {};
3
+ if (typeof workflow === 'string') {
4
+ try {
5
+ return JSON.parse(workflow);
6
+ } catch (e) {
7
+ return {};
8
+ }
9
+ }
10
+ return workflow;
11
+ }
12
+ const USER_REF = /\{\{\$user\.([\w.-]+)\}\}/g;
13
+ const FULL_USER_REF = /^\{\{\$user\.([\w.-]+)\}\}$/;
14
+ function parseInputTemplate(raw) {
15
+ if (!raw?.trim()) return undefined;
16
+ try {
17
+ return JSON.parse(raw);
18
+ } catch (e) {
19
+ return undefined;
20
+ }
21
+ }
22
+ /** Collects the user-field keys referenced as {{$user.<key>}} anywhere in a parsed template. */
23
+ function extractTemplateUserFields(node, refs = new Set()) {
24
+ if (typeof node === 'string') {
25
+ for (const m of node.matchAll(USER_REF)) refs.add(m[1]);
26
+ } else if (Array.isArray(node)) {
27
+ node.forEach(item => extractTemplateUserFields(item, refs));
28
+ } else if (node && typeof node === 'object') {
29
+ Object.values(node).forEach(value => extractTemplateUserFields(value, refs));
30
+ }
31
+ return [...refs];
32
+ }
33
+ function fillTemplateNode(node, values) {
34
+ if (typeof node === 'string') {
35
+ const full = FULL_USER_REF.exec(node);
36
+ if (full) return values[full[1]];
37
+ return node.replace(USER_REF, (_, key) => String(values[key] ?? ''));
38
+ }
39
+ if (Array.isArray(node)) return node.map(item => fillTemplateNode(item, values));
40
+ if (node && typeof node === 'object') {
41
+ return Object.fromEntries(Object.entries(node).map(([key, value]) => [key, fillTemplateNode(value, values)]));
42
+ }
43
+ return node;
44
+ }
45
+ /**
46
+ * Fills {{$user.<key>}} placeholders with end-user values by walking the parsed template.
47
+ * A string that is exactly one placeholder is replaced with the raw typed value; placeholders
48
+ * embedded in a longer string are interpolated. Everything else (including workflow-native
49
+ * {{...}} expressions) passes through untouched.
50
+ *
51
+ * Values that the template never references are appended to the resolved root object so callers
52
+ * still receive them; template-authored keys always win over a same-named extra value.
53
+ */
54
+ function resolveInputTemplate(node, values) {
55
+ const resolved = fillTemplateNode(node, values);
56
+ if (!resolved || typeof resolved !== 'object' || Array.isArray(resolved)) return resolved;
57
+ const referenced = new Set(extractTemplateUserFields(node));
58
+ const extras = Object.entries(values).filter(([key]) => !referenced.has(key) && !(key in resolved));
59
+ return extras.length ? {
60
+ ...resolved,
61
+ ...Object.fromEntries(extras)
62
+ } : resolved;
63
+ }
64
+ function buildParamBindings(action) {
65
+ const map = {};
66
+ (action.fieldBindings || []).forEach(binding => {
67
+ if (!binding.userField) return;
68
+ const paramKey = binding.paramName || binding.userField;
69
+ map[paramKey] = binding.userField;
70
+ });
71
+ return map;
72
+ }
73
+ function buildCommandsFromActions(actions, opts) {
74
+ return (actions || []).filter(action => !!action && !!action.action).map(action => {
75
+ const id = `${opts.slug}.${action.action}`;
76
+ const title = action.label || action.action;
77
+ const workflow = normalizeWorkflowSelection(action.workflow);
78
+ const inputTemplate = parseInputTemplate(action.inputTemplate);
79
+ // Template mode: parameters come from the {{$user.*}} refs, keyed by user field name.
80
+ const paramSources = inputTemplate ? extractTemplateUserFields(inputTemplate).map(field => ({
81
+ name: field,
82
+ userField: field
83
+ })) : (action.fieldBindings || []).filter(b => !!(b.paramName || b.userField)).map(b => ({
84
+ name: b.paramName || b.userField,
85
+ userField: b.userField
86
+ }));
87
+ const parameters = paramSources.map(({
88
+ name,
89
+ userField
90
+ }) => {
91
+ const source = userField && opts.userFields?.[userField] || {};
92
+ const schema = {
93
+ type: source.type || 'string'
94
+ };
95
+ if (source.title) schema.description = source.title;
96
+ if (source.format) schema.format = source.format;
97
+ if (Array.isArray(source.enum)) schema.enum = source.enum;
98
+ return {
99
+ name,
100
+ schema
101
+ };
102
+ });
103
+ const cmd = {
104
+ command: id,
105
+ title,
106
+ parameters,
107
+ execution: {
108
+ type: 'workflow',
109
+ namespace: opts.namespace || '',
110
+ workflowSlug: workflow.workflowSlug || '',
111
+ version: workflow.version || '',
112
+ paramBindings: inputTemplate ? Object.fromEntries(paramSources.map(({
113
+ name
114
+ }) => [name, name])) : buildParamBindings(action),
115
+ ...(inputTemplate !== undefined ? {
116
+ inputTemplate
117
+ } : {})
118
+ }
119
+ };
120
+ if (opts.category) cmd.category = opts.category;
121
+ return cmd;
122
+ });
123
+ }
124
+ function buildMenusFromCommands(commands) {
125
+ return {
126
+ commandPalette: commands.map((cmd, i) => ({
127
+ command: cmd.command,
128
+ label: cmd.title,
129
+ enabled: true,
130
+ order: i + 1
131
+ }))
132
+ };
133
+ }
134
+ function buildIntegrationConfigurationContribution(userFields, slug, identity) {
135
+ const formProperties = {
136
+ required: []
137
+ };
138
+ const formUIProperties = {};
139
+ const basePath = `integrationSettings.settings.integrationWorkflow.${slug}`;
140
+ const metaPaths = new Set();
141
+ const baseParts = basePath.split('.');
142
+ for (let i = 1; i <= baseParts.length; i++) {
143
+ metaPaths.add(baseParts.slice(0, i).join('.'));
144
+ }
145
+ Array.from(metaPaths).sort().forEach(path => {
146
+ const parts = path.split('.');
147
+ formProperties[`${path}.meta`] = {
148
+ title: parts[parts.length - 1],
149
+ description: '',
150
+ type: 'object',
151
+ position: 0
152
+ };
153
+ formProperties[`${path}.required`] = [];
154
+ });
155
+ if (identity) {
156
+ formProperties[`${basePath}.title`] = {
157
+ type: 'string',
158
+ title: 'title',
159
+ default: identity.title || ''
160
+ };
161
+ formProperties[`${basePath}.description`] = {
162
+ type: 'string',
163
+ title: 'description',
164
+ default: identity.description || ''
165
+ };
166
+ formProperties[`${basePath}.projectType`] = {
167
+ type: 'string',
168
+ title: 'projectType',
169
+ default: identity.projectType || 'Integration'
170
+ };
171
+ formProperties[`${basePath}.tags`] = {
172
+ type: 'array',
173
+ title: 'tags',
174
+ items: {
175
+ type: 'string'
176
+ },
177
+ uniqueItems: true,
178
+ default: identity.tags || ['integration']
179
+ };
180
+ formProperties[`${basePath}.formId`] = {
181
+ type: 'string',
182
+ title: 'formId',
183
+ default: identity.formId,
184
+ readOnly: true
185
+ };
186
+ formProperties[`${basePath}.formTemplateId`] = {
187
+ type: 'string',
188
+ title: 'formTemplateId',
189
+ default: identity.formTemplateId || v4(),
190
+ readOnly: true
191
+ };
192
+ formProperties[`${basePath}.formExtensionId`] = {
193
+ type: 'string',
194
+ title: 'formExtensionId',
195
+ default: identity.formExtensionId || '',
196
+ readOnly: true
197
+ };
198
+ formUIProperties[`${basePath}.formId`] = {
199
+ 'ui:readonly': true
200
+ };
201
+ formUIProperties[`${basePath}.formTemplateId`] = {
202
+ 'ui:readonly': true
203
+ };
204
+ formUIProperties[`${basePath}.formExtensionId`] = {
205
+ 'ui:readonly': true
206
+ };
207
+ }
208
+ Object.entries(userFields).forEach(([key, def]) => {
209
+ formProperties[`${basePath}.${key}`] = {
210
+ type: def.type || 'string',
211
+ title: def.title || key,
212
+ ...(def.format ? {
213
+ format: def.format
214
+ } : {}),
215
+ ...(Array.isArray(def.enum) ? {
216
+ enum: def.enum
217
+ } : {})
218
+ };
219
+ });
220
+ return [{
221
+ type: 'form-metadata',
222
+ properties: {
223
+ schemaId: 'configuration'
224
+ }
225
+ }, {
226
+ type: 'form',
227
+ properties: formProperties
228
+ }, {
229
+ type: 'formUI',
230
+ properties: formUIProperties
231
+ }];
232
+ }
233
+ function extractUserFieldsFromStepperFormMetadata(metadataSchema, stepKey = 'userFields') {
234
+ const result = {};
235
+ const stepper = (metadataSchema || []).find(entry => entry?.schemaId === 'stepper-form');
236
+ const nodes = stepper?.configurationNodes || [];
237
+ const formNode = nodes.find(node => node?.type === 'form');
238
+ const props = formNode?.properties || {};
239
+ const prefix = `${stepKey}.`;
240
+ Object.keys(props).forEach(key => {
241
+ if (!key.startsWith(prefix)) return;
242
+ const rest = key.slice(prefix.length);
243
+ if (rest.includes('.')) return;
244
+ const def = props[key] || {};
245
+ result[rest] = {
246
+ type: def.type,
247
+ title: def.title,
248
+ format: def.format,
249
+ enum: def.enum
250
+ };
251
+ });
252
+ return result;
253
+ }export{buildCommandsFromActions,buildIntegrationConfigurationContribution,buildMenusFromCommands,buildParamBindings,extractTemplateUserFields,extractUserFieldsFromStepperFormMetadata,parseInputTemplate,resolveInputTemplate};//# sourceMappingURL=integrationCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrationCommands.js","sources":["../../src/utils/integrationCommands.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminide-stack/form-builder-core",
3
- "version": "5.1.8-alpha.16",
3
+ "version": "5.1.8-alpha.160",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -19,12 +19,11 @@
19
19
  "watch": "npm run build:lib:watch"
20
20
  },
21
21
  "devDependencies": {
22
- "@adminide-stack/connector-catalog": "5.1.8-alpha.16",
23
- "common": "5.1.8-alpha.15",
22
+ "common": "5.1.8-alpha.158",
24
23
  "typescript": "^5.4.0"
25
24
  },
26
25
  "publishConfig": {
27
26
  "access": "public"
28
27
  },
29
- "gitHead": "3caa42ecff54bddee76871643bbeacc0f69c2a9d"
28
+ "gitHead": "78f6484cb34ad478ac6dda3ec4cec78bf4f8a09d"
30
29
  }