@invarn/cibuild 2.9.4 → 2.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-35SI42CD.mjs +1 -0
- package/dist/chunk-IC45KVLJ.mjs +1 -0
- package/dist/chunk-XDY4V23V.mjs +1 -0
- package/dist/cli.cjs +14 -14
- package/dist/commands.mjs +1 -0
- package/dist/lib.mjs +3934 -0
- package/package.json +6 -10
- package/dist/src/cli.d.ts +0 -3
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/cli.js +0 -399
- package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts +0 -38
- package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts.map +0 -1
- package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.js +0 -222
- package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts +0 -41
- package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts.map +0 -1
- package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.js +0 -324
- package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts +0 -2
- package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts.map +0 -1
- package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.js +0 -382
- package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts +0 -29
- package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts.map +0 -1
- package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.js +0 -160
- package/dist/src/commands/android-gms-guard.test.d.ts +0 -9
- package/dist/src/commands/android-gms-guard.test.d.ts.map +0 -1
- package/dist/src/commands/android-gms-guard.test.js +0 -78
- package/dist/src/commands/android-java-version.test.d.ts +0 -12
- package/dist/src/commands/android-java-version.test.d.ts.map +0 -1
- package/dist/src/commands/android-java-version.test.js +0 -209
- package/dist/src/commands/android-scanner-java.test.d.ts +0 -2
- package/dist/src/commands/android-scanner-java.test.d.ts.map +0 -1
- package/dist/src/commands/android-scanner-java.test.js +0 -130
- package/dist/src/commands/android-scanner.d.ts +0 -250
- package/dist/src/commands/android-scanner.d.ts.map +0 -1
- package/dist/src/commands/android-scanner.js +0 -1639
- package/dist/src/commands/build.d.ts +0 -215
- package/dist/src/commands/build.d.ts.map +0 -1
- package/dist/src/commands/build.js +0 -1433
- package/dist/src/commands/build.test.d.ts +0 -13
- package/dist/src/commands/build.test.d.ts.map +0 -1
- package/dist/src/commands/build.test.js +0 -121
- package/dist/src/commands/detect-platform.d.ts +0 -13
- package/dist/src/commands/detect-platform.d.ts.map +0 -1
- package/dist/src/commands/detect-platform.js +0 -51
- package/dist/src/commands/detect-project.d.ts +0 -7
- package/dist/src/commands/detect-project.d.ts.map +0 -1
- package/dist/src/commands/detect-project.js +0 -12
- package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts +0 -26
- package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts.map +0 -1
- package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.js +0 -196
- package/dist/src/commands/edit.d.ts +0 -12
- package/dist/src/commands/edit.d.ts.map +0 -1
- package/dist/src/commands/edit.js +0 -652
- package/dist/src/commands/edit.test.d.ts +0 -6
- package/dist/src/commands/edit.test.d.ts.map +0 -1
- package/dist/src/commands/edit.test.js +0 -45
- package/dist/src/commands/fidelity-trim.d.ts +0 -13
- package/dist/src/commands/fidelity-trim.d.ts.map +0 -1
- package/dist/src/commands/fidelity-trim.js +0 -21
- package/dist/src/commands/fidelity-trim.test.d.ts +0 -8
- package/dist/src/commands/fidelity-trim.test.d.ts.map +0 -1
- package/dist/src/commands/fidelity-trim.test.js +0 -79
- package/dist/src/commands/file-secret-collector.d.ts +0 -50
- package/dist/src/commands/file-secret-collector.d.ts.map +0 -1
- package/dist/src/commands/file-secret-collector.js +0 -217
- package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts +0 -38
- package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts.map +0 -1
- package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.js +0 -300
- package/dist/src/commands/github-workflow.d.ts +0 -5
- package/dist/src/commands/github-workflow.d.ts.map +0 -1
- package/dist/src/commands/github-workflow.js +0 -45
- package/dist/src/commands/index.d.ts +0 -33
- package/dist/src/commands/index.d.ts.map +0 -1
- package/dist/src/commands/index.js +0 -33
- package/dist/src/commands/init.d.ts +0 -20
- package/dist/src/commands/init.d.ts.map +0 -1
- package/dist/src/commands/init.js +0 -264
- package/dist/src/commands/ios-scanner.d.ts +0 -104
- package/dist/src/commands/ios-scanner.d.ts.map +0 -1
- package/dist/src/commands/ios-scanner.js +0 -492
- package/dist/src/commands/ios-scheme-ranking.test.d.ts +0 -2
- package/dist/src/commands/ios-scheme-ranking.test.d.ts.map +0 -1
- package/dist/src/commands/ios-scheme-ranking.test.js +0 -264
- package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts +0 -30
- package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts.map +0 -1
- package/dist/src/commands/local-properties-reaches-every-workflow.test.js +0 -146
- package/dist/src/commands/reset.d.ts +0 -7
- package/dist/src/commands/reset.d.ts.map +0 -1
- package/dist/src/commands/reset.js +0 -81
- package/dist/src/commands/run.d.ts +0 -22
- package/dist/src/commands/run.d.ts.map +0 -1
- package/dist/src/commands/run.js +0 -141
- package/dist/src/commands/secrets-sync-workflow.d.ts +0 -15
- package/dist/src/commands/secrets-sync-workflow.d.ts.map +0 -1
- package/dist/src/commands/secrets-sync-workflow.js +0 -255
- package/dist/src/commands/secrets-upload.d.ts +0 -21
- package/dist/src/commands/secrets-upload.d.ts.map +0 -1
- package/dist/src/commands/secrets-upload.js +0 -177
- package/dist/src/commands/secrets-upload.test.d.ts +0 -5
- package/dist/src/commands/secrets-upload.test.d.ts.map +0 -1
- package/dist/src/commands/secrets-upload.test.js +0 -60
- package/dist/src/commands/validate.d.ts +0 -10
- package/dist/src/commands/validate.d.ts.map +0 -1
- package/dist/src/commands/validate.js +0 -46
- package/dist/src/config.d.ts +0 -3
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -47
- package/dist/src/envman/cli.d.ts +0 -21
- package/dist/src/envman/cli.d.ts.map +0 -1
- package/dist/src/envman/cli.js +0 -240
- package/dist/src/envman/envman.d.ts +0 -83
- package/dist/src/envman/envman.d.ts.map +0 -1
- package/dist/src/envman/envman.js +0 -361
- package/dist/src/envman/envman.test.d.ts +0 -5
- package/dist/src/envman/envman.test.d.ts.map +0 -1
- package/dist/src/envman/envman.test.js +0 -236
- package/dist/src/envman/envstore-round-trip.test.d.ts +0 -27
- package/dist/src/envman/envstore-round-trip.test.d.ts.map +0 -1
- package/dist/src/envman/envstore-round-trip.test.js +0 -130
- package/dist/src/envman/index.d.ts +0 -23
- package/dist/src/envman/index.d.ts.map +0 -1
- package/dist/src/envman/index.js +0 -23
- package/dist/src/envman/shim.d.ts +0 -16
- package/dist/src/envman/shim.d.ts.map +0 -1
- package/dist/src/envman/shim.js +0 -66
- package/dist/src/envman/types.d.ts +0 -55
- package/dist/src/envman/types.d.ts.map +0 -1
- package/dist/src/envman/types.js +0 -12
- package/dist/src/lib.d.ts +0 -33
- package/dist/src/lib.d.ts.map +0 -1
- package/dist/src/lib.js +0 -37
- package/dist/src/pipeline.d.ts +0 -3
- package/dist/src/pipeline.d.ts.map +0 -1
- package/dist/src/pipeline.js +0 -57
- package/dist/src/runner-node-step.test.d.ts +0 -12
- package/dist/src/runner-node-step.test.d.ts.map +0 -1
- package/dist/src/runner-node-step.test.js +0 -61
- package/dist/src/runner.d.ts +0 -31
- package/dist/src/runner.d.ts.map +0 -1
- package/dist/src/runner.js +0 -240
- package/dist/src/shared/detect-project.d.ts +0 -57
- package/dist/src/shared/detect-project.d.ts.map +0 -1
- package/dist/src/shared/detect-project.js +0 -219
- package/dist/src/shared/detect-project.test.d.ts +0 -2
- package/dist/src/shared/detect-project.test.d.ts.map +0 -1
- package/dist/src/shared/detect-project.test.js +0 -161
- package/dist/src/shared/git.d.ts +0 -25
- package/dist/src/shared/git.d.ts.map +0 -1
- package/dist/src/shared/git.js +0 -53
- package/dist/src/shared/git.test.d.ts +0 -9
- package/dist/src/shared/git.test.d.ts.map +0 -1
- package/dist/src/shared/git.test.js +0 -66
- package/dist/src/shared/gitignore.d.ts +0 -6
- package/dist/src/shared/gitignore.d.ts.map +0 -1
- package/dist/src/shared/gitignore.js +0 -26
- package/dist/src/shared/gradle-settings.d.ts +0 -49
- package/dist/src/shared/gradle-settings.d.ts.map +0 -1
- package/dist/src/shared/gradle-settings.js +0 -138
- package/dist/src/shared/gradle-settings.test.d.ts +0 -2
- package/dist/src/shared/gradle-settings.test.d.ts.map +0 -1
- package/dist/src/shared/gradle-settings.test.js +0 -65
- package/dist/src/shared/prompts.d.ts +0 -30
- package/dist/src/shared/prompts.d.ts.map +0 -1
- package/dist/src/shared/prompts.js +0 -121
- package/dist/src/shared/xcode-container.test.d.ts +0 -2
- package/dist/src/shared/xcode-container.test.d.ts.map +0 -1
- package/dist/src/shared/xcode-container.test.js +0 -123
- package/dist/src/step-marker.d.ts +0 -12
- package/dist/src/step-marker.d.ts.map +0 -1
- package/dist/src/step-marker.js +0 -29
- package/dist/src/step-marker.test.d.ts +0 -11
- package/dist/src/step-marker.test.d.ts.map +0 -1
- package/dist/src/step-marker.test.js +0 -45
- package/dist/src/types.d.ts +0 -58
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts +0 -28
- package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts.map +0 -1
- package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.js +0 -223
- package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts +0 -20
- package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts.map +0 -1
- package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.js +0 -201
- package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts +0 -37
- package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts.map +0 -1
- package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.js +0 -255
- package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts +0 -32
- package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts.map +0 -1
- package/dist/src/yaml/a-missing-credential-is-loud.test.js +0 -301
- package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts +0 -18
- package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts.map +0 -1
- package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.js +0 -66
- package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts +0 -34
- package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts.map +0 -1
- package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.js +0 -218
- package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts +0 -27
- package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts.map +0 -1
- package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.js +0 -126
- package/dist/src/yaml/bitrise-compat.d.ts +0 -65
- package/dist/src/yaml/bitrise-compat.d.ts.map +0 -1
- package/dist/src/yaml/bitrise-compat.js +0 -206
- package/dist/src/yaml/bitrise-compat.test.d.ts +0 -5
- package/dist/src/yaml/bitrise-compat.test.d.ts.map +0 -1
- package/dist/src/yaml/bitrise-compat.test.js +0 -347
- package/dist/src/yaml/cache-key-missing-file.test.d.ts +0 -12
- package/dist/src/yaml/cache-key-missing-file.test.d.ts.map +0 -1
- package/dist/src/yaml/cache-key-missing-file.test.js +0 -116
- package/dist/src/yaml/converter.d.ts +0 -103
- package/dist/src/yaml/converter.d.ts.map +0 -1
- package/dist/src/yaml/converter.js +0 -420
- package/dist/src/yaml/converter.test.d.ts +0 -5
- package/dist/src/yaml/converter.test.d.ts.map +0 -1
- package/dist/src/yaml/converter.test.js +0 -548
- package/dist/src/yaml/e2e.test.d.ts +0 -6
- package/dist/src/yaml/e2e.test.d.ts.map +0 -1
- package/dist/src/yaml/e2e.test.js +0 -446
- package/dist/src/yaml/env-resolver.d.ts +0 -218
- package/dist/src/yaml/env-resolver.d.ts.map +0 -1
- package/dist/src/yaml/env-resolver.js +0 -591
- package/dist/src/yaml/env-resolver.test.d.ts +0 -5
- package/dist/src/yaml/env-resolver.test.d.ts.map +0 -1
- package/dist/src/yaml/env-resolver.test.js +0 -502
- package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts +0 -16
- package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts.map +0 -1
- package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.js +0 -126
- package/dist/src/yaml/fidelity-input-digest.d.ts +0 -37
- package/dist/src/yaml/fidelity-input-digest.d.ts.map +0 -1
- package/dist/src/yaml/fidelity-input-digest.js +0 -208
- package/dist/src/yaml/fidelity-input-digest.test.d.ts +0 -2
- package/dist/src/yaml/fidelity-input-digest.test.d.ts.map +0 -1
- package/dist/src/yaml/fidelity-input-digest.test.js +0 -167
- package/dist/src/yaml/fidelity-manifest.d.ts +0 -126
- package/dist/src/yaml/fidelity-manifest.d.ts.map +0 -1
- package/dist/src/yaml/fidelity-manifest.js +0 -134
- package/dist/src/yaml/fidelity-manifest.test.d.ts +0 -12
- package/dist/src/yaml/fidelity-manifest.test.d.ts.map +0 -1
- package/dist/src/yaml/fidelity-manifest.test.js +0 -251
- package/dist/src/yaml/interactive-prompts.d.ts +0 -71
- package/dist/src/yaml/interactive-prompts.d.ts.map +0 -1
- package/dist/src/yaml/interactive-prompts.js +0 -260
- package/dist/src/yaml/meta-helpers.d.ts +0 -28
- package/dist/src/yaml/meta-helpers.d.ts.map +0 -1
- package/dist/src/yaml/meta-helpers.js +0 -46
- package/dist/src/yaml/missing-env-handler.d.ts +0 -45
- package/dist/src/yaml/missing-env-handler.d.ts.map +0 -1
- package/dist/src/yaml/missing-env-handler.js +0 -64
- package/dist/src/yaml/parser.d.ts +0 -33
- package/dist/src/yaml/parser.d.ts.map +0 -1
- package/dist/src/yaml/parser.js +0 -148
- package/dist/src/yaml/parser.test.d.ts +0 -5
- package/dist/src/yaml/parser.test.d.ts.map +0 -1
- package/dist/src/yaml/parser.test.js +0 -83
- package/dist/src/yaml/pipeline-with-secrets.d.ts +0 -25
- package/dist/src/yaml/pipeline-with-secrets.d.ts.map +0 -1
- package/dist/src/yaml/pipeline-with-secrets.js +0 -76
- package/dist/src/yaml/platform-detector.d.ts +0 -83
- package/dist/src/yaml/platform-detector.d.ts.map +0 -1
- package/dist/src/yaml/platform-detector.js +0 -189
- package/dist/src/yaml/platform-detector.test.d.ts +0 -5
- package/dist/src/yaml/platform-detector.test.d.ts.map +0 -1
- package/dist/src/yaml/platform-detector.test.js +0 -525
- package/dist/src/yaml/preflight-validation.d.ts +0 -29
- package/dist/src/yaml/preflight-validation.d.ts.map +0 -1
- package/dist/src/yaml/preflight-validation.js +0 -21
- package/dist/src/yaml/secrets-manager.d.ts +0 -87
- package/dist/src/yaml/secrets-manager.d.ts.map +0 -1
- package/dist/src/yaml/secrets-manager.js +0 -230
- package/dist/src/yaml/shell-assignments.d.ts +0 -40
- package/dist/src/yaml/shell-assignments.d.ts.map +0 -1
- package/dist/src/yaml/shell-assignments.js +0 -77
- package/dist/src/yaml/step-validator-check-failure.test.d.ts +0 -24
- package/dist/src/yaml/step-validator-check-failure.test.d.ts.map +0 -1
- package/dist/src/yaml/step-validator-check-failure.test.js +0 -130
- package/dist/src/yaml/step-validator-self-assigned.test.d.ts +0 -23
- package/dist/src/yaml/step-validator-self-assigned.test.d.ts.map +0 -1
- package/dist/src/yaml/step-validator-self-assigned.test.js +0 -191
- package/dist/src/yaml/step-validator.d.ts +0 -67
- package/dist/src/yaml/step-validator.d.ts.map +0 -1
- package/dist/src/yaml/step-validator.js +0 -466
- package/dist/src/yaml/step-validator.test.d.ts +0 -18
- package/dist/src/yaml/step-validator.test.d.ts.map +0 -1
- package/dist/src/yaml/step-validator.test.js +0 -140
- package/dist/src/yaml/steps/android-sign.d.ts +0 -35
- package/dist/src/yaml/steps/android-sign.d.ts.map +0 -1
- package/dist/src/yaml/steps/android-sign.js +0 -147
- package/dist/src/yaml/steps/android-variant-resolution.test.d.ts +0 -2
- package/dist/src/yaml/steps/android-variant-resolution.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/android-variant-resolution.test.js +0 -260
- package/dist/src/yaml/steps/android-version.d.ts +0 -26
- package/dist/src/yaml/steps/android-version.d.ts.map +0 -1
- package/dist/src/yaml/steps/android-version.js +0 -128
- package/dist/src/yaml/steps/android-version.test.d.ts +0 -5
- package/dist/src/yaml/steps/android-version.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/android-version.test.js +0 -196
- package/dist/src/yaml/steps/android.d.ts +0 -156
- package/dist/src/yaml/steps/android.d.ts.map +0 -1
- package/dist/src/yaml/steps/android.js +0 -1084
- package/dist/src/yaml/steps/app-store-deploy.d.ts +0 -48
- package/dist/src/yaml/steps/app-store-deploy.d.ts.map +0 -1
- package/dist/src/yaml/steps/app-store-deploy.js +0 -167
- package/dist/src/yaml/steps/base.d.ts +0 -263
- package/dist/src/yaml/steps/base.d.ts.map +0 -1
- package/dist/src/yaml/steps/base.js +0 -380
- package/dist/src/yaml/steps/bitrise-android-tools.d.ts +0 -26
- package/dist/src/yaml/steps/bitrise-android-tools.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-android-tools.js +0 -200
- package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts +0 -5
- package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-android-tools.test.js +0 -280
- package/dist/src/yaml/steps/bitrise-apk-info.d.ts +0 -22
- package/dist/src/yaml/steps/bitrise-apk-info.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-apk-info.js +0 -144
- package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts +0 -5
- package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-apk-info.test.js +0 -331
- package/dist/src/yaml/steps/bitrise-slack.d.ts +0 -49
- package/dist/src/yaml/steps/bitrise-slack.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-slack.js +0 -280
- package/dist/src/yaml/steps/bitrise-slack.test.d.ts +0 -5
- package/dist/src/yaml/steps/bitrise-slack.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-slack.test.js +0 -484
- package/dist/src/yaml/steps/bitrise-ssh.d.ts +0 -27
- package/dist/src/yaml/steps/bitrise-ssh.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-ssh.js +0 -134
- package/dist/src/yaml/steps/bitrise-ssh.test.d.ts +0 -5
- package/dist/src/yaml/steps/bitrise-ssh.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-ssh.test.js +0 -205
- package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts +0 -27
- package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cache-pull-daemon.test.js +0 -212
- package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts +0 -42
- package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cache-pull-restore-roots.test.js +0 -209
- package/dist/src/yaml/steps/cache-push-daemon.test.d.ts +0 -27
- package/dist/src/yaml/steps/cache-push-daemon.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cache-push-daemon.test.js +0 -171
- package/dist/src/yaml/steps/cache.d.ts +0 -59
- package/dist/src/yaml/steps/cache.d.ts.map +0 -1
- package/dist/src/yaml/steps/cache.js +0 -1027
- package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts +0 -42
- package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-deployment-floor.js +0 -140
- package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts +0 -11
- package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-deployment-floor.test.js +0 -176
- package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts +0 -22
- package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.js +0 -97
- package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts +0 -17
- package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-locked-bundler.test.js +0 -282
- package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts +0 -17
- package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.js +0 -132
- package/dist/src/yaml/steps/envstore-loader.test.d.ts +0 -15
- package/dist/src/yaml/steps/envstore-loader.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/envstore-loader.test.js +0 -143
- package/dist/src/yaml/steps/fastlane.d.ts +0 -27
- package/dist/src/yaml/steps/fastlane.d.ts.map +0 -1
- package/dist/src/yaml/steps/fastlane.js +0 -79
- package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts +0 -53
- package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts.map +0 -1
- package/dist/src/yaml/steps/fidelity-aspect-guard.js +0 -72
- package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts +0 -11
- package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/fidelity-aspect-guard.test.js +0 -50
- package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts +0 -87
- package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts.map +0 -1
- package/dist/src/yaml/steps/fidelity-reference-provenance.js +0 -111
- package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts +0 -22
- package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/fidelity-reference-provenance.test.js +0 -118
- package/dist/src/yaml/steps/file.d.ts +0 -52
- package/dist/src/yaml/steps/file.d.ts.map +0 -1
- package/dist/src/yaml/steps/file.js +0 -108
- package/dist/src/yaml/steps/flutter.d.ts +0 -63
- package/dist/src/yaml/steps/flutter.d.ts.map +0 -1
- package/dist/src/yaml/steps/flutter.js +0 -215
- package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts +0 -16
- package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.js +0 -127
- package/dist/src/yaml/steps/git-clone.d.ts +0 -32
- package/dist/src/yaml/steps/git-clone.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-clone.js +0 -171
- package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts +0 -10
- package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-fetch-retry-exec.test.js +0 -162
- package/dist/src/yaml/steps/git-fetch-retry.d.ts +0 -62
- package/dist/src/yaml/steps/git-fetch-retry.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-fetch-retry.js +0 -155
- package/dist/src/yaml/steps/git-fetch-retry.test.d.ts +0 -5
- package/dist/src/yaml/steps/git-fetch-retry.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-fetch-retry.test.js +0 -86
- package/dist/src/yaml/steps/google-play-deploy.d.ts +0 -37
- package/dist/src/yaml/steps/google-play-deploy.d.ts.map +0 -1
- package/dist/src/yaml/steps/google-play-deploy.js +0 -193
- package/dist/src/yaml/steps/google-play-deploy.test.d.ts +0 -5
- package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/google-play-deploy.test.js +0 -310
- package/dist/src/yaml/steps/gradle-memory.d.ts +0 -61
- package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
- package/dist/src/yaml/steps/gradle-memory.js +0 -311
- package/dist/src/yaml/steps/gradle-memory.test.d.ts +0 -2
- package/dist/src/yaml/steps/gradle-memory.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/gradle-memory.test.js +0 -297
- package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts +0 -28
- package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts.map +0 -1
- package/dist/src/yaml/steps/gradle-sdk-cmake.js +0 -107
- package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts +0 -2
- package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/gradle-sdk-cmake.test.js +0 -183
- package/dist/src/yaml/steps/index.d.ts +0 -10
- package/dist/src/yaml/steps/index.d.ts.map +0 -1
- package/dist/src/yaml/steps/index.js +0 -1461
- package/dist/src/yaml/steps/ios-deps.d.ts +0 -78
- package/dist/src/yaml/steps/ios-deps.d.ts.map +0 -1
- package/dist/src/yaml/steps/ios-deps.js +0 -279
- package/dist/src/yaml/steps/ios-deps.test.d.ts +0 -5
- package/dist/src/yaml/steps/ios-deps.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ios-deps.test.js +0 -90
- package/dist/src/yaml/steps/ios-signing.d.ts +0 -31
- package/dist/src/yaml/steps/ios-signing.d.ts.map +0 -1
- package/dist/src/yaml/steps/ios-signing.js +0 -144
- package/dist/src/yaml/steps/ios-version.d.ts +0 -47
- package/dist/src/yaml/steps/ios-version.d.ts.map +0 -1
- package/dist/src/yaml/steps/ios-version.js +0 -151
- package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +0 -10
- package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/java-home-version-spec.test.js +0 -58
- package/dist/src/yaml/steps/linting.d.ts +0 -47
- package/dist/src/yaml/steps/linting.d.ts.map +0 -1
- package/dist/src/yaml/steps/linting.js +0 -148
- package/dist/src/yaml/steps/phase2.test.d.ts +0 -6
- package/dist/src/yaml/steps/phase2.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/phase2.test.js +0 -197
- package/dist/src/yaml/steps/phase3.test.d.ts +0 -5
- package/dist/src/yaml/steps/phase3.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/phase3.test.js +0 -144
- package/dist/src/yaml/steps/phase4.test.d.ts +0 -5
- package/dist/src/yaml/steps/phase4.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/phase4.test.js +0 -166
- package/dist/src/yaml/steps/phase5.test.d.ts +0 -6
- package/dist/src/yaml/steps/phase5.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/phase5.test.js +0 -263
- package/dist/src/yaml/steps/registry.d.ts +0 -88
- package/dist/src/yaml/steps/registry.d.ts.map +0 -1
- package/dist/src/yaml/steps/registry.js +0 -125
- package/dist/src/yaml/steps/registry.test.d.ts +0 -5
- package/dist/src/yaml/steps/registry.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/registry.test.js +0 -235
- package/dist/src/yaml/steps/release.d.ts +0 -50
- package/dist/src/yaml/steps/release.d.ts.map +0 -1
- package/dist/src/yaml/steps/release.js +0 -154
- package/dist/src/yaml/steps/render-post-processor.d.ts +0 -100
- package/dist/src/yaml/steps/render-post-processor.d.ts.map +0 -1
- package/dist/src/yaml/steps/render-post-processor.js +0 -270
- package/dist/src/yaml/steps/render-post-processor.test.d.ts +0 -13
- package/dist/src/yaml/steps/render-post-processor.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/render-post-processor.test.js +0 -220
- package/dist/src/yaml/steps/script.d.ts +0 -23
- package/dist/src/yaml/steps/script.d.ts.map +0 -1
- package/dist/src/yaml/steps/script.js +0 -63
- package/dist/src/yaml/steps/spec-validation.test.d.ts +0 -6
- package/dist/src/yaml/steps/spec-validation.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/spec-validation.test.js +0 -130
- package/dist/src/yaml/steps/steps.test.d.ts +0 -6
- package/dist/src/yaml/steps/steps.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/steps.test.js +0 -881
- package/dist/src/yaml/steps/structural-facts.d.ts +0 -992
- package/dist/src/yaml/steps/structural-facts.d.ts.map +0 -1
- package/dist/src/yaml/steps/structural-facts.js +0 -3276
- package/dist/src/yaml/steps/structural-facts.test.d.ts +0 -12
- package/dist/src/yaml/steps/structural-facts.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/structural-facts.test.js +0 -3039
- package/dist/src/yaml/steps/test-config.d.ts +0 -5
- package/dist/src/yaml/steps/test-config.d.ts.map +0 -1
- package/dist/src/yaml/steps/test-config.js +0 -25
- package/dist/src/yaml/steps/trim-align-corpus.test.d.ts +0 -28
- package/dist/src/yaml/steps/trim-align-corpus.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/trim-align-corpus.test.js +0 -383
- package/dist/src/yaml/steps/trim-align.d.ts +0 -87
- package/dist/src/yaml/steps/trim-align.d.ts.map +0 -1
- package/dist/src/yaml/steps/trim-align.js +0 -367
- package/dist/src/yaml/steps/trim-align.test.d.ts +0 -11
- package/dist/src/yaml/steps/trim-align.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/trim-align.test.js +0 -261
- package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts +0 -66
- package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-preview-android.js +0 -251
- package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts +0 -13
- package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-preview-android.test.js +0 -302
- package/dist/src/yaml/steps/ui-fidelity-preview.d.ts +0 -134
- package/dist/src/yaml/steps/ui-fidelity-preview.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-preview.js +0 -173
- package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts +0 -11
- package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-preview.test.js +0 -210
- package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts +0 -155
- package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-render-android.js +0 -1389
- package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts +0 -2
- package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-render-android.test.js +0 -1106
- package/dist/src/yaml/steps/ui-fidelity-render.d.ts +0 -230
- package/dist/src/yaml/steps/ui-fidelity-render.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-render.js +0 -1597
- package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts +0 -18
- package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-render.test.js +0 -1871
- package/dist/src/yaml/steps/xcode-app-product.d.ts +0 -90
- package/dist/src/yaml/steps/xcode-app-product.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-app-product.js +0 -247
- package/dist/src/yaml/steps/xcode-app-product.test.d.ts +0 -2
- package/dist/src/yaml/steps/xcode-app-product.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-app-product.test.js +0 -202
- package/dist/src/yaml/steps/xcode-derived-data.test.d.ts +0 -30
- package/dist/src/yaml/steps/xcode-derived-data.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-derived-data.test.js +0 -253
- package/dist/src/yaml/steps/xcode-destination.d.ts +0 -47
- package/dist/src/yaml/steps/xcode-destination.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-destination.js +0 -202
- package/dist/src/yaml/steps/xcode-destination.test.d.ts +0 -9
- package/dist/src/yaml/steps/xcode-destination.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-destination.test.js +0 -227
- package/dist/src/yaml/steps/xcode-new.test.d.ts +0 -5
- package/dist/src/yaml/steps/xcode-new.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-new.test.js +0 -211
- package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts +0 -9
- package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-resolve-retry.test.js +0 -146
- package/dist/src/yaml/steps/xcode-simulator-archs.d.ts +0 -53
- package/dist/src/yaml/steps/xcode-simulator-archs.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-simulator-archs.js +0 -98
- package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts +0 -21
- package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-simulator-archs.test.js +0 -155
- package/dist/src/yaml/steps/xcode.d.ts +0 -230
- package/dist/src/yaml/steps/xcode.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode.js +0 -1340
- package/dist/src/yaml/types.d.ts +0 -76
- package/dist/src/yaml/types.d.ts.map +0 -1
- package/dist/src/yaml/types.js +0 -5
- package/dist/src/yaml/validation-types.d.ts +0 -102
- package/dist/src/yaml/validation-types.d.ts.map +0 -1
- package/dist/src/yaml/validation-types.js +0 -8
- package/dist/src/yaml/yaml-updater.d.ts +0 -24
- package/dist/src/yaml/yaml-updater.d.ts.map +0 -1
- package/dist/src/yaml/yaml-updater.js +0 -128
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-state UI-fidelity manifest parser/validator.
|
|
3
|
-
*
|
|
4
|
-
* The manifest lives at the app-repo root as `.invarn/fidelity.yml` and is the
|
|
5
|
-
* single seam the android-ui-fidelity skill and any orchestrator share. It
|
|
6
|
-
* declares each **Surface** (one app screen) and that surface's first-class
|
|
7
|
-
* **States** (guest vs logged-in; empty vs progress vs complete). Each State is
|
|
8
|
-
* one named proof composable paired with one **Reference**, and the Reference
|
|
9
|
-
* carries export-time **provenance** so the gate can assert validity by
|
|
10
|
-
* metadata rather than by reading pixels.
|
|
11
|
-
*
|
|
12
|
-
* This module owns the schema (the TypeScript types below) and a validator that
|
|
13
|
-
* rejects malformed entries with a clear, distinct message — the shared
|
|
14
|
-
* contract the reference-provenance (UNVERIFIABLE) and baseline-filter slices
|
|
15
|
-
* key on.
|
|
16
|
-
*/
|
|
17
|
-
import * as yaml from 'js-yaml';
|
|
18
|
-
import { readFileSync, existsSync } from 'fs';
|
|
19
|
-
/** Thrown when a manifest is absent, unparseable, or schema-invalid. */
|
|
20
|
-
export class FidelityManifestError extends Error {
|
|
21
|
-
filePath;
|
|
22
|
-
constructor(message, filePath) {
|
|
23
|
-
super(message);
|
|
24
|
-
this.filePath = filePath;
|
|
25
|
-
this.name = 'FidelityManifestError';
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
/** Reads and parses a manifest from disk. */
|
|
29
|
-
export function loadFidelityManifest(filePath) {
|
|
30
|
-
if (!existsSync(filePath)) {
|
|
31
|
-
throw new FidelityManifestError(`Fidelity manifest not found: ${filePath}`, filePath);
|
|
32
|
-
}
|
|
33
|
-
return parseFidelityManifest(readFileSync(filePath, 'utf-8'), filePath);
|
|
34
|
-
}
|
|
35
|
-
/** Parses and validates manifest YAML text. */
|
|
36
|
-
export function parseFidelityManifest(text, filePath) {
|
|
37
|
-
let doc;
|
|
38
|
-
try {
|
|
39
|
-
doc = yaml.load(text);
|
|
40
|
-
}
|
|
41
|
-
catch (err) {
|
|
42
|
-
throw new FidelityManifestError(`Invalid YAML in fidelity manifest: ${err.message}`, filePath);
|
|
43
|
-
}
|
|
44
|
-
const root = doc;
|
|
45
|
-
const surfaces = root.surfaces ?? [];
|
|
46
|
-
validateSurfaces(surfaces, filePath);
|
|
47
|
-
return {
|
|
48
|
-
version: Number(root.version),
|
|
49
|
-
surfaces,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/** The provenance fields every Reference must carry to be verifiable. */
|
|
53
|
-
const REQUIRED_PROVENANCE_FIELDS = [
|
|
54
|
-
'figmaNode',
|
|
55
|
-
'locale',
|
|
56
|
-
'resolved',
|
|
57
|
-
'exportedAt',
|
|
58
|
-
];
|
|
59
|
-
function validateSurfaces(surfaces, filePath) {
|
|
60
|
-
for (const surface of surfaces) {
|
|
61
|
-
const seenStateNames = new Set();
|
|
62
|
-
for (const state of surface.states ?? []) {
|
|
63
|
-
if (seenStateNames.has(state.name)) {
|
|
64
|
-
throw new FidelityManifestError(`surface "${surface.name}": duplicate state name "${state.name}" — state names must be unique within a surface.`, filePath);
|
|
65
|
-
}
|
|
66
|
-
seenStateNames.add(state.name);
|
|
67
|
-
const where = `surface "${surface.name}" state "${state.name}"`;
|
|
68
|
-
const provenance = state.reference?.provenance;
|
|
69
|
-
for (const field of REQUIRED_PROVENANCE_FIELDS) {
|
|
70
|
-
if (provenance == null || provenance[field] === undefined) {
|
|
71
|
-
throw new FidelityManifestError(`${where}: reference provenance is missing required field "${field}".`, filePath);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
for (const entry of state.accepted ?? []) {
|
|
75
|
-
if (entry.actual === undefined ||
|
|
76
|
-
entry.actual === null ||
|
|
77
|
-
entry.actual === '') {
|
|
78
|
-
throw new FidelityManifestError(`${where}: accepted[] entry for element "${entry.element}" is missing a pinned "actual" value.`, filePath);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/** POSIX basename of a repo-relative path (manifest paths are POSIX). */
|
|
85
|
-
function posixBasename(p) {
|
|
86
|
-
const parts = p.split('/');
|
|
87
|
-
return parts[parts.length - 1];
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Build the per-dispatch inputs for one surface: one run carries all of the
|
|
91
|
-
* surface's states, each paired with its own reference and provenance. The
|
|
92
|
-
* render locale defaults to the references' shared locale (they must agree);
|
|
93
|
-
* pass `renderLocale` to override (a deliberate mismatch then surfaces as
|
|
94
|
-
* UNVERIFIABLE at the gate). Reference basenames must be unique, since the
|
|
95
|
-
* upload layer addresses files by basename.
|
|
96
|
-
*/
|
|
97
|
-
export function buildSurfaceDispatchInputs(surface, opts = {}) {
|
|
98
|
-
const screens = {};
|
|
99
|
-
const provenance = {};
|
|
100
|
-
const references = [];
|
|
101
|
-
const accepted = {};
|
|
102
|
-
const basenameToPath = new Map();
|
|
103
|
-
for (const state of surface.states ?? []) {
|
|
104
|
-
const path = state.reference.path;
|
|
105
|
-
const base = posixBasename(path);
|
|
106
|
-
const existing = basenameToPath.get(base);
|
|
107
|
-
if (existing !== undefined && existing !== path) {
|
|
108
|
-
throw new FidelityManifestError(`surface "${surface.name}": states resolve to the same reference basename "${base}" ` +
|
|
109
|
-
`(${existing} vs ${path}); references are uploaded by basename, so they must be unique.`);
|
|
110
|
-
}
|
|
111
|
-
basenameToPath.set(base, path);
|
|
112
|
-
screens[state.proof] = base;
|
|
113
|
-
provenance[state.proof] = state.reference.provenance;
|
|
114
|
-
references.push({ proof: state.proof, path });
|
|
115
|
-
if (state.accepted && state.accepted.length > 0) {
|
|
116
|
-
accepted[state.proof] = state.accepted;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
const renderLocale = opts.renderLocale ?? deriveRenderLocale(surface);
|
|
120
|
-
return { screens, render_locale: renderLocale, provenance, references, accepted };
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* The render locale a surface's references share. Throws when they disagree and
|
|
124
|
-
* no explicit locale was given — a coherent surface renders in one locale.
|
|
125
|
-
*/
|
|
126
|
-
function deriveRenderLocale(surface) {
|
|
127
|
-
const locales = new Set((surface.states ?? []).map((s) => s.reference.provenance.locale));
|
|
128
|
-
if (locales.size > 1) {
|
|
129
|
-
throw new FidelityManifestError(`surface "${surface.name}": references span multiple locales ` +
|
|
130
|
-
`(${[...locales].join(', ')}); pass an explicit renderLocale to disambiguate.`);
|
|
131
|
-
}
|
|
132
|
-
return locales.values().next().value ?? '';
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=fidelity-manifest.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unit tests for the multi-state UI-fidelity manifest parser/validator.
|
|
3
|
-
*
|
|
4
|
-
* The manifest (`.invarn/fidelity.yml`) declares each Surface's States
|
|
5
|
-
* first-class: one named proof composable per State, each paired with its own
|
|
6
|
-
* Reference (carrying export-time provenance), plus a per-State `accepted[]`
|
|
7
|
-
* baseline of allowlisted divergences. These tests pin the schema and the
|
|
8
|
-
* validator's distinct rejections; fixtures are written to a temp dir and
|
|
9
|
-
* loaded by path, mirroring the YAML pipeline parser tests.
|
|
10
|
-
*/
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=fidelity-manifest.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fidelity-manifest.test.d.ts","sourceRoot":"","sources":["../../../src/yaml/fidelity-manifest.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unit tests for the multi-state UI-fidelity manifest parser/validator.
|
|
3
|
-
*
|
|
4
|
-
* The manifest (`.invarn/fidelity.yml`) declares each Surface's States
|
|
5
|
-
* first-class: one named proof composable per State, each paired with its own
|
|
6
|
-
* Reference (carrying export-time provenance), plus a per-State `accepted[]`
|
|
7
|
-
* baseline of allowlisted divergences. These tests pin the schema and the
|
|
8
|
-
* validator's distinct rejections; fixtures are written to a temp dir and
|
|
9
|
-
* loaded by path, mirroring the YAML pipeline parser tests.
|
|
10
|
-
*/
|
|
11
|
-
import { describe, test, expect, beforeEach, afterEach } from '@jest/globals';
|
|
12
|
-
import { writeFileSync, mkdtempSync, rmSync } from 'fs';
|
|
13
|
-
import { tmpdir } from 'os';
|
|
14
|
-
import { join } from 'path';
|
|
15
|
-
import { loadFidelityManifest, parseFidelityManifest, buildSurfaceDispatchInputs, FidelityManifestError, } from './fidelity-manifest.js';
|
|
16
|
-
describe('fidelity manifest — parser/validator', () => {
|
|
17
|
-
let workDir;
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
workDir = mkdtempSync(join(tmpdir(), 'cibuild-fidelity-manifest-'));
|
|
20
|
-
});
|
|
21
|
-
afterEach(() => {
|
|
22
|
-
rmSync(workDir, { recursive: true, force: true });
|
|
23
|
-
});
|
|
24
|
-
function writeManifest(content) {
|
|
25
|
-
const path = join(workDir, 'fidelity.yml');
|
|
26
|
-
writeFileSync(path, content, 'utf-8');
|
|
27
|
-
return path;
|
|
28
|
-
}
|
|
29
|
-
// A well-formed two-state surface modelling the canonical promo banner
|
|
30
|
-
// (guest + logged-in), with provenance on each reference and one accepted
|
|
31
|
-
// baseline entry on the logged-in state.
|
|
32
|
-
const TWO_STATE_BANNER = `version: 1
|
|
33
|
-
surfaces:
|
|
34
|
-
- name: PromoBanner
|
|
35
|
-
platform: android
|
|
36
|
-
module: fidelity/promo-banner
|
|
37
|
-
source:
|
|
38
|
-
- feature/hub/**/PromoBanner.kt
|
|
39
|
-
touchedBy:
|
|
40
|
-
- feature/hub/**/PromoBanner*.kt
|
|
41
|
-
states:
|
|
42
|
-
- name: Guest
|
|
43
|
-
proof: PromoBannerGuestProof
|
|
44
|
-
reference:
|
|
45
|
-
path: fidelity/refs/promo_banner_guest.png
|
|
46
|
-
provenance:
|
|
47
|
-
figmaNode: "12:345"
|
|
48
|
-
locale: en
|
|
49
|
-
resolved: true
|
|
50
|
-
exportedAt: "2026-06-18T10:00:00Z"
|
|
51
|
-
- name: LoggedIn
|
|
52
|
-
proof: PromoBannerLoggedInProof
|
|
53
|
-
reference:
|
|
54
|
-
path: fidelity/refs/promo_banner_logged_in.png
|
|
55
|
-
provenance:
|
|
56
|
-
figmaNode: "12:346"
|
|
57
|
-
locale: en
|
|
58
|
-
resolved: true
|
|
59
|
-
exportedAt: "2026-06-18T10:00:00Z"
|
|
60
|
-
accepted:
|
|
61
|
-
- category: copy
|
|
62
|
-
element: banner_subtitle
|
|
63
|
-
expected: "Get 5 off when you spend 20,00"
|
|
64
|
-
actual: "Get 5 off your first order placed by {date}"
|
|
65
|
-
`;
|
|
66
|
-
test('parses a well-formed two-state surface into addressable states', () => {
|
|
67
|
-
const manifest = loadFidelityManifest(writeManifest(TWO_STATE_BANNER));
|
|
68
|
-
expect(manifest.version).toBe(1);
|
|
69
|
-
expect(manifest.surfaces).toHaveLength(1);
|
|
70
|
-
const surface = manifest.surfaces[0];
|
|
71
|
-
expect(surface.name).toBe('PromoBanner');
|
|
72
|
-
expect(surface.platform).toBe('android');
|
|
73
|
-
expect(surface.states.map((s) => s.name)).toEqual(['Guest', 'LoggedIn']);
|
|
74
|
-
const [guest, loggedIn] = surface.states;
|
|
75
|
-
expect(guest.proof).toBe('PromoBannerGuestProof');
|
|
76
|
-
expect(guest.reference.path).toBe('fidelity/refs/promo_banner_guest.png');
|
|
77
|
-
expect(guest.reference.provenance).toEqual({
|
|
78
|
-
figmaNode: '12:345',
|
|
79
|
-
locale: 'en',
|
|
80
|
-
resolved: true,
|
|
81
|
-
exportedAt: '2026-06-18T10:00:00Z',
|
|
82
|
-
});
|
|
83
|
-
expect(loggedIn.proof).toBe('PromoBannerLoggedInProof');
|
|
84
|
-
expect(loggedIn.accepted).toEqual([
|
|
85
|
-
{
|
|
86
|
-
category: 'copy',
|
|
87
|
-
element: 'banner_subtitle',
|
|
88
|
-
expected: 'Get 5 off when you spend 20,00',
|
|
89
|
-
actual: 'Get 5 off your first order placed by {date}',
|
|
90
|
-
},
|
|
91
|
-
]);
|
|
92
|
-
});
|
|
93
|
-
test('rejects a reference missing a provenance field', () => {
|
|
94
|
-
// `exportedAt` omitted from the guest reference's provenance.
|
|
95
|
-
const yaml = `version: 1
|
|
96
|
-
surfaces:
|
|
97
|
-
- name: PromoBanner
|
|
98
|
-
platform: android
|
|
99
|
-
states:
|
|
100
|
-
- name: Guest
|
|
101
|
-
proof: PromoBannerGuestProof
|
|
102
|
-
reference:
|
|
103
|
-
path: fidelity/refs/promo_banner_guest.png
|
|
104
|
-
provenance:
|
|
105
|
-
figmaNode: "12:345"
|
|
106
|
-
locale: en
|
|
107
|
-
resolved: true
|
|
108
|
-
`;
|
|
109
|
-
expect(() => loadFidelityManifest(writeManifest(yaml))).toThrow(FidelityManifestError);
|
|
110
|
-
expect(() => loadFidelityManifest(writeManifest(yaml))).toThrow(/provenance.*exportedAt|exportedAt.*provenance/i);
|
|
111
|
-
});
|
|
112
|
-
test('rejects an accepted[] entry with no pinned actual', () => {
|
|
113
|
-
// The baseline entry omits `actual` — it cannot pin the render value, so a
|
|
114
|
-
// changed value could never re-flag. Reject loud.
|
|
115
|
-
const yaml = `version: 1
|
|
116
|
-
surfaces:
|
|
117
|
-
- name: PromoBanner
|
|
118
|
-
platform: android
|
|
119
|
-
states:
|
|
120
|
-
- name: LoggedIn
|
|
121
|
-
proof: PromoBannerLoggedInProof
|
|
122
|
-
reference:
|
|
123
|
-
path: fidelity/refs/promo_banner_logged_in.png
|
|
124
|
-
provenance:
|
|
125
|
-
figmaNode: "12:346"
|
|
126
|
-
locale: en
|
|
127
|
-
resolved: true
|
|
128
|
-
exportedAt: "2026-06-18T10:00:00Z"
|
|
129
|
-
accepted:
|
|
130
|
-
- category: copy
|
|
131
|
-
element: banner_subtitle
|
|
132
|
-
expected: "Get 5 off when you spend 20,00"
|
|
133
|
-
`;
|
|
134
|
-
expect(() => loadFidelityManifest(writeManifest(yaml))).toThrow(FidelityManifestError);
|
|
135
|
-
expect(() => loadFidelityManifest(writeManifest(yaml))).toThrow(/accepted.*actual|actual/i);
|
|
136
|
-
});
|
|
137
|
-
test('rejects duplicate state names within a surface', () => {
|
|
138
|
-
// Two states both named "Guest" — their proofs would collide on one
|
|
139
|
-
// params.screens key.
|
|
140
|
-
const yaml = `version: 1
|
|
141
|
-
surfaces:
|
|
142
|
-
- name: PromoBanner
|
|
143
|
-
platform: android
|
|
144
|
-
states:
|
|
145
|
-
- name: Guest
|
|
146
|
-
proof: PromoBannerGuestProof
|
|
147
|
-
reference:
|
|
148
|
-
path: fidelity/refs/promo_banner_guest.png
|
|
149
|
-
provenance:
|
|
150
|
-
figmaNode: "12:345"
|
|
151
|
-
locale: en
|
|
152
|
-
resolved: true
|
|
153
|
-
exportedAt: "2026-06-18T10:00:00Z"
|
|
154
|
-
- name: Guest
|
|
155
|
-
proof: PromoBannerGuestAltProof
|
|
156
|
-
reference:
|
|
157
|
-
path: fidelity/refs/promo_banner_guest_alt.png
|
|
158
|
-
provenance:
|
|
159
|
-
figmaNode: "12:347"
|
|
160
|
-
locale: en
|
|
161
|
-
resolved: true
|
|
162
|
-
exportedAt: "2026-06-18T10:00:00Z"
|
|
163
|
-
`;
|
|
164
|
-
expect(() => loadFidelityManifest(writeManifest(yaml))).toThrow(FidelityManifestError);
|
|
165
|
-
expect(() => loadFidelityManifest(writeManifest(yaml))).toThrow(/duplicate state.*Guest|state name "Guest"/i);
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
describe('buildSurfaceDispatchInputs', () => {
|
|
169
|
-
const BANNER = `version: 1
|
|
170
|
-
surfaces:
|
|
171
|
-
- name: PromoBanner
|
|
172
|
-
platform: android
|
|
173
|
-
module: fidelity/promo-banner
|
|
174
|
-
states:
|
|
175
|
-
- name: Guest
|
|
176
|
-
proof: PromoBannerGuestProof
|
|
177
|
-
reference:
|
|
178
|
-
path: fidelity/refs/promo_banner_guest.png
|
|
179
|
-
provenance:
|
|
180
|
-
figmaNode: "12:345"
|
|
181
|
-
locale: en
|
|
182
|
-
resolved: true
|
|
183
|
-
exportedAt: "2026-06-18T10:00:00Z"
|
|
184
|
-
- name: LoggedIn
|
|
185
|
-
proof: PromoBannerLoggedInProof
|
|
186
|
-
reference:
|
|
187
|
-
path: fidelity/refs/promo_banner_logged_in.png
|
|
188
|
-
provenance:
|
|
189
|
-
figmaNode: "12:346"
|
|
190
|
-
locale: en
|
|
191
|
-
resolved: true
|
|
192
|
-
exportedAt: "2026-06-18T10:00:00Z"
|
|
193
|
-
accepted:
|
|
194
|
-
- category: copy
|
|
195
|
-
element: banner_subtitle
|
|
196
|
-
expected: "A"
|
|
197
|
-
actual: "B"
|
|
198
|
-
`;
|
|
199
|
-
function bannerSurface(extra = '') {
|
|
200
|
-
return parseFidelityManifest(BANNER + extra).surfaces[0];
|
|
201
|
-
}
|
|
202
|
-
test('maps each state proof to its reference basename in screens', () => {
|
|
203
|
-
const inputs = buildSurfaceDispatchInputs(bannerSurface());
|
|
204
|
-
expect(inputs.screens).toEqual({
|
|
205
|
-
PromoBannerGuestProof: 'promo_banner_guest.png',
|
|
206
|
-
PromoBannerLoggedInProof: 'promo_banner_logged_in.png',
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
test('keys provenance by proof and derives the render locale from the references', () => {
|
|
210
|
-
const inputs = buildSurfaceDispatchInputs(bannerSurface());
|
|
211
|
-
expect(inputs.render_locale).toBe('en');
|
|
212
|
-
expect(inputs.provenance.PromoBannerGuestProof).toEqual({
|
|
213
|
-
figmaNode: '12:345',
|
|
214
|
-
locale: 'en',
|
|
215
|
-
resolved: true,
|
|
216
|
-
exportedAt: '2026-06-18T10:00:00Z',
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
test('lists the reference files to upload, one per state, by repo path', () => {
|
|
220
|
-
const inputs = buildSurfaceDispatchInputs(bannerSurface());
|
|
221
|
-
expect(inputs.references).toEqual([
|
|
222
|
-
{ proof: 'PromoBannerGuestProof', path: 'fidelity/refs/promo_banner_guest.png' },
|
|
223
|
-
{ proof: 'PromoBannerLoggedInProof', path: 'fidelity/refs/promo_banner_logged_in.png' },
|
|
224
|
-
]);
|
|
225
|
-
});
|
|
226
|
-
test('carries each state baseline keyed by proof for the post-judgment filter', () => {
|
|
227
|
-
const inputs = buildSurfaceDispatchInputs(bannerSurface());
|
|
228
|
-
expect(inputs.accepted.PromoBannerLoggedInProof).toEqual([
|
|
229
|
-
{ category: 'copy', element: 'banner_subtitle', expected: 'A', actual: 'B' },
|
|
230
|
-
]);
|
|
231
|
-
// States with no accepted[] don't appear.
|
|
232
|
-
expect(inputs.accepted.PromoBannerGuestProof).toBeUndefined();
|
|
233
|
-
});
|
|
234
|
-
test('honours an explicit render locale override', () => {
|
|
235
|
-
const inputs = buildSurfaceDispatchInputs(bannerSurface(), { renderLocale: 'it' });
|
|
236
|
-
expect(inputs.render_locale).toBe('it');
|
|
237
|
-
});
|
|
238
|
-
test('throws when references disagree on locale and none is given', () => {
|
|
239
|
-
// Flip the logged-in reference to Italian.
|
|
240
|
-
const surface = bannerSurface();
|
|
241
|
-
surface.states[1].reference.provenance.locale = 'it';
|
|
242
|
-
expect(() => buildSurfaceDispatchInputs(surface)).toThrow(/locale/i);
|
|
243
|
-
});
|
|
244
|
-
test('throws when two states resolve to the same reference basename', () => {
|
|
245
|
-
const surface = bannerSurface();
|
|
246
|
-
// Same basename, different dirs → upload-layer collision.
|
|
247
|
-
surface.states[1].reference.path = 'other/promo_banner_guest.png';
|
|
248
|
-
expect(() => buildSurfaceDispatchInputs(surface)).toThrow(/basename/i);
|
|
249
|
-
});
|
|
250
|
-
});
|
|
251
|
-
//# sourceMappingURL=fidelity-manifest.test.js.map
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive prompts for missing environment variables
|
|
3
|
-
* Allows users to fill in missing values or cancel the build
|
|
4
|
-
*/
|
|
5
|
-
import { SecretsManager } from './secrets-manager.js';
|
|
6
|
-
/**
|
|
7
|
-
* Result of prompting for a missing environment variable
|
|
8
|
-
*/
|
|
9
|
-
export interface PromptResult {
|
|
10
|
-
value: string;
|
|
11
|
-
cancelled: boolean;
|
|
12
|
-
copiedToAI?: boolean;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Interactive prompt manager for collecting missing environment variables
|
|
16
|
-
*/
|
|
17
|
-
export declare class InteractivePrompts {
|
|
18
|
-
private secretsManager;
|
|
19
|
-
private workflow?;
|
|
20
|
-
constructor(secretsManager: SecretsManager, workflow?: string);
|
|
21
|
-
/**
|
|
22
|
-
* Prompt user for a missing environment variable
|
|
23
|
-
* @param varName Variable name
|
|
24
|
-
* @param stepName Optional step name that requires this variable
|
|
25
|
-
* @param hint Optional hint describing what the variable is for and expected format
|
|
26
|
-
* @returns Promise with the entered value or cancellation
|
|
27
|
-
*/
|
|
28
|
-
promptForVariable(varName: string, stepName?: string, hint?: string): Promise<PromptResult>;
|
|
29
|
-
/**
|
|
30
|
-
* Determine if a variable name suggests it's sensitive
|
|
31
|
-
* @param varName Variable name
|
|
32
|
-
* @returns True if variable appears to be sensitive
|
|
33
|
-
*/
|
|
34
|
-
private isSensitiveVariable;
|
|
35
|
-
/**
|
|
36
|
-
* Prompt for yes/no confirmation
|
|
37
|
-
* @param message Prompt message
|
|
38
|
-
* @returns Promise with true for yes, false for no
|
|
39
|
-
*/
|
|
40
|
-
private promptYesNo;
|
|
41
|
-
/**
|
|
42
|
-
* Process hint text to preserve formatting while wrapping plain text
|
|
43
|
-
* @param hint Hint text (may contain newlines and formatted sections)
|
|
44
|
-
* @param maxWidth Maximum width for wrapping plain text lines
|
|
45
|
-
* @returns Array of processed lines ready for display
|
|
46
|
-
*/
|
|
47
|
-
private processHintText;
|
|
48
|
-
/**
|
|
49
|
-
* Wrap text to fit within a specified width
|
|
50
|
-
* @param text Text to wrap
|
|
51
|
-
* @param maxWidth Maximum width per line
|
|
52
|
-
* @returns Array of wrapped lines
|
|
53
|
-
*/
|
|
54
|
-
private wrapText;
|
|
55
|
-
/**
|
|
56
|
-
* Generate AI prompt with hint for getting guidance
|
|
57
|
-
* @param hint Hint text from the step
|
|
58
|
-
* @returns Formatted AI prompt
|
|
59
|
-
*/
|
|
60
|
-
private generateAIPrompt;
|
|
61
|
-
/**
|
|
62
|
-
* Copy text to system clipboard
|
|
63
|
-
* @param text Text to copy
|
|
64
|
-
*/
|
|
65
|
-
private copyToClipboard;
|
|
66
|
-
/**
|
|
67
|
-
* Close the prompts interface (no-op with prompts library)
|
|
68
|
-
*/
|
|
69
|
-
close(): void;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=interactive-prompts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-prompts.d.ts","sourceRoot":"","sources":["../../../src/yaml/interactive-prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK7D;;;;;;OAMG;IACG,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC;IA4FxB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;;;OAIG;YACW,WAAW;IAWzB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA0BvB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAyBhB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;;OAGG;YACW,eAAe;IAqC7B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|