@eide/foir-cli 0.8.0 → 0.10.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.
@@ -263,6 +263,47 @@ interface ExtensionInput {
263
263
  placements: ExtensionPlacementInput[];
264
264
  metadata?: Record<string, unknown>;
265
265
  }
266
+ /**
267
+ * Source-type mapping entry for an app install. Maps a manifest-declared
268
+ * source type onto a project model. See docs/platform/apps.md §Mapping step.
269
+ */
270
+ interface AppSourceMappingInput {
271
+ toModel: string;
272
+ naturalKey: string;
273
+ fields: Record<string, string>;
274
+ }
275
+ /**
276
+ * Sink-contract mapping entry for an app install.
277
+ */
278
+ interface AppSinkMappingInput {
279
+ toModel: string;
280
+ naturalKey: string;
281
+ fields: Record<string, string>;
282
+ }
283
+ /**
284
+ * Placement field choice for TARGET_FIELD placements with
285
+ * field_selected_at_install=true. Keyed by placement.key.
286
+ */
287
+ interface AppPlacementFieldChoiceInput {
288
+ model: string;
289
+ field: string;
290
+ }
291
+ /**
292
+ * Per-project app installation declared in foir.config.ts under apps.<name>.
293
+ * Platform state is reconciled against this at `foir push` time; the
294
+ * manifest is fetched from `source` each push.
295
+ */
296
+ interface AppInput {
297
+ /** https URL to the manifest JSON. */
298
+ source: string;
299
+ /** Opaque settings forwarded to the app's middleware. */
300
+ settings?: Record<string, unknown>;
301
+ mappings?: {
302
+ sources?: Record<string, AppSourceMappingInput>;
303
+ sinks?: Record<string, AppSinkMappingInput>;
304
+ placementFields?: Record<string, AppPlacementFieldChoiceInput>;
305
+ };
306
+ }
266
307
  interface ApplyConfigInput {
267
308
  key: string;
268
309
  name: string;
@@ -282,6 +323,8 @@ interface ApplyConfigInput {
282
323
  integrations?: Record<string, IntegrationInput>;
283
324
  /** Per-project extension declarations, keyed by extension name. */
284
325
  extensions?: Record<string, ExtensionInput>;
326
+ /** Per-project app declarations, keyed by app name. */
327
+ apps?: Record<string, AppInput>;
285
328
  [key: string]: unknown;
286
329
  }
287
330
  /** Define a complete config manifest. */
@@ -311,4 +354,4 @@ declare function defineIntegration(integration: IntegrationInput): IntegrationIn
311
354
  /** Define an extension declaration. */
312
355
  declare function defineExtensionDeclaration(extension: ExtensionInput): ExtensionInput;
313
356
 
314
- export { type ApplyConfigApiKeyInput, type ApplyConfigAuthProviderInput, type ApplyConfigHookInput, type ApplyConfigInput, type ApplyConfigModelInput, type ApplyConfigOperationInput, type ApplyConfigPlacementInput, type ApplyConfigScheduleInput, type ApplyConfigSegmentInput, type CredentialStrategy, type ExpressionPrecondition, type ExtensionInput, type ExtensionPlacementInput, type ExtensionTarget, type FieldDefinitionInput, type IntegrationCredentialsInput, type IntegrationInput, type IntegrationMiddlewareInput, type IntegrationSyncMappingInput, type ModelSeedFieldInput, type ModelSeedInput, type Precondition, type QuotaRule, type SegmentPrecondition, type SelectFieldConfig, type SelectFieldDefinitionInput, defineAuthProvider, defineConfig, defineExtension, defineExtensionDeclaration, defineField, defineHook, defineIntegration, defineModel, defineOperation, definePlacement, defineSchedule, defineSegment, defineSelectField };
357
+ export { type AppInput, type AppPlacementFieldChoiceInput, type AppSinkMappingInput, type AppSourceMappingInput, type ApplyConfigApiKeyInput, type ApplyConfigAuthProviderInput, type ApplyConfigHookInput, type ApplyConfigInput, type ApplyConfigModelInput, type ApplyConfigOperationInput, type ApplyConfigPlacementInput, type ApplyConfigScheduleInput, type ApplyConfigSegmentInput, type CredentialStrategy, type ExpressionPrecondition, type ExtensionInput, type ExtensionPlacementInput, type ExtensionTarget, type FieldDefinitionInput, type IntegrationCredentialsInput, type IntegrationInput, type IntegrationMiddlewareInput, type IntegrationSyncMappingInput, type ModelSeedFieldInput, type ModelSeedInput, type Precondition, type QuotaRule, type SegmentPrecondition, type SelectFieldConfig, type SelectFieldDefinitionInput, defineAuthProvider, defineConfig, defineExtension, defineExtensionDeclaration, defineField, defineHook, defineIntegration, defineModel, defineOperation, definePlacement, defineSchedule, defineSegment, defineSelectField };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-cli",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "Universal platform CLI for Foir platform",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -50,7 +50,7 @@
50
50
  "@bufbuild/protovalidate": "^1.1.1",
51
51
  "@connectrpc/connect": "^2.0.0",
52
52
  "@connectrpc/connect-node": "^2.0.0",
53
- "@eide/foir-proto-ts": "^0.17.0",
53
+ "@eide/foir-proto-ts": "^0.22.0",
54
54
  "chalk": "^5.3.0",
55
55
  "commander": "^12.1.0",
56
56
  "dotenv": "^16.4.5",