@bleedingdev/modern-js-utils 3.9.0-ultramodern.1 → 3.9.0-ultramodern.11
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/cjs/cli/require.js +10 -1
- package/dist/cjs/universal/index.js +5 -25
- package/dist/compiled/chokidar/types/index.d.ts +1 -1
- package/dist/compiled/fast-glob/@nodelib/fs.scandir/out/adapters/fs.d.ts +1 -1
- package/dist/compiled/fast-glob/@nodelib/fs.scandir/out/settings.d.ts +1 -1
- package/dist/compiled/fast-glob/@nodelib/fs.walk/out/index.d.ts +1 -1
- package/dist/compiled/fast-glob/@nodelib/fs.walk/out/readers/async.d.ts +1 -1
- package/dist/compiled/fast-glob/@nodelib/fs.walk/out/settings.d.ts +1 -1
- package/dist/compiled/fast-glob/@nodelib/fs.walk/out/types/index.d.ts +1 -1
- package/dist/compiled/fast-glob/out/types/index.d.ts +1 -1
- package/dist/compiled/inquirer/lib/prompts/base.d.ts +100 -0
- package/dist/compiled/inquirer/lib/prompts/checkbox.d.ts +116 -0
- package/dist/compiled/inquirer/lib/prompts/confirm.d.ts +53 -0
- package/dist/compiled/inquirer/lib/prompts/editor.d.ts +101 -0
- package/dist/compiled/inquirer/lib/prompts/expand.d.ts +149 -0
- package/dist/compiled/inquirer/lib/prompts/input.d.ts +82 -0
- package/dist/compiled/inquirer/lib/prompts/list.d.ts +89 -0
- package/dist/compiled/inquirer/lib/prompts/number.d.ts +32 -0
- package/dist/compiled/inquirer/lib/prompts/password.d.ts +82 -0
- package/dist/compiled/inquirer/lib/prompts/rawlist.d.ts +111 -0
- package/dist/compiled/inquirer/lib/utils/events.d.ts +72 -0
- package/dist/compiled/inquirer/lib/utils/incrementListIndex.d.ts +23 -0
- package/dist/compiled/inquirer/lib/utils/paginator.d.ts +55 -0
- package/dist/compiled/inquirer/lib/utils/readline.d.ts +56 -0
- package/dist/compiled/inquirer/lib/utils/screen-manager.d.ts +90 -0
- package/dist/compiled/inquirer/lib/utils/utils.d.ts +30 -0
- package/dist/compiled/inquirer/rxjs/LICENSE.txt +202 -0
- package/dist/compiled/inquirer/rxjs/ajax/index.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/fetch/index.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/index.d.ts +173 -0
- package/dist/compiled/inquirer/rxjs/internal/AnyCatcher.d.ts +10 -0
- package/dist/compiled/inquirer/rxjs/internal/AsyncSubject.d.ts +13 -0
- package/dist/compiled/inquirer/rxjs/internal/BehaviorSubject.d.ts +13 -0
- package/dist/compiled/inquirer/rxjs/internal/Notification.d.ts +175 -0
- package/dist/compiled/inquirer/rxjs/internal/NotificationFactories.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/internal/Observable.d.ts +121 -0
- package/dist/compiled/inquirer/rxjs/internal/Operator.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/ReplaySubject.d.ts +49 -0
- package/dist/compiled/inquirer/rxjs/internal/Scheduler.d.ts +53 -0
- package/dist/compiled/inquirer/rxjs/internal/Subject.d.ts +54 -0
- package/dist/compiled/inquirer/rxjs/internal/Subscriber.d.ts +72 -0
- package/dist/compiled/inquirer/rxjs/internal/Subscription.d.ts +92 -0
- package/dist/compiled/inquirer/rxjs/internal/ajax/AjaxResponse.d.ts +115 -0
- package/dist/compiled/inquirer/rxjs/internal/ajax/ajax.d.ts +227 -0
- package/dist/compiled/inquirer/rxjs/internal/ajax/errors.d.ts +65 -0
- package/dist/compiled/inquirer/rxjs/internal/ajax/getXHRResponse.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/ajax/types.d.ts +200 -0
- package/dist/compiled/inquirer/rxjs/internal/config.d.ts +73 -0
- package/dist/compiled/inquirer/rxjs/internal/firstValueFrom.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/lastValueFrom.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/ConnectableObservable.d.ts +42 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/bindCallback.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/bindCallbackInternals.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/bindNodeCallback.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/combineLatest.d.ts +33 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/concat.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/connectable.d.ts +27 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/defer.d.ts +51 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/dom/WebSocketSubject.d.ts +173 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/dom/animationFrames.d.ts +76 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/dom/fetch.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/dom/webSocket.d.ts +159 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/empty.d.ts +72 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/forkJoin.d.ts +24 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/from.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/fromEvent.d.ts +45 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/fromEventPattern.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/fromSubscribable.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/generate.d.ts +314 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/iif.d.ts +82 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/innerFrom.d.ts +21 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/interval.d.ts +48 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/merge.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/never.d.ts +40 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/of.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/onErrorResumeNext.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/pairs.d.ts +19 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/partition.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/race.d.ts +12 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/range.d.ts +8 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/throwError.d.ts +115 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/timer.d.ts +126 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/using.d.ts +30 -0
- package/dist/compiled/inquirer/rxjs/internal/observable/zip.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/OperatorSubscriber.d.ts +41 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/audit.d.ts +48 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/auditTime.d.ts +50 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/buffer.d.ts +41 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/bufferCount.d.ts +54 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/bufferTime.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/bufferToggle.d.ts +46 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/bufferWhen.d.ts +41 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/catchError.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/combineAll.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/combineLatest.d.ts +10 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/combineLatestAll.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/combineLatestWith.d.ts +43 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/concat.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/concatAll.d.ts +59 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/concatMap.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/concatMapTo.d.ts +8 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/concatWith.d.ts +43 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/connect.d.ts +87 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/count.d.ts +58 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/debounce.d.ts +61 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/debounceTime.d.ts +59 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/defaultIfEmpty.d.ts +38 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/delay.d.ts +59 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/delayWhen.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/dematerialize.d.ts +51 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/distinct.d.ts +60 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/distinctUntilChanged.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/distinctUntilKeyChanged.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/elementAt.d.ts +51 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/endWith.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/every.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/exhaust.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/exhaustAll.d.ts +47 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/exhaustMap.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/expand.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/filter.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/finalize.d.ts +64 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/find.d.ts +12 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/findIndex.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/first.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/flatMap.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/groupBy.d.ts +119 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/ignoreElements.d.ts +38 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/isEmpty.d.ts +64 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/joinAllInternals.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/last.d.ts +8 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/map.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/mapTo.d.ts +10 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/materialize.d.ts +52 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/max.d.ts +50 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/merge.d.ts +10 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/mergeAll.d.ts +62 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/mergeInternals.d.ts +18 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/mergeMap.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/mergeMapTo.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/mergeScan.d.ts +68 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/mergeWith.d.ts +44 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/min.d.ts +50 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/multicast.d.ts +63 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/observeOn.d.ts +56 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/onErrorResumeNextWith.d.ts +8 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/pairwise.d.ts +46 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/partition.d.ts +54 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/pluck.d.ts +18 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/publish.d.ts +30 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/publishBehavior.d.ts +19 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/publishLast.d.ts +69 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/publishReplay.d.ts +56 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/race.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/raceWith.d.ts +29 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/reduce.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/refCount.d.ts +61 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/repeat.d.ts +108 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/repeatWhen.d.ts +38 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/retry.d.ts +28 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/retryWhen.d.ts +61 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/sample.d.ts +43 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/sampleTime.d.ts +46 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/scan.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/scanInternals.d.ts +12 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/sequenceEqual.d.ts +60 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/share.d.ts +43 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/shareReplay.d.ts +10 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/single.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/skip.d.ts +36 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/skipLast.d.ts +45 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/skipUntil.d.ts +48 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/skipWhile.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/startWith.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/subscribeOn.d.ts +62 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/switchAll.d.ts +61 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/switchMap.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/switchMapTo.d.ts +8 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/switchScan.d.ts +20 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/take.d.ts +45 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/takeLast.d.ts +42 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/takeUntil.d.ts +41 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/takeWhile.d.ts +8 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/tap.d.ts +72 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/throttle.d.ts +78 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/throttleTime.d.ts +53 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/throwIfEmpty.d.ts +39 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/timeInterval.d.ts +50 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/timeout.d.ts +255 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/timeoutWith.d.ts +8 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/timestamp.d.ts +35 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/toArray.d.ts +33 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/window.d.ts +48 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/windowCount.d.ts +65 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/windowTime.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/windowToggle.d.ts +49 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/windowWhen.d.ts +49 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/withLatestFrom.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/zip.d.ts +10 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/zipAll.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/operators/zipWith.d.ts +26 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduled/scheduleArray.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduled/scheduleAsyncIterable.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduled/scheduleIterable.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduled/scheduleObservable.d.ts +3 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduled/schedulePromise.d.ts +3 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduled/scheduleReadableStreamLike.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduled/scheduled.d.ts +15 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/Action.d.ts +30 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/AnimationFrameAction.d.ts +12 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/AsapAction.d.ts +12 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/AsapScheduler.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/AsyncAction.d.ts +24 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/AsyncScheduler.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/QueueAction.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/QueueScheduler.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts +48 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/animationFrame.d.ts +38 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/animationFrameProvider.d.ts +13 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/asap.d.ts +41 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/async.d.ts +53 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/dateTimestampProvider.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/immediateProvider.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/intervalProvider.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/performanceTimestampProvider.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/queue.d.ts +69 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/timeoutProvider.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/scheduler/timerHandle.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/internal/symbol/iterator.d.ts +3 -0
- package/dist/compiled/inquirer/rxjs/internal/symbol/observable.d.ts +8 -0
- package/dist/compiled/inquirer/rxjs/internal/testing/ColdObservable.d.ts +16 -0
- package/dist/compiled/inquirer/rxjs/internal/testing/HotObservable.d.ts +15 -0
- package/dist/compiled/inquirer/rxjs/internal/testing/SubscriptionLog.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/testing/SubscriptionLoggable.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/testing/TestMessage.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/testing/TestScheduler.d.ts +88 -0
- package/dist/compiled/inquirer/rxjs/internal/types.d.ts +307 -0
- package/dist/compiled/inquirer/rxjs/internal/util/ArgumentOutOfRangeError.d.ts +19 -0
- package/dist/compiled/inquirer/rxjs/internal/util/EmptyError.d.ts +21 -0
- package/dist/compiled/inquirer/rxjs/internal/util/Immediate.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/util/NotFoundError.d.ts +17 -0
- package/dist/compiled/inquirer/rxjs/internal/util/ObjectUnsubscribedError.d.ts +20 -0
- package/dist/compiled/inquirer/rxjs/internal/util/SequenceError.d.ts +17 -0
- package/dist/compiled/inquirer/rxjs/internal/util/UnsubscriptionError.d.ts +16 -0
- package/dist/compiled/inquirer/rxjs/internal/util/applyMixins.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/internal/util/args.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/util/argsArgArrayOrObject.d.ts +11 -0
- package/dist/compiled/inquirer/rxjs/internal/util/argsOrArgArray.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/util/arrRemove.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/util/createErrorClass.d.ts +11 -0
- package/dist/compiled/inquirer/rxjs/internal/util/createObject.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/internal/util/errorContext.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/util/executeSchedule.d.ts +5 -0
- package/dist/compiled/inquirer/rxjs/internal/util/identity.d.ts +44 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isArrayLike.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isAsyncIterable.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isDate.d.ts +9 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isFunction.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isInteropObservable.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isIterable.d.ts +3 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isObservable.d.ts +8 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isPromise.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isReadableStreamLike.d.ts +4 -0
- package/dist/compiled/inquirer/rxjs/internal/util/isScheduler.d.ts +3 -0
- package/dist/compiled/inquirer/rxjs/internal/util/lift.d.ts +15 -0
- package/dist/compiled/inquirer/rxjs/internal/util/mapOneOrManyArgs.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/util/noop.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/internal/util/not.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/internal/util/pipe.d.ts +14 -0
- package/dist/compiled/inquirer/rxjs/internal/util/reportUnhandledError.d.ts +11 -0
- package/dist/compiled/inquirer/rxjs/internal/util/subscribeToArray.d.ts +7 -0
- package/dist/compiled/inquirer/rxjs/internal/util/throwUnobservableError.d.ts +6 -0
- package/dist/compiled/inquirer/rxjs/internal/util/workarounds.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/operators/index.d.ts +114 -0
- package/dist/compiled/inquirer/rxjs/testing/index.d.ts +2 -0
- package/dist/compiled/inquirer/rxjs/webSocket/index.d.ts +3 -0
- package/dist/compiled/inquirer/types-license +21 -0
- package/dist/compiled/lodash/index.d.ts +1 -11
- package/dist/compiled/upath/upath.d.ts +2 -2
- package/dist/esm/cli/require.mjs +10 -1
- package/dist/esm/universal/index.mjs +0 -2
- package/dist/esm-node/cli/require.mjs +10 -1
- package/dist/esm-node/universal/index.mjs +0 -2
- package/dist/types/universal/index.d.ts +0 -2
- package/package.json +7 -6
- package/rslib.config.mts +2 -0
- package/dist/cjs/universal/backend-federation-contract/build-artifact.js +0 -185
- package/dist/cjs/universal/backend-federation-contract/constants.js +0 -92
- package/dist/cjs/universal/backend-federation-contract/delivery-unit.js +0 -130
- package/dist/cjs/universal/backend-federation-contract/index.js +0 -137
- package/dist/cjs/universal/backend-federation-contract/metadata.js +0 -133
- package/dist/cjs/universal/backend-federation-contract/types.js +0 -18
- package/dist/cjs/universal/backend-federation-contract/validation-core.js +0 -85
- package/dist/cjs/universal/surface-resolution/env-static-provider.js +0 -318
- package/dist/cjs/universal/surface-resolution/index.js +0 -69
- package/dist/cjs/universal/surface-resolution/surface-ref.js +0 -132
- package/dist/cjs/universal/surface-resolution/types.js +0 -18
- package/dist/cjs/universal/surface-resolution/validation.js +0 -202
- package/dist/esm/universal/backend-federation-contract/build-artifact.mjs +0 -135
- package/dist/esm/universal/backend-federation-contract/constants.mjs +0 -18
- package/dist/esm/universal/backend-federation-contract/delivery-unit.mjs +0 -74
- package/dist/esm/universal/backend-federation-contract/index.mjs +0 -5
- package/dist/esm/universal/backend-federation-contract/metadata.mjs +0 -80
- package/dist/esm/universal/backend-federation-contract/types.mjs +0 -0
- package/dist/esm/universal/backend-federation-contract/validation-core.mjs +0 -29
- package/dist/esm/universal/surface-resolution/env-static-provider.mjs +0 -274
- package/dist/esm/universal/surface-resolution/index.mjs +0 -3
- package/dist/esm/universal/surface-resolution/surface-ref.mjs +0 -88
- package/dist/esm/universal/surface-resolution/types.mjs +0 -0
- package/dist/esm/universal/surface-resolution/validation.mjs +0 -155
- package/dist/esm-node/universal/backend-federation-contract/build-artifact.mjs +0 -136
- package/dist/esm-node/universal/backend-federation-contract/constants.mjs +0 -19
- package/dist/esm-node/universal/backend-federation-contract/delivery-unit.mjs +0 -75
- package/dist/esm-node/universal/backend-federation-contract/index.mjs +0 -6
- package/dist/esm-node/universal/backend-federation-contract/metadata.mjs +0 -81
- package/dist/esm-node/universal/backend-federation-contract/types.mjs +0 -1
- package/dist/esm-node/universal/backend-federation-contract/validation-core.mjs +0 -30
- package/dist/esm-node/universal/surface-resolution/env-static-provider.mjs +0 -275
- package/dist/esm-node/universal/surface-resolution/index.mjs +0 -4
- package/dist/esm-node/universal/surface-resolution/surface-ref.mjs +0 -89
- package/dist/esm-node/universal/surface-resolution/types.mjs +0 -1
- package/dist/esm-node/universal/surface-resolution/validation.mjs +0 -156
- package/dist/types/universal/backend-federation-contract/build-artifact.d.ts +0 -9
- package/dist/types/universal/backend-federation-contract/constants.d.ts +0 -14
- package/dist/types/universal/backend-federation-contract/delivery-unit.d.ts +0 -9
- package/dist/types/universal/backend-federation-contract/index.d.ts +0 -7
- package/dist/types/universal/backend-federation-contract/metadata.d.ts +0 -7
- package/dist/types/universal/backend-federation-contract/types.d.ts +0 -60
- package/dist/types/universal/backend-federation-contract/validation-core.d.ts +0 -8
- package/dist/types/universal/surface-resolution/env-static-provider.d.ts +0 -107
- package/dist/types/universal/surface-resolution/index.d.ts +0 -4
- package/dist/types/universal/surface-resolution/surface-ref.d.ts +0 -72
- package/dist/types/universal/surface-resolution/types.d.ts +0 -102
- package/dist/types/universal/surface-resolution/validation.d.ts +0 -53
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __webpack_require__ = {};
|
|
3
|
-
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
-
var define = (defs, kind)=>{
|
|
6
|
-
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
[kind]: defs[key]
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
define(getters, "get");
|
|
12
|
-
define(values, "value");
|
|
13
|
-
};
|
|
14
|
-
})();
|
|
15
|
-
(()=>{
|
|
16
|
-
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
-
})();
|
|
18
|
-
(()=>{
|
|
19
|
-
__webpack_require__.r = (exports1)=>{
|
|
20
|
-
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
-
value: 'Module'
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
-
value: true
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
})();
|
|
28
|
-
var __webpack_exports__ = {};
|
|
29
|
-
__webpack_require__.r(__webpack_exports__);
|
|
30
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
-
createDiscoveryError: ()=>createDiscoveryError,
|
|
32
|
-
matchDeliveryUnitIdentity: ()=>matchDeliveryUnitIdentity,
|
|
33
|
-
selectResolvedSurface: ()=>selectResolvedSurface,
|
|
34
|
-
validateResolvedDeliveryUnit: ()=>validateResolvedDeliveryUnit
|
|
35
|
-
});
|
|
36
|
-
const external_surface_ref_js_namespaceObject = require("./surface-ref.js");
|
|
37
|
-
const SEGMENT_PATTERN = /^[A-Za-z0-9._-]+$/;
|
|
38
|
-
function createDiscoveryError(code, ref, message, details) {
|
|
39
|
-
const refString = 'string' == typeof ref ? ref : (0, external_surface_ref_js_namespaceObject.formatSurfaceRef)(ref);
|
|
40
|
-
return void 0 === details ? {
|
|
41
|
-
code,
|
|
42
|
-
ref: refString,
|
|
43
|
-
message
|
|
44
|
-
} : {
|
|
45
|
-
code,
|
|
46
|
-
ref: refString,
|
|
47
|
-
message,
|
|
48
|
-
details
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
function isNonEmptyString(value) {
|
|
52
|
-
return 'string' == typeof value && value.length > 0;
|
|
53
|
-
}
|
|
54
|
-
function isValidUnitId(unitId) {
|
|
55
|
-
return unitId.split('/').every((segment)=>SEGMENT_PATTERN.test(segment));
|
|
56
|
-
}
|
|
57
|
-
function isRecord(value) {
|
|
58
|
-
return 'object' == typeof value && null !== value && !Array.isArray(value);
|
|
59
|
-
}
|
|
60
|
-
const COMPATIBILITY_STATUSES = [
|
|
61
|
-
'compatible',
|
|
62
|
-
'incompatible',
|
|
63
|
-
'degraded'
|
|
64
|
-
];
|
|
65
|
-
const SURFACE_KINDS = [
|
|
66
|
-
'component',
|
|
67
|
-
'route',
|
|
68
|
-
'api',
|
|
69
|
-
'backend'
|
|
70
|
-
];
|
|
71
|
-
const LOCATION_PLATFORMS = [
|
|
72
|
-
'browser-mf-manifest',
|
|
73
|
-
'node-mf-manifest',
|
|
74
|
-
'http-api',
|
|
75
|
-
'cloudflare-service-binding'
|
|
76
|
-
];
|
|
77
|
-
const LOCATION_REQUIRED_FIELDS = {
|
|
78
|
-
'browser-mf-manifest': [
|
|
79
|
-
'manifestUrl'
|
|
80
|
-
],
|
|
81
|
-
'node-mf-manifest': [
|
|
82
|
-
'manifestRef'
|
|
83
|
-
],
|
|
84
|
-
'http-api': [
|
|
85
|
-
'baseUrl',
|
|
86
|
-
'prefix'
|
|
87
|
-
],
|
|
88
|
-
'cloudflare-service-binding': [
|
|
89
|
-
'serviceBinding'
|
|
90
|
-
]
|
|
91
|
-
};
|
|
92
|
-
function validateLocation(location, path, seenPlatforms, push) {
|
|
93
|
-
if (!isRecord(location)) return void push(path, 'must be an object');
|
|
94
|
-
const platform = location.platform;
|
|
95
|
-
if ('string' != typeof platform || !LOCATION_PLATFORMS.includes(platform)) return void push(`${path}.platform`, `must be one of ${LOCATION_PLATFORMS.join(', ')}`);
|
|
96
|
-
if (seenPlatforms.has(platform)) push(`${path}.platform`, `duplicate platform ${platform} within one surface`);
|
|
97
|
-
seenPlatforms.add(platform);
|
|
98
|
-
for (const field of LOCATION_REQUIRED_FIELDS[platform] ?? [])if (!isNonEmptyString(location[field])) push(`${path}.${field}`, 'must be a non-empty string');
|
|
99
|
-
if ('cloudflare-service-binding' === platform && void 0 !== location.dispatchNamespace && !isNonEmptyString(location.dispatchNamespace)) push(`${path}.dispatchNamespace`, 'must be a non-empty string when present');
|
|
100
|
-
}
|
|
101
|
-
function validateSurface(surface, path, seenSurfaceIds, push) {
|
|
102
|
-
if (!isRecord(surface)) return void push(path, 'must be an object');
|
|
103
|
-
if (isNonEmptyString(surface.surfaceId)) if (SEGMENT_PATTERN.test(surface.surfaceId)) if (seenSurfaceIds.has(surface.surfaceId)) push(`${path}.surfaceId`, 'must be unique within the record');
|
|
104
|
-
else seenSurfaceIds.add(surface.surfaceId);
|
|
105
|
-
else push(`${path}.surfaceId`, 'must match the SurfaceRef SurfaceId grammar');
|
|
106
|
-
else push(`${path}.surfaceId`, 'must be a non-empty string');
|
|
107
|
-
if ('string' != typeof surface.kind || !SURFACE_KINDS.includes(surface.kind)) push(`${path}.kind`, `must be one of ${SURFACE_KINDS.join(', ')}`);
|
|
108
|
-
if (void 0 !== surface.servedMajor && (!Number.isSafeInteger(surface.servedMajor) || surface.servedMajor < 1)) push(`${path}.servedMajor`, 'must be a positive safe integer when present');
|
|
109
|
-
if (!Array.isArray(surface.locations)) return void push(`${path}.locations`, 'must be an array of locations');
|
|
110
|
-
if (0 === surface.locations.length) push(`${path}.locations`, 'must contain at least one location (no partial records)');
|
|
111
|
-
const seenPlatforms = new Set();
|
|
112
|
-
surface.locations.forEach((location, locationIndex)=>{
|
|
113
|
-
validateLocation(location, `${path}.locations[${locationIndex}]`, seenPlatforms, push);
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
function validateResolvedDeliveryUnit(unit) {
|
|
117
|
-
const issues = [];
|
|
118
|
-
const push = (path, message)=>{
|
|
119
|
-
issues.push({
|
|
120
|
-
path,
|
|
121
|
-
message
|
|
122
|
-
});
|
|
123
|
-
};
|
|
124
|
-
if (!isRecord(unit)) {
|
|
125
|
-
push('', 'must be an object');
|
|
126
|
-
return {
|
|
127
|
-
ok: false,
|
|
128
|
-
issues
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
const raw = unit;
|
|
132
|
-
if (isNonEmptyString(raw.unitId)) {
|
|
133
|
-
if (!isValidUnitId(raw.unitId)) push('unitId', 'must match the SurfaceRef UnitId grammar');
|
|
134
|
-
} else push('unitId', 'must be a non-empty string');
|
|
135
|
-
if (!isNonEmptyString(raw.buildMarker)) push('buildMarker', 'must be a non-empty string');
|
|
136
|
-
if (!isNonEmptyString(raw.sourceRevision)) push('sourceRevision', 'must be a non-empty string');
|
|
137
|
-
if (!isNonEmptyString(raw.baselineCohortId)) push('baselineCohortId', 'must be a non-empty string');
|
|
138
|
-
const compatibility = raw.compatibility;
|
|
139
|
-
if (isRecord(compatibility)) {
|
|
140
|
-
if ('string' != typeof compatibility.status || !COMPATIBILITY_STATUSES.includes(compatibility.status)) push('compatibility.status', `must be one of ${COMPATIBILITY_STATUSES.join(', ')}`);
|
|
141
|
-
if (compatibility.baselineCohortId !== raw.baselineCohortId) push('compatibility.baselineCohortId', 'must equal the record-level baselineCohortId (one verdict per record)');
|
|
142
|
-
if (void 0 !== compatibility.reason && !isNonEmptyString(compatibility.reason)) push('compatibility.reason', 'must be a non-empty string when present');
|
|
143
|
-
} else push('compatibility', 'must be an object');
|
|
144
|
-
if (!Array.isArray(raw.surfaces)) {
|
|
145
|
-
push('surfaces', 'must be an array of surfaces');
|
|
146
|
-
return {
|
|
147
|
-
ok: false,
|
|
148
|
-
issues
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
if (0 === raw.surfaces.length) push('surfaces', 'must contain at least one surface');
|
|
152
|
-
const seenSurfaceIds = new Set();
|
|
153
|
-
raw.surfaces.forEach((surface, surfaceIndex)=>{
|
|
154
|
-
validateSurface(surface, `surfaces[${surfaceIndex}]`, seenSurfaceIds, push);
|
|
155
|
-
});
|
|
156
|
-
return {
|
|
157
|
-
ok: 0 === issues.length,
|
|
158
|
-
issues
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
function selectResolvedSurface(unit, ref) {
|
|
162
|
-
if (unit.unitId !== ref.unitId) return {
|
|
163
|
-
ok: false,
|
|
164
|
-
error: createDiscoveryError('unknown-unit', ref, `Resolved record is for unit ${unit.unitId}, not ${ref.unitId}.`, {
|
|
165
|
-
recordUnitId: unit.unitId
|
|
166
|
-
})
|
|
167
|
-
};
|
|
168
|
-
const surface = unit.surfaces.find((candidate)=>candidate.surfaceId === ref.surfaceId);
|
|
169
|
-
if (void 0 === surface) return {
|
|
170
|
-
ok: false,
|
|
171
|
-
error: createDiscoveryError('unknown-surface', ref, `Unit ${unit.unitId} (buildMarker ${unit.buildMarker}) does not publish surface ${ref.surfaceId}.`, {
|
|
172
|
-
availableSurfaces: unit.surfaces.map((entry)=>entry.surfaceId)
|
|
173
|
-
})
|
|
174
|
-
};
|
|
175
|
-
return {
|
|
176
|
-
ok: true,
|
|
177
|
-
surface
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
function matchDeliveryUnitIdentity(expected, unit, ref) {
|
|
181
|
-
if (expected.unitId === unit.unitId && expected.buildMarker === unit.buildMarker) return;
|
|
182
|
-
return createDiscoveryError('identity-mismatch', ref, `Delivery-unit identity mismatch: expected ${expected.unitId}@${expected.buildMarker}, resolved ${unit.unitId}@${unit.buildMarker}.`, {
|
|
183
|
-
expected,
|
|
184
|
-
resolved: {
|
|
185
|
-
unitId: unit.unitId,
|
|
186
|
-
buildMarker: unit.buildMarker
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
exports.createDiscoveryError = __webpack_exports__.createDiscoveryError;
|
|
191
|
-
exports.matchDeliveryUnitIdentity = __webpack_exports__.matchDeliveryUnitIdentity;
|
|
192
|
-
exports.selectResolvedSurface = __webpack_exports__.selectResolvedSurface;
|
|
193
|
-
exports.validateResolvedDeliveryUnit = __webpack_exports__.validateResolvedDeliveryUnit;
|
|
194
|
-
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
195
|
-
"createDiscoveryError",
|
|
196
|
-
"matchDeliveryUnitIdentity",
|
|
197
|
-
"selectResolvedSurface",
|
|
198
|
-
"validateResolvedDeliveryUnit"
|
|
199
|
-
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
200
|
-
Object.defineProperty(exports, '__esModule', {
|
|
201
|
-
value: true
|
|
202
|
-
});
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { DELIVERY_UNIT_IDENTITY_FIELDS, DELIVERY_UNIT_SCHEMA_VERSION } from "./constants.mjs";
|
|
2
|
-
import { deliveryUnitIdentityFieldValue, validateDeliveryUnitRecord } from "./delivery-unit.mjs";
|
|
3
|
-
import { addError, isRecord, nonEmptyString, recordField, validationResult } from "./validation-core.mjs";
|
|
4
|
-
const createUltramodernBuildArtifact = (record)=>{
|
|
5
|
-
const deliveryUnit = {
|
|
6
|
-
appId: record.appId,
|
|
7
|
-
build: record.buildMarker,
|
|
8
|
-
buildMarker: record.buildMarker,
|
|
9
|
-
deployProfile: record.deployProfile,
|
|
10
|
-
kind: record.kind,
|
|
11
|
-
packageName: record.packageName,
|
|
12
|
-
schemaVersion: record.schemaVersion,
|
|
13
|
-
sourceRevision: record.sourceRevision,
|
|
14
|
-
unitId: record.unitId,
|
|
15
|
-
version: record.version
|
|
16
|
-
};
|
|
17
|
-
const api = {
|
|
18
|
-
appId: deliveryUnit.appId,
|
|
19
|
-
build: deliveryUnit.build,
|
|
20
|
-
buildMarker: deliveryUnit.buildMarker,
|
|
21
|
-
deployProfile: deliveryUnit.deployProfile,
|
|
22
|
-
kind: deliveryUnit.kind,
|
|
23
|
-
packageName: deliveryUnit.packageName,
|
|
24
|
-
schemaVersion: deliveryUnit.schemaVersion,
|
|
25
|
-
sourceRevision: deliveryUnit.sourceRevision,
|
|
26
|
-
surface: 'api',
|
|
27
|
-
unitId: deliveryUnit.unitId,
|
|
28
|
-
version: deliveryUnit.version
|
|
29
|
-
};
|
|
30
|
-
const ui = {
|
|
31
|
-
appId: deliveryUnit.appId,
|
|
32
|
-
build: deliveryUnit.build,
|
|
33
|
-
buildMarker: deliveryUnit.buildMarker,
|
|
34
|
-
deployProfile: deliveryUnit.deployProfile,
|
|
35
|
-
kind: deliveryUnit.kind,
|
|
36
|
-
packageName: deliveryUnit.packageName,
|
|
37
|
-
schemaVersion: deliveryUnit.schemaVersion,
|
|
38
|
-
sourceRevision: deliveryUnit.sourceRevision,
|
|
39
|
-
surface: 'ui',
|
|
40
|
-
unitId: deliveryUnit.unitId,
|
|
41
|
-
version: deliveryUnit.version
|
|
42
|
-
};
|
|
43
|
-
return {
|
|
44
|
-
deliveryUnit,
|
|
45
|
-
kind: 'ultramodern-build-artifact',
|
|
46
|
-
schemaVersion: DELIVERY_UNIT_SCHEMA_VERSION,
|
|
47
|
-
surfaces: {
|
|
48
|
-
api,
|
|
49
|
-
ui
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
const validateUltramodernBuildArtifact = (value, path = 'artifact')=>{
|
|
54
|
-
const errors = [];
|
|
55
|
-
if (!isRecord(value)) {
|
|
56
|
-
addError(errors, path, 'must be an object.');
|
|
57
|
-
return validationResult(errors);
|
|
58
|
-
}
|
|
59
|
-
if (value.schemaVersion !== DELIVERY_UNIT_SCHEMA_VERSION) addError(errors, `${path}.schemaVersion`, `must be ${DELIVERY_UNIT_SCHEMA_VERSION}.`);
|
|
60
|
-
if ('ultramodern-build-artifact' !== value.kind) addError(errors, `${path}.kind`, 'must be "ultramodern-build-artifact".');
|
|
61
|
-
const deliveryUnit = value.deliveryUnit;
|
|
62
|
-
errors.push(...validateDeliveryUnitRecord(deliveryUnit, {
|
|
63
|
-
path: `${path}.deliveryUnit`,
|
|
64
|
-
allowBuildAlias: true
|
|
65
|
-
}).errors);
|
|
66
|
-
if (isRecord(deliveryUnit)) {
|
|
67
|
-
const build = nonEmptyString(deliveryUnit.build);
|
|
68
|
-
const buildMarker = nonEmptyString(deliveryUnit.buildMarker);
|
|
69
|
-
if (build) {
|
|
70
|
-
if (buildMarker && build !== buildMarker) addError(errors, `${path}.deliveryUnit.build`, 'must match deliveryUnit.buildMarker.');
|
|
71
|
-
} else addError(errors, `${path}.deliveryUnit.build`, 'must be a non-empty string.');
|
|
72
|
-
}
|
|
73
|
-
const surfaces = recordField(value, 'surfaces');
|
|
74
|
-
if (!surfaces) {
|
|
75
|
-
addError(errors, `${path}.surfaces`, 'must be an object.');
|
|
76
|
-
return validationResult(errors);
|
|
77
|
-
}
|
|
78
|
-
for (const surface of [
|
|
79
|
-
'ui',
|
|
80
|
-
'api'
|
|
81
|
-
]){
|
|
82
|
-
const marker = surfaces[surface];
|
|
83
|
-
const markerPath = `${path}.surfaces.${surface}`;
|
|
84
|
-
errors.push(...validateDeliveryUnitRecord(marker, {
|
|
85
|
-
path: markerPath,
|
|
86
|
-
allowBuildAlias: true
|
|
87
|
-
}).errors);
|
|
88
|
-
if (!isRecord(marker)) continue;
|
|
89
|
-
const markerBuild = nonEmptyString(marker.build);
|
|
90
|
-
const markerBuildMarker = nonEmptyString(marker.buildMarker);
|
|
91
|
-
if (markerBuild) {
|
|
92
|
-
if (markerBuildMarker && markerBuild !== markerBuildMarker) addError(errors, `${markerPath}.build`, 'must match buildMarker.');
|
|
93
|
-
} else addError(errors, `${markerPath}.build`, 'must be non-empty string.');
|
|
94
|
-
if (marker.surface !== surface) addError(errors, `${markerPath}.surface`, `must be "${surface}".`);
|
|
95
|
-
for (const field of DELIVERY_UNIT_IDENTITY_FIELDS){
|
|
96
|
-
const deliveryUnitValue = deliveryUnitIdentityFieldValue(deliveryUnit, field, {
|
|
97
|
-
allowBuildAlias: true
|
|
98
|
-
});
|
|
99
|
-
const markerValue = deliveryUnitIdentityFieldValue(marker, field, {
|
|
100
|
-
allowBuildAlias: true
|
|
101
|
-
});
|
|
102
|
-
if (void 0 !== deliveryUnitValue && void 0 !== markerValue && deliveryUnitValue !== markerValue) addError(errors, `${markerPath}.${field}`, `must match ${path}.deliveryUnit.${field}.`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return validationResult(errors);
|
|
106
|
-
};
|
|
107
|
-
const isUltramodernBuildArtifact = (value)=>validateUltramodernBuildArtifact(value).ok;
|
|
108
|
-
const stampUltramodernBuildArtifactIdentity = (artifact, identity)=>({
|
|
109
|
-
...artifact,
|
|
110
|
-
deliveryUnit: {
|
|
111
|
-
...artifact.deliveryUnit,
|
|
112
|
-
build: identity.buildMarker,
|
|
113
|
-
buildMarker: identity.buildMarker,
|
|
114
|
-
sourceRevision: identity.sourceRevision
|
|
115
|
-
},
|
|
116
|
-
surfaces: {
|
|
117
|
-
ui: {
|
|
118
|
-
...artifact.surfaces.ui,
|
|
119
|
-
build: identity.buildMarker,
|
|
120
|
-
buildMarker: identity.buildMarker,
|
|
121
|
-
sourceRevision: identity.sourceRevision
|
|
122
|
-
},
|
|
123
|
-
api: {
|
|
124
|
-
...artifact.surfaces.api,
|
|
125
|
-
build: identity.buildMarker,
|
|
126
|
-
buildMarker: identity.buildMarker,
|
|
127
|
-
sourceRevision: identity.sourceRevision
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
const stampUltramodernBuildArtifactSourceRevision = (artifact, sourceRevision)=>stampUltramodernBuildArtifactIdentity(artifact, {
|
|
132
|
-
buildMarker: artifact.deliveryUnit.buildMarker,
|
|
133
|
-
sourceRevision
|
|
134
|
-
});
|
|
135
|
-
export { createUltramodernBuildArtifact, isUltramodernBuildArtifact, stampUltramodernBuildArtifactIdentity, stampUltramodernBuildArtifactSourceRevision, validateUltramodernBuildArtifact };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
const BACKEND_FEDERATION_EFFECT_EXPOSE = './effect-api';
|
|
2
|
-
const BACKEND_FEDERATION_MANIFEST_FILE = 'backend-mf-manifest.json';
|
|
3
|
-
const BACKEND_FEDERATION_REMOTE_ENTRY_FILE = 'backendRemoteEntry.cjs';
|
|
4
|
-
const BACKEND_FEDERATION_CONTRACT_VERSION = 'microvertical-server-effect-v1';
|
|
5
|
-
const BACKEND_FEDERATION_NODE_ADAPTER_VERSION = 'backend-mf-effect-v1';
|
|
6
|
-
const DELIVERY_UNIT_SCHEMA_VERSION = 1;
|
|
7
|
-
const DELIVERY_UNIT_KIND = 'microvertical-delivery-unit';
|
|
8
|
-
const DELIVERY_UNIT_DEPLOY_PROFILE = 'cloudflare-ssr-mf-effect-v1';
|
|
9
|
-
const DELIVERY_UNIT_IDENTITY_FIELDS = [
|
|
10
|
-
'unitId',
|
|
11
|
-
'buildMarker',
|
|
12
|
-
'sourceRevision'
|
|
13
|
-
];
|
|
14
|
-
const ULTRAMODERN_BUILD_ARTIFACT_FILE = 'ultramodern-build.json';
|
|
15
|
-
const ULTRAMODERN_BUILD_ARTIFACT_PATH = `shared/${ULTRAMODERN_BUILD_ARTIFACT_FILE}`;
|
|
16
|
-
const ULTRAMODERN_BUILD_MODULE_FILE = 'ultramodern-build.ts';
|
|
17
|
-
const ULTRAMODERN_BUILD_MODULE_PATH = `shared/${ULTRAMODERN_BUILD_MODULE_FILE}`;
|
|
18
|
-
export { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_MANIFEST_FILE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION, BACKEND_FEDERATION_REMOTE_ENTRY_FILE, DELIVERY_UNIT_DEPLOY_PROFILE, DELIVERY_UNIT_IDENTITY_FIELDS, DELIVERY_UNIT_KIND, DELIVERY_UNIT_SCHEMA_VERSION, ULTRAMODERN_BUILD_ARTIFACT_FILE, ULTRAMODERN_BUILD_ARTIFACT_PATH, ULTRAMODERN_BUILD_MODULE_FILE, ULTRAMODERN_BUILD_MODULE_PATH };
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { DELIVERY_UNIT_DEPLOY_PROFILE, DELIVERY_UNIT_IDENTITY_FIELDS, DELIVERY_UNIT_KIND, DELIVERY_UNIT_SCHEMA_VERSION } from "./constants.mjs";
|
|
2
|
-
import { addError, isRecord, nonEmptyString, validationResult } from "./validation-core.mjs";
|
|
3
|
-
const deliveryUnitIdentityFieldValue = (value, field, options = {})=>{
|
|
4
|
-
if (!isRecord(value)) return;
|
|
5
|
-
if ('buildMarker' === field && options.allowBuildAlias) return nonEmptyString(value.buildMarker) ?? nonEmptyString(value.build);
|
|
6
|
-
return nonEmptyString(value[field]);
|
|
7
|
-
};
|
|
8
|
-
const validateDeliveryUnitIdentity = (value, options = {})=>{
|
|
9
|
-
const path = options.path ?? 'deliveryUnit';
|
|
10
|
-
const errors = [];
|
|
11
|
-
if (!isRecord(value)) {
|
|
12
|
-
addError(errors, path, 'must be an object.');
|
|
13
|
-
return validationResult(errors);
|
|
14
|
-
}
|
|
15
|
-
for (const field of DELIVERY_UNIT_IDENTITY_FIELDS)if (!deliveryUnitIdentityFieldValue(value, field, options)) addError(errors, `${path}.${field}`, 'must be a non-empty string.');
|
|
16
|
-
return validationResult(errors);
|
|
17
|
-
};
|
|
18
|
-
const validateDeliveryUnitContractBlock = (value, options = {})=>{
|
|
19
|
-
const path = options.path ?? 'deliveryUnit';
|
|
20
|
-
const errors = [
|
|
21
|
-
...validateDeliveryUnitIdentity(value, options).errors
|
|
22
|
-
];
|
|
23
|
-
if (!isRecord(value)) return validationResult(errors);
|
|
24
|
-
if (value.schemaVersion !== DELIVERY_UNIT_SCHEMA_VERSION) addError(errors, `${path}.schemaVersion`, `must be ${DELIVERY_UNIT_SCHEMA_VERSION}.`);
|
|
25
|
-
if (value.kind !== DELIVERY_UNIT_KIND) addError(errors, `${path}.kind`, `must be "${DELIVERY_UNIT_KIND}".`);
|
|
26
|
-
if (!nonEmptyString(value.packageName)) addError(errors, `${path}.packageName`, 'must be a non-empty string.');
|
|
27
|
-
if (!nonEmptyString(value.version)) addError(errors, `${path}.version`, 'must be a non-empty string.');
|
|
28
|
-
return validationResult(errors);
|
|
29
|
-
};
|
|
30
|
-
const validateDeliveryUnitRecord = (value, options = {})=>{
|
|
31
|
-
const path = options.path ?? 'deliveryUnit';
|
|
32
|
-
const errors = [
|
|
33
|
-
...validateDeliveryUnitContractBlock(value, {
|
|
34
|
-
...options,
|
|
35
|
-
path
|
|
36
|
-
}).errors
|
|
37
|
-
];
|
|
38
|
-
if (!isRecord(value)) return validationResult(errors);
|
|
39
|
-
if (!nonEmptyString(value.appId)) addError(errors, `${path}.appId`, 'must be a non-empty string.');
|
|
40
|
-
if (value.deployProfile !== DELIVERY_UNIT_DEPLOY_PROFILE) addError(errors, `${path}.deployProfile`, `must be "${DELIVERY_UNIT_DEPLOY_PROFILE}".`);
|
|
41
|
-
return validationResult(errors);
|
|
42
|
-
};
|
|
43
|
-
const validateDeliveryUnitBoundaryIdentity = (value, path)=>{
|
|
44
|
-
const errors = [];
|
|
45
|
-
if (!isRecord(value)) {
|
|
46
|
-
addError(errors, path, 'must be an object.');
|
|
47
|
-
return errors;
|
|
48
|
-
}
|
|
49
|
-
for (const field of DELIVERY_UNIT_IDENTITY_FIELDS)if (!deliveryUnitIdentityFieldValue(value, field)) addError(errors, `${path}.${field}`, 'must be a non-empty string.');
|
|
50
|
-
return errors;
|
|
51
|
-
};
|
|
52
|
-
const deliveryUnitContractBlock = (record)=>({
|
|
53
|
-
schemaVersion: record.schemaVersion,
|
|
54
|
-
kind: record.kind,
|
|
55
|
-
unitId: record.unitId,
|
|
56
|
-
packageName: record.packageName,
|
|
57
|
-
version: record.version,
|
|
58
|
-
buildMarker: record.buildMarker,
|
|
59
|
-
sourceRevision: record.sourceRevision
|
|
60
|
-
});
|
|
61
|
-
const toDeliveryUnitIdentity = (value)=>{
|
|
62
|
-
const unitId = deliveryUnitIdentityFieldValue(value, 'unitId');
|
|
63
|
-
const buildMarker = deliveryUnitIdentityFieldValue(value, 'buildMarker', {
|
|
64
|
-
allowBuildAlias: true
|
|
65
|
-
});
|
|
66
|
-
const sourceRevision = deliveryUnitIdentityFieldValue(value, 'sourceRevision');
|
|
67
|
-
if (!unitId || !buildMarker || !sourceRevision) return;
|
|
68
|
-
return {
|
|
69
|
-
unitId,
|
|
70
|
-
buildMarker,
|
|
71
|
-
sourceRevision
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
export { deliveryUnitContractBlock, deliveryUnitIdentityFieldValue, toDeliveryUnitIdentity, validateDeliveryUnitBoundaryIdentity, validateDeliveryUnitContractBlock, validateDeliveryUnitIdentity, validateDeliveryUnitRecord };
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { createUltramodernBuildArtifact, isUltramodernBuildArtifact, stampUltramodernBuildArtifactIdentity, stampUltramodernBuildArtifactSourceRevision, validateUltramodernBuildArtifact } from "./build-artifact.mjs";
|
|
2
|
-
export { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_MANIFEST_FILE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION, BACKEND_FEDERATION_REMOTE_ENTRY_FILE, DELIVERY_UNIT_DEPLOY_PROFILE, DELIVERY_UNIT_IDENTITY_FIELDS, DELIVERY_UNIT_KIND, DELIVERY_UNIT_SCHEMA_VERSION, ULTRAMODERN_BUILD_ARTIFACT_FILE, ULTRAMODERN_BUILD_ARTIFACT_PATH, ULTRAMODERN_BUILD_MODULE_FILE, ULTRAMODERN_BUILD_MODULE_PATH } from "./constants.mjs";
|
|
3
|
-
export { deliveryUnitContractBlock, deliveryUnitIdentityFieldValue, toDeliveryUnitIdentity, validateDeliveryUnitContractBlock, validateDeliveryUnitIdentity, validateDeliveryUnitRecord } from "./delivery-unit.mjs";
|
|
4
|
-
export { backendFederationExposeNames, backendFederationMetadata, backendFederationVersionBoundary, toBackendFederationExposeNames, validateBackendFederationManifest, validateBackendFederationMetadata } from "./metadata.mjs";
|
|
5
|
-
export { formatBackendFederationValidationErrors, nonEmptyString } from "./validation-core.mjs";
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION, DELIVERY_UNIT_IDENTITY_FIELDS, DELIVERY_UNIT_SCHEMA_VERSION } from "./constants.mjs";
|
|
2
|
-
import { deliveryUnitIdentityFieldValue, validateDeliveryUnitBoundaryIdentity, validateDeliveryUnitContractBlock } from "./delivery-unit.mjs";
|
|
3
|
-
import { addError, isRecord, nonEmptyString, recordField, validateVersionField, validationResult } from "./validation-core.mjs";
|
|
4
|
-
const toBackendFederationExposeNames = (value)=>{
|
|
5
|
-
const names = [];
|
|
6
|
-
if (Array.isArray(value)) for (const expose of value){
|
|
7
|
-
const name = nonEmptyString(expose) ?? (isRecord(expose) ? nonEmptyString(expose.name) : void 0);
|
|
8
|
-
if (name) names.push(name);
|
|
9
|
-
}
|
|
10
|
-
else if (isRecord(value)) names.push(...Object.keys(value).filter((name)=>name.length > 0));
|
|
11
|
-
return Array.from(new Set(names));
|
|
12
|
-
};
|
|
13
|
-
const backendFederationExposeNames = (value)=>{
|
|
14
|
-
if (!isRecord(value)) return [];
|
|
15
|
-
const exposes = toBackendFederationExposeNames(value.exposes);
|
|
16
|
-
const expose = nonEmptyString(value.expose);
|
|
17
|
-
return Array.from(new Set([
|
|
18
|
-
...exposes,
|
|
19
|
-
...expose ? [
|
|
20
|
-
expose
|
|
21
|
-
] : []
|
|
22
|
-
]));
|
|
23
|
-
};
|
|
24
|
-
const backendFederationMetadata = (value)=>isRecord(value) ? recordField(value, 'backendFederation') : void 0;
|
|
25
|
-
const backendFederationVersionBoundary = (value)=>recordField(backendFederationMetadata(value), 'versionBoundary');
|
|
26
|
-
const validateBackendFederationMetadata = (value, options = {})=>{
|
|
27
|
-
const path = options.path ?? 'backendFederation';
|
|
28
|
-
const errors = [];
|
|
29
|
-
if (!isRecord(value)) {
|
|
30
|
-
addError(errors, path, 'must be an object.');
|
|
31
|
-
return validationResult(errors);
|
|
32
|
-
}
|
|
33
|
-
if (options.requireEffectRuntime && 'effect' !== value.runtimeFramework) addError(errors, `${path}.runtimeFramework`, 'must be "effect".');
|
|
34
|
-
if (options.requireEffectRuntime && true !== value.strictEffectApproach) addError(errors, `${path}.strictEffectApproach`, 'must be true.');
|
|
35
|
-
validateVersionField(errors, value, 'contractVersion', options.expectedContractVersion ?? BACKEND_FEDERATION_CONTRACT_VERSION, path, options.requireVersionFields ?? false);
|
|
36
|
-
validateVersionField(errors, value, 'nodeAdapterVersion', options.expectedNodeAdapterVersion ?? BACKEND_FEDERATION_NODE_ADAPTER_VERSION, path, options.requireVersionFields ?? false);
|
|
37
|
-
if (options.requireEffectExpose && !backendFederationExposeNames(value).includes(BACKEND_FEDERATION_EFFECT_EXPOSE)) addError(errors, `${path}.expose`, `must include "${BACKEND_FEDERATION_EFFECT_EXPOSE}".`);
|
|
38
|
-
if (options.validateDeliveryUnit ?? true) {
|
|
39
|
-
const deliveryUnit = recordField(value, 'deliveryUnit');
|
|
40
|
-
if (deliveryUnit) errors.push(...validateDeliveryUnitContractBlock(deliveryUnit, {
|
|
41
|
-
path: `${path}.deliveryUnit`
|
|
42
|
-
}).errors);
|
|
43
|
-
const versionBoundary = recordField(value, 'versionBoundary');
|
|
44
|
-
const versionBoundaryDeliveryUnit = recordField(versionBoundary, 'deliveryUnit');
|
|
45
|
-
if (versionBoundaryDeliveryUnit) errors.push(...validateDeliveryUnitBoundaryIdentity(versionBoundaryDeliveryUnit, `${path}.versionBoundary.deliveryUnit`));
|
|
46
|
-
if (deliveryUnit && versionBoundaryDeliveryUnit) for (const field of DELIVERY_UNIT_IDENTITY_FIELDS){
|
|
47
|
-
const deliveryUnitValue = deliveryUnitIdentityFieldValue(deliveryUnit, field);
|
|
48
|
-
const versionBoundaryDeliveryUnitValue = deliveryUnitIdentityFieldValue(versionBoundaryDeliveryUnit, field);
|
|
49
|
-
if (deliveryUnitValue && versionBoundaryDeliveryUnitValue && deliveryUnitValue !== versionBoundaryDeliveryUnitValue) addError(errors, `${path}.versionBoundary.deliveryUnit.${field}`, `must match ${path}.deliveryUnit.${field}.`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return validationResult(errors);
|
|
53
|
-
};
|
|
54
|
-
const validateBackendFederationManifest = (value, options = {})=>{
|
|
55
|
-
const path = options.path ?? 'manifest';
|
|
56
|
-
const errors = [];
|
|
57
|
-
if (!isRecord(value)) {
|
|
58
|
-
addError(errors, path, 'must be an object.');
|
|
59
|
-
return validationResult(errors);
|
|
60
|
-
}
|
|
61
|
-
if (void 0 !== value.schemaVersion && value.schemaVersion !== DELIVERY_UNIT_SCHEMA_VERSION) addError(errors, `${path}.schemaVersion`, `must be ${DELIVERY_UNIT_SCHEMA_VERSION}.`);
|
|
62
|
-
const metadata = backendFederationMetadata(value);
|
|
63
|
-
if (metadata) errors.push(...validateBackendFederationMetadata(metadata, {
|
|
64
|
-
...options,
|
|
65
|
-
path: `${path}.backendFederation`,
|
|
66
|
-
requireEffectExpose: false
|
|
67
|
-
}).errors);
|
|
68
|
-
else if (options.requireBackendFederation ?? true) addError(errors, `${path}.backendFederation`, 'must be an object.');
|
|
69
|
-
if (options.requireEffectExpose) {
|
|
70
|
-
const topLevelExposeNames = toBackendFederationExposeNames(value.exposes);
|
|
71
|
-
const metadataExposeNames = backendFederationExposeNames(metadata);
|
|
72
|
-
const exposeNames = new Set([
|
|
73
|
-
...topLevelExposeNames,
|
|
74
|
-
...metadataExposeNames
|
|
75
|
-
]);
|
|
76
|
-
if (!exposeNames.has(BACKEND_FEDERATION_EFFECT_EXPOSE)) addError(errors, `${path}.exposes`, `must include "${BACKEND_FEDERATION_EFFECT_EXPOSE}".`);
|
|
77
|
-
}
|
|
78
|
-
return validationResult(errors);
|
|
79
|
-
};
|
|
80
|
-
export { backendFederationExposeNames, backendFederationMetadata, backendFederationVersionBoundary, toBackendFederationExposeNames, validateBackendFederationManifest, validateBackendFederationMetadata };
|
|
File without changes
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
const isRecord = (value)=>'object' == typeof value && null !== value && !Array.isArray(value);
|
|
2
|
-
const nonEmptyString = (value)=>'string' == typeof value && value.trim().length > 0 ? value : void 0;
|
|
3
|
-
const validationResult = (errors)=>({
|
|
4
|
-
ok: 0 === errors.length,
|
|
5
|
-
errors
|
|
6
|
-
});
|
|
7
|
-
const addError = (errors, path, message)=>{
|
|
8
|
-
errors.push({
|
|
9
|
-
path,
|
|
10
|
-
message
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
const recordField = (value, field)=>{
|
|
14
|
-
const fieldValue = value?.[field];
|
|
15
|
-
return isRecord(fieldValue) ? fieldValue : void 0;
|
|
16
|
-
};
|
|
17
|
-
const formatBackendFederationValidationErrors = (errors)=>errors.map((error)=>`${error.path}: ${error.message}`).join('; ');
|
|
18
|
-
const validateVersionField = (errors, record, field, expected, path, required)=>{
|
|
19
|
-
const compatibility = recordField(record, 'compatibility');
|
|
20
|
-
const executionSurfaces = recordField(record, 'executionSurfaces');
|
|
21
|
-
const nodeSurface = recordField(executionSurfaces, 'node');
|
|
22
|
-
const actual = nonEmptyString(record[field]) ?? nonEmptyString(compatibility?.[field]) ?? ('nodeAdapterVersion' === field ? nonEmptyString(nodeSurface?.adapterVersion) : void 0);
|
|
23
|
-
if (!actual) {
|
|
24
|
-
if (required) addError(errors, `${path}.${field}`, 'must be a non-empty string.');
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (false !== expected && actual !== expected) addError(errors, `${path}.${field}`, `must be "${expected}".`);
|
|
28
|
-
};
|
|
29
|
-
export { addError, formatBackendFederationValidationErrors, isRecord, nonEmptyString, recordField, validateVersionField, validationResult };
|