@nuasite/cms-sidecar 0.43.0-beta.1
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/cli.js +25032 -0
- package/dist/types/cli.d.ts +3 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +77 -0
- package/dist/types/concurrency.d.ts +26 -0
- package/dist/types/concurrency.d.ts.map +1 -0
- package/dist/types/concurrency.js +47 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/media-from-env.d.ts +32 -0
- package/dist/types/media-from-env.d.ts.map +1 -0
- package/dist/types/media-from-env.js +57 -0
- package/dist/types/server.d.ts +22 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/types/server.js +598 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/types/types.d.ts +99 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +10 -0
- package/package.json +57 -0
- package/src/cli.ts +105 -0
- package/src/concurrency.ts +51 -0
- package/src/index.ts +24 -0
- package/src/media-from-env.ts +96 -0
- package/src/server.ts +650 -0
- package/src/tsconfig.json +10 -0
- package/src/types.ts +141 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../cms-types/dist/types/index.d.ts","../../../cms-core/dist/types/fs/types.d.ts","../../../cms-core/dist/types/content-config-ast.d.ts","../../../cms-core/dist/types/collection-scanner.d.ts","../../../cms-core/dist/types/component-registry.d.ts","../../../cms-core/dist/types/handlers/entry-ops.d.ts","../../../cms-core/dist/types/core.d.ts","../../../cms-core/dist/types/fs/glob.d.ts","../../../cms-core/dist/types/fs/node-fs.d.ts","../../../cms-core/dist/types/media/contember.d.ts","../../../cms-core/dist/types/media/local.d.ts","../../../cms-core/dist/types/media/project-images.d.ts","../../../cms-core/dist/types/media/s3.d.ts","../../../cms-core/dist/types/media/index.d.ts","../../../cms-core/dist/types/shared.d.ts","../../../cms-core/dist/types/index.d.ts","../../src/media-from-env.ts","../../src/concurrency.ts","../../src/types.ts","../../src/server.ts","../../src/cli.ts","../../src/index.ts","../../../../node_modules/undici-types/utility.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../../node_modules/@types/node/globals.typedarray.d.ts","../../../../node_modules/@types/node/buffer.buffer.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../../node_modules/@types/node/web-globals/blob.d.ts","../../../../node_modules/@types/node/web-globals/console.d.ts","../../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../../node_modules/@types/node/web-globals/events.d.ts","../../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../../node_modules/@types/node/web-globals/performance.d.ts","../../../../node_modules/@types/node/web-globals/storage.d.ts","../../../../node_modules/@types/node/web-globals/streams.d.ts","../../../../node_modules/@types/node/web-globals/timers.d.ts","../../../../node_modules/@types/node/web-globals/url.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/inspector.generated.d.ts","../../../../node_modules/@types/node/inspector/promises.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/path/posix.d.ts","../../../../node_modules/@types/node/path/win32.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/quic.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/sea.d.ts","../../../../node_modules/@types/node/sqlite.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/test/reporters.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/util/types.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client-stats.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/h2c-client.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-call-history.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/snapshot-agent.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../node_modules/undici-types/retry-handler.d.ts","../../../../node_modules/undici-types/retry-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/cache-interceptor.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/util.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/eventsource.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/bun-types/globals.d.ts","../../../../node_modules/bun-types/s3.d.ts","../../../../node_modules/bun-types/fetch.d.ts","../../../../node_modules/bun-types/jsx.d.ts","../../../../node_modules/bun-types/bun.d.ts","../../../../node_modules/bun-types/extensions.d.ts","../../../../node_modules/bun-types/devserver.d.ts","../../../../node_modules/bun-types/ffi.d.ts","../../../../node_modules/bun-types/html-rewriter.d.ts","../../../../node_modules/bun-types/jsc.d.ts","../../../../node_modules/bun-types/sqlite.d.ts","../../../../node_modules/bun-types/vendor/expect-type/utils.d.ts","../../../../node_modules/bun-types/vendor/expect-type/overloads.d.ts","../../../../node_modules/bun-types/vendor/expect-type/branding.d.ts","../../../../node_modules/bun-types/vendor/expect-type/messages.d.ts","../../../../node_modules/bun-types/vendor/expect-type/index.d.ts","../../../../node_modules/bun-types/test.d.ts","../../../../node_modules/bun-types/wasm.d.ts","../../../../node_modules/bun-types/overrides.d.ts","../../../../node_modules/bun-types/deprecated.d.ts","../../../../node_modules/bun-types/redis.d.ts","../../../../node_modules/bun-types/shell.d.ts","../../../../node_modules/bun-types/serve.d.ts","../../../../node_modules/bun-types/sql.d.ts","../../../../node_modules/bun-types/security.d.ts","../../../../node_modules/bun-types/bundle.d.ts","../../../../node_modules/bun-types/bun.ns.d.ts","../../../../node_modules/bun-types/index.d.ts","../../../../node_modules/@types/bun/index.d.ts"],"fileIdsList":[[115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255,258],[115,133,134,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,135,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,175,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,137,142,144,147,148,151,153,154,155,157,167,172,184,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,137,138,144,147,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,139,144,148,151,153,154,155,167,185,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,140,141,144,148,151,153,154,155,158,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,141,144,148,151,153,154,155,167,172,181,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,142,144,147,148,151,153,154,155,157,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,135,136,143,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,145,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,146,147,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,135,136,144,147,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,147,148,149,151,153,154,155,167,172,184,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,147,148,149,151,153,154,155,167,172,175,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,147,148,150,151,153,154,155,157,167,172,184,230,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,147,148,150,151,153,154,155,157,167,172,181,184,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,150,151,152,153,154,155,167,172,181,184,231,232,233,235,237,248,249,250,251,252,253,254,255],[113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,147,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,156,167,184,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,147,148,151,153,154,155,157,167,172,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,158,167,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,159,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,147,148,151,153,154,155,162,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,164,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,165,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,141,144,148,151,153,154,155,157,167,175,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,147,148,151,153,154,155,167,168,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,169,185,188,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,147,148,151,153,154,155,167,172,174,175,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,173,175,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,175,185,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,176,231,232,233,235,237,248,250,251,252,253,254,255],[115,133,136,144,148,151,153,154,155,167,172,178,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,172,177,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,147,148,151,153,154,155,167,179,180,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,179,180,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,141,144,148,151,153,154,155,157,167,172,181,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,182,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,157,167,183,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,150,151,153,154,155,165,167,184,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,185,186,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,141,144,148,151,153,154,155,167,186,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,172,187,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,156,167,188,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,189,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,139,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,141,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,185,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,230,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,184,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,190,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,162,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,175,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,180,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,147,148,149,151,153,154,155,162,167,172,175,184,187,188,190,230,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,172,191,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,141,144,148,150,151,153,154,155,167,181,185,190,230,231,232,233,234,237,238,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,230,231,232,235,237,248,250,251,252,253,254,255],[115,136,141,144,148,151,153,154,155,162,167,172,175,181,185,190,230,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,192,231,232,233,235,236,237,238,239,240,241,247,248,249,250,251,252,253,254,255,256,257],[115,136,139,141,144,148,149,151,153,154,155,158,167,175,181,184,191,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,241,248,250,251,252,253,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,246,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,242,243,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,242,243,244,245,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,242,244,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,242,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,231,232,233,235,237,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,184,196,199,202,203,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,172,184,199,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,184,199,203,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,172,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,193,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,197,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,184,195,196,199,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,157,167,181,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,192,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,192,193,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,157,167,184,195,199,231,232,233,235,237,248,249,250,251,252,253,254,255],[110,111,112,115,136,144,147,148,151,153,154,155,167,172,184,194,198,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,199,207,215,231,232,233,235,237,248,250,251,252,253,254,255],[111,115,136,144,148,151,153,154,155,167,197,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,199,224,225,231,232,233,235,237,248,250,251,252,253,254,255],[111,115,136,144,148,151,153,154,155,167,175,184,192,194,199,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,192,193,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,199,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,184,195,199,231,232,233,235,237,248,249,250,251,252,253,254,255],[110,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,193,194,195,197,198,199,200,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,225,226,227,228,229,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,199,217,220,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,199,207,208,209,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,197,199,208,210,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,198,231,232,233,235,237,248,250,251,252,253,254,255],[111,115,136,144,148,151,153,154,155,167,193,199,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,199,203,208,210,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,203,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,184,197,199,202,231,232,233,235,237,248,249,250,251,252,253,254,255],[111,115,136,144,148,151,153,154,155,167,195,199,207,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,172,231,232,233,235,237,248,249,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,199,217,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,210,231,232,233,235,237,248,250,251,252,253,254,255],[115,136,144,148,151,153,154,155,167,175,190,192,193,199,224,231,232,233,235,237,248,249,250,251,252,253,254,255],[88,89,90,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[88,89,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[88,89,93,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[89,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[89,90,91,92,93,94,95,96,101,102,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[88,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[97,98,99,100,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[103,104,107,115,136,144,148,151,153,154,155,156,159,167,231,232,233,235,237,248,250,251,252,253,254,255],[103,115,136,141,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[88,104,105,106,107,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[88,103,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255],[88,103,105,106,115,136,144,148,151,153,154,155,167,231,232,233,235,237,248,250,251,252,253,254,255]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},"c43c2a0107a2a099fe50bcc754e90b50aa6b265ce57e464a2489798b38e4dc53","7bd157dc3cb0560ad3da1eff836bdf57f8673ea13ecaf76c4e21014ab4b5bfab","11d6871e925f881687e46390c94042b36197a482873102168d56bb242ab40769","25d2d1e54280a6368b2c97a74ca84e182b97f785e366bef20e0377d3fb7b7e7f","67536990d5f9bbc8d49deecab2641f4894ba0e2473a1a4d4093e7385cb0c2d40","f193412220285b9fdbf3c6c782f31d3ec55f47c405f35d4696a4aa61e752082f","82b824c97973b766fe332012a4be2217adf30ed565ac8ae6d002488073cb2f8b","d21f580695c0a4cbb72253566d62138c4200979e6626a2aee55c3b42cc329ca1","a0d9e7a2bafe05c9093ed14015568ac77876bddc2402e12c743a0977bf69fe2b","ae5365ad469ff5dcb122f38a6708c476c5cee7186e6ad1bd65b96ebbed6aea7b","28afbe077e06a55b9e11d7226c3ea9eb40c86c7c4c722022cd761dfacc3db41e","64c26854d41ec9979a1e0c70df33da69f09cedcb06e099cbaca319d93a62a66d","5fc97b32f7bb6b15188cc00d8156b7b9b6aafaebbc0ae7a736c8a2e700c834a2","72da5eeb656bb87cbacbfc47d9bead02e7c460ca99a052c85c8b777c6e7b7540","59a3f439230f107eaf9673c7b5f12c2ae023ad430816f03900ca7c62a12cfa64","ebe07557cb9d4c454cf860e08462f2e17a7592b9a967919a5aebd2ac9f7c7666",{"version":"65c0d9f18056f495d7a1492f6eff2166f869b794c12c8eb5ada9ebe3420fb43c","signature":"f1a3b0236682a5591b6f81fc7493b03ebb22725bab65dfa5b0bcb3eadef76471"},{"version":"2b8d28eaaacdbb7ba6277e6eb8975cd4e1731df4e1e365b726e15ce80fe7f906","signature":"e4c2698be23e79e33356ff6fcbc3c37fe10d7b77d5defd91988b548ed1feed9f"},{"version":"b823baaf392843c4463b846f17b8f922891d091ced317d3fccdff96b22c991a8","signature":"c350b232820c1d1423779049f837c6f8bd0ec759544cef17d53d7581d4134032"},{"version":"4cc1874631ad07731fe8cdb7e81f82295f2e4e75b175e76e9d46822765f849a7","signature":"010488dbca00d68f11ffa518d5792b5d576c52ddc5f40cddc8dae120acdbcd99"},{"version":"05e8bcfcea5b60501a73a19ec8ab71dcdd4e726ca78fa0200ba581f195c4a1dc","signature":"f3b2989724efbf7b154b10283b87780d53ee348055b20c76f86634ee512a2f93"},{"version":"743048b5cc415c8a22c6f2e63807b7ec40103aea883140336e6e4ba40cfb9cae","signature":"71ffb0d8208abd4319b0a0f0a1a0dc8def4f5e0fa484230ee964c38d601dcb85"},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"dd0109710de4cd93e245121ab86d8c66d20f3ead80074b68e9c3e349c4f53342","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"435b3711465425770ed2ee2f1cf00ce071835265e0851a7dc4600ab4b007550e","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf83d90d5faf27b994c2e79af02e32b555dbfe42cd9bd1571445f2168d1f4e2d","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"0e28335ac43f4d94dd2fe6d9e6fa6813570640839addd10d309d7985f33a6308","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"836b1d038d400811f265b04c758e1ef0fb64d915499a4ef590acc54761875075","affectsGlobalScope":true,"impliedFormat":1},{"version":"961cf7535b9c521cd634055b1b6ac49b94d055f0b573ce7fdc4cfaddab080b7c","impliedFormat":1},{"version":"806a8c6daae69e5695e7200d9eca6bc1e4298f38d90edda3ce67a794da31a24f","impliedFormat":1},{"version":"ac86245c2f31335bfd52cbe7fc760f9fc4f165387875869a478a6d9616a95e72","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"9d96a7ce809392ff2cb99691acf7c62e632fe56897356ba013b689277aca3619","impliedFormat":1},{"version":"42a05d8f239f74587d4926aba8cc54792eed8e8a442c7adc9b38b516642aadfe","impliedFormat":1},{"version":"5d21b58d60383cc6ab9ad3d3e265d7d25af24a2c9b506247e0e50b0a884920be","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"ae6757460f37078884b1571a3de3ebaf724d827d7e1d53626c02b3c2a408ac63","affectsGlobalScope":true,"impliedFormat":1},{"version":"27c0a08e343c6a0ae17bd13ba6d44a9758236dc904cd5e4b43456996cd51f520","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"6f80e51ba310608cd71bcdc09a171d7bbfb3b316048601c9ec215ce16a8dcfbc","impliedFormat":1},{"version":"a3bdc774995d56caaac759a424831091bb22450ca3590f34dae53d98323be191","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"af4ab0aa8908fc9a655bb833d3bc28e117c4f0e1038c5a891546158beb25accb","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"2ca2bca6845a7234eff5c3d192727a068fca72ac565f3c819c6b04ccc83dadc0","impliedFormat":1},{"version":"ed4f674fc8c0c993cc7e145069ac44129e03519b910c62be206a0cc777bdc60b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"17d06eb5709839c7ce719f0c38ada6f308fb433f2cd6d8c87b35856e07400950","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"6c00f77f0335ae0c18bd45a6c7c9c97c9625fb7e5dd6d5936eadf70718bce52e","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"14d4bd22d1b05824971b98f7e91b2484c90f1a684805c330476641417c3d9735","impliedFormat":1},{"version":"586eaf66bace2e731cee0ddfbfac326ad74a83c1acfeac4afb2db85ad23226c7","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"d1a14d87cedcf4f0b8173720d6eb29cc02878bf2b6dabf9c9d9cee742f275368","impliedFormat":1},{"version":"e60efae9fe48a2955f66bf4cbf0f082516185b877daf50d9c5e2a009660a7714","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"cd9189eacf0f9143b8830e9d6769335aa6d902c04195f04145bcbf19e7f26fcb","impliedFormat":1},{"version":"e1cb68f3ef3a8dd7b2a9dfb3de482ed6c0f1586ba0db4e7d73c1d2147b6ffc51","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"6e215dac8b234548d91b718f9c07d5b09473cd5cabb29053fcd8be0af190acb6","affectsGlobalScope":true,"impliedFormat":1},{"version":"0d759cc99e081cacd0352467a0c24e979a6ef748329aa6ddea2d789664580201","impliedFormat":1},{"version":"f3d3e999a323c85c8a63ce90c6e4624ff89fe137a0e2508fddc08e0556d08abf","impliedFormat":1},{"version":"314607151cc203975193d5f44765f38597be3b0a43f466d3c1bfb17176dd3bd3","impliedFormat":1},{"version":"5beb6b7c030620fbc8cb339028593127dd0cf02bdc079fd94baf6d794a83e3d8","impliedFormat":1},{"version":"f40aad6c91017f20fc542f5701ec41e0f6aeba63c61bbf7aa13266ec29a50a3b","impliedFormat":1},{"version":"fc9e630f9302d0414ccd6c8ed2706659cff5ae454a56560c6122fa4a3fac5bbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa0a44af370a2d7c1aac988a17836f57910a6c52689f52f5b3ac1d4c6cadcb23","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"b5a907deaba678e5083ccdd7cc063a3a8c3413c688098f6de29d6e4cefabc85f","impliedFormat":1},{"version":"ffd344731abee98a0a85a735b19052817afd2156d97d1410819cd9bcd1bd575e","impliedFormat":1},{"version":"475e07c959f4766f90678425b45cf58ac9b95e50de78367759c1e5118e85d5c3","impliedFormat":1},{"version":"a524ae401b30a1b0814f1bbcdae459da97fa30ae6e22476e506bb3f82e3d9456","impliedFormat":1},{"version":"7375e803c033425e27cb33bae21917c106cb37b508fd242cccd978ef2ee244c7","impliedFormat":1},{"version":"eeb890c7e9218afdad2f30ad8a76b0b0b5161d11ce13b6723879de408e6bc47a","impliedFormat":1},{"version":"998da6b85ebace9ebea67040dd1a640f0156064e3d28dbe9bd9c0229b6f72347","impliedFormat":1},{"version":"dfbcc400ac6d20b941ccc7bd9031b9d9f54e4d495dd79117334e771959df4805","affectsGlobalScope":true,"impliedFormat":1},{"version":"944d65951e33a13068be5cd525ec42bf9bc180263ba0b723fa236970aa21f611","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b386c7b6ce6f369d18246904fa5eac73566167c88fb6508feba74fa7501a384","affectsGlobalScope":true,"impliedFormat":1},{"version":"592a109e67b907ffd2078cd6f727d5c326e06eaada169eef8fb18546d96f6797","impliedFormat":1},{"version":"f2eb1e35cae499d57e34b4ac3650248776fe7dbd9a3ec34b23754cfd8c22fceb","impliedFormat":1},{"version":"fbed43a6fcf5b675f5ec6fc960328114777862b58a2bb19c109e8fc1906caa09","impliedFormat":1},{"version":"9e98bd421e71f70c75dae7029e316745c89fa7b8bc8b43a91adf9b82c206099c","impliedFormat":1},{"version":"fc803e6b01f4365f71f51f9ce13f71396766848204d4f7a1b2b6154434b84b15","impliedFormat":1},{"version":"f3afcc0d6f77a9ca2d2c5c92eb4b89cd38d6fa4bdc1410d626bd701760a977ec","impliedFormat":1},{"version":"c8109fe76467db6e801d0edfbc50e6826934686467c9418ce6b246232ce7f109","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6f803e4e45915d58e721c04ec17830c6e6678d1e3e00e28edf3d52720909cea","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1}],"root":[[104,109]],"options":{"allowImportingTsExtensions":true,"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"jsx":4,"module":200,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","skipLibCheck":true,"strict":true,"target":99,"verbatimModuleSyntax":true},"referencedMap":[[259,1],[133,2],[134,2],[135,3],[115,4],[136,5],[137,6],[138,7],[113,8],[139,9],[140,10],[141,11],[142,12],[143,13],[144,14],[145,14],[146,15],[147,16],[148,17],[149,18],[116,8],[114,8],[150,19],[151,20],[152,21],[192,22],[153,23],[154,24],[155,23],[156,25],[157,26],[158,27],[159,28],[160,28],[161,28],[162,29],[163,30],[164,31],[165,32],[166,33],[167,34],[168,34],[169,35],[170,8],[171,8],[172,36],[173,37],[174,36],[175,38],[176,39],[177,40],[178,41],[179,42],[180,43],[181,44],[182,45],[183,46],[184,47],[185,48],[186,49],[187,50],[188,51],[189,52],[117,23],[118,8],[119,53],[120,54],[121,8],[122,55],[123,8],[124,56],[125,57],[126,58],[127,58],[128,59],[129,8],[130,60],[131,61],[132,57],[190,62],[191,63],[235,64],[257,8],[256,8],[250,65],[237,66],[236,8],[233,67],[238,8],[231,68],[239,8],[258,69],[240,8],[234,8],[249,70],[251,71],[232,72],[255,73],[253,74],[252,75],[254,76],[241,8],[247,77],[244,78],[246,79],[245,80],[243,81],[242,8],[248,82],[86,8],[87,8],[15,8],[14,8],[2,8],[16,8],[17,8],[18,8],[19,8],[20,8],[21,8],[22,8],[23,8],[3,8],[24,8],[25,8],[4,8],[26,8],[30,8],[27,8],[28,8],[29,8],[31,8],[32,8],[33,8],[5,8],[34,8],[35,8],[36,8],[37,8],[6,8],[41,8],[38,8],[39,8],[40,8],[42,8],[7,8],[43,8],[48,8],[49,8],[44,8],[45,8],[46,8],[47,8],[8,8],[53,8],[50,8],[51,8],[52,8],[54,8],[9,8],[55,8],[56,8],[57,8],[59,8],[58,8],[60,8],[61,8],[10,8],[62,8],[63,8],[64,8],[11,8],[65,8],[66,8],[67,8],[68,8],[69,8],[70,8],[12,8],[71,8],[72,8],[73,8],[74,8],[75,8],[1,8],[76,8],[77,8],[13,8],[78,8],[79,8],[80,8],[81,8],[82,8],[83,8],[84,8],[85,8],[207,83],[219,84],[205,85],[220,86],[229,87],[196,88],[197,89],[195,90],[228,91],[223,92],[227,93],[199,94],[216,95],[198,96],[226,97],[193,98],[194,99],[200,100],[201,8],[206,101],[204,100],[111,102],[230,103],[221,104],[210,105],[209,100],[211,106],[214,107],[208,108],[212,109],[224,91],[202,110],[203,111],[215,112],[112,113],[218,114],[217,100],[213,115],[222,8],[110,8],[225,116],[91,117],[92,118],[90,118],[94,119],[95,8],[96,120],[89,8],[93,117],[103,121],[97,122],[101,123],[98,122],[99,118],[100,122],[102,8],[108,124],[105,125],[109,126],[104,127],[107,128],[106,122],[88,8]],"latestChangedDtsFile":"./index.d.ts","version":"6.0.2"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { CollectionDefinition, CollectionEntryInfo } from '@nuasite/cms-types';
|
|
2
|
+
/**
|
|
3
|
+
* Wire-level types specific to the `/cms/v1` HTTP contract. The structural model
|
|
4
|
+
* (collections, entries, mutations, pages, redirects, media) is reused 1:1 from
|
|
5
|
+
* `@nuasite/cms-types`; this module only adds the HTTP envelope (errors, the
|
|
6
|
+
* conflict response, the project model and the request body shapes).
|
|
7
|
+
*/
|
|
8
|
+
/** Stable error codes exposed by the sidecar, each mapped to an HTTP status. */
|
|
9
|
+
export type ErrorCode = 'not_found' | 'conflict' | 'validation' | 'parse_error' | 'io_error' | 'unsupported' | 'unauthorized';
|
|
10
|
+
/** JSON body returned for every non-2xx response that is not a conflict. */
|
|
11
|
+
export interface ApiError {
|
|
12
|
+
error: string;
|
|
13
|
+
code: ErrorCode;
|
|
14
|
+
sourcePath?: string;
|
|
15
|
+
}
|
|
16
|
+
/** HTTP status for each error code. */
|
|
17
|
+
export declare const STATUS_BY_CODE: Record<ErrorCode, number>;
|
|
18
|
+
/**
|
|
19
|
+
* Returned with `409` when a `PATCH`'s `baseHash` no longer matches the file on
|
|
20
|
+
* disk (an agent or a human wrote in between). Carries the current server
|
|
21
|
+
* version so the client can offer "use server" vs "use ours".
|
|
22
|
+
*/
|
|
23
|
+
export interface ConflictResponse {
|
|
24
|
+
code: 'conflict';
|
|
25
|
+
serverHash: string;
|
|
26
|
+
serverFrontmatter: Record<string, unknown>;
|
|
27
|
+
serverBody?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface UpdateEntryBody {
|
|
30
|
+
/** Frontmatter keys to merge (not replace) into the entry. */
|
|
31
|
+
frontmatter?: Record<string, unknown>;
|
|
32
|
+
body?: string;
|
|
33
|
+
/** Hash of the entry source the client edited; `409` on drift. */
|
|
34
|
+
baseHash?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface CreateEntryBody {
|
|
37
|
+
slug: string;
|
|
38
|
+
frontmatter: Record<string, unknown>;
|
|
39
|
+
body?: string;
|
|
40
|
+
/** File extension override for data collections (e.g. 'json', 'yaml'). */
|
|
41
|
+
fileExtension?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface RenameEntryBody {
|
|
44
|
+
to: string;
|
|
45
|
+
}
|
|
46
|
+
export interface AddArrayItemBody {
|
|
47
|
+
field: string;
|
|
48
|
+
value: unknown;
|
|
49
|
+
index?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface RemoveArrayItemBody {
|
|
52
|
+
field: string;
|
|
53
|
+
index: number;
|
|
54
|
+
}
|
|
55
|
+
export interface CreateFolderBody {
|
|
56
|
+
folder: string;
|
|
57
|
+
}
|
|
58
|
+
/** Parsed `GET …/entries` query. */
|
|
59
|
+
export interface EntriesQuery {
|
|
60
|
+
/** "slug,title" | "*" ; absent = light header (slug/title/draft/pathname/sourcePath), never the body. */
|
|
61
|
+
fields?: string;
|
|
62
|
+
draft: 'true' | 'false' | 'all';
|
|
63
|
+
limit?: number;
|
|
64
|
+
cursor?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface Capabilities {
|
|
67
|
+
coreVersion: string;
|
|
68
|
+
features: string[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A static page route discovered under `src/pages`.
|
|
72
|
+
*
|
|
73
|
+
* cms-core exposes no page-listing capability (only create/duplicate/delete +
|
|
74
|
+
* layouts), and the rich `PageEntry` with an SEO `title` lives in the render
|
|
75
|
+
* manifest, which is render-time and intentionally out of the headless scope.
|
|
76
|
+
* The sidecar therefore derives the list from the `CmsFileSystem` port: a pure
|
|
77
|
+
* `src/pages` walk yielding `pathname` only. `title` is omitted (it would need
|
|
78
|
+
* the manifest). Mirrors the shape of `@nuasite/cms`'s `PageEntry`.
|
|
79
|
+
*/
|
|
80
|
+
export interface PageEntry {
|
|
81
|
+
/** Page URL pathname (e.g. '/', '/about'). */
|
|
82
|
+
pathname: string;
|
|
83
|
+
/** Page title — only populated by the render manifest (out of headless scope). */
|
|
84
|
+
title?: string;
|
|
85
|
+
}
|
|
86
|
+
export interface ProjectModel {
|
|
87
|
+
/** Collection definitions with their `entries[]` info (no full bodies). */
|
|
88
|
+
collections: CollectionDefinition[];
|
|
89
|
+
/** Static page routes discovered under `src/pages` (pathname-only). */
|
|
90
|
+
pages: PageEntry[];
|
|
91
|
+
capabilities: Capabilities;
|
|
92
|
+
}
|
|
93
|
+
/** Sparse list response: the projected entries plus an opaque continuation cursor. */
|
|
94
|
+
export interface EntriesListResult {
|
|
95
|
+
entries: CollectionEntryInfo[];
|
|
96
|
+
cursor?: string;
|
|
97
|
+
hasMore: boolean;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEnF;;;;;GAKG;AAMH,gFAAgF;AAChF,MAAM,MAAM,SAAS,GAClB,WAAW,GACX,UAAU,GACV,YAAY,GACZ,aAAa,GACb,UAAU,GACV,aAAa,GACb,cAAc,CAAA;AAEjB,4EAA4E;AAC5E,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,uCAAuC;AACvC,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAQpD,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD,MAAM,WAAW,eAAe;IAC/B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAA;CACd;AAED,oCAAoC;AACpC,MAAM,WAAW,YAAY;IAC5B,yGAAyG;IACzG,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAMD,MAAM,WAAW,YAAY;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACzB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAA;IAChB,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC5B,2EAA2E;IAC3E,WAAW,EAAE,oBAAoB,EAAE,CAAA;IACnC,uEAAuE;IACvE,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;CAC1B;AAED,sFAAsF;AACtF,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CAChB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nuasite/cms-sidecar",
|
|
3
|
+
"description": "Thin standalone Bun HTTP server exposing @nuasite/cms-core over /cms/v1 — runs next to the dev server, decoupled from the site's version.",
|
|
4
|
+
"files": [
|
|
5
|
+
"dist/**",
|
|
6
|
+
"src/**",
|
|
7
|
+
"README.md",
|
|
8
|
+
"package.json"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://github.com/nuasite/nuasite/blob/main/packages/cms-sidecar/README.md",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/nuasite/nuasite.git",
|
|
14
|
+
"directory": "packages/cms-sidecar"
|
|
15
|
+
},
|
|
16
|
+
"license": "Apache-2.0",
|
|
17
|
+
"version": "0.43.0-beta.1",
|
|
18
|
+
"module": "src/index.ts",
|
|
19
|
+
"types": "src/index.ts",
|
|
20
|
+
"type": "module",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./src/index.ts",
|
|
24
|
+
"import": "./src/index.ts",
|
|
25
|
+
"default": "./src/index.ts"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"bin": {
|
|
29
|
+
"cms-sidecar": "src/cli.ts"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@nuasite/cms-core": "0.43.0-beta.1",
|
|
33
|
+
"@nuasite/cms-types": "0.43.0-beta.1"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/bun": "1.3.11"
|
|
37
|
+
},
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"typescript": "^6.0.2",
|
|
40
|
+
"@aws-sdk/client-s3": "^3.0.0"
|
|
41
|
+
},
|
|
42
|
+
"peerDependenciesMeta": {
|
|
43
|
+
"@aws-sdk/client-s3": {
|
|
44
|
+
"optional": true
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "bun build --target=bun --outdir=dist src/cli.ts",
|
|
49
|
+
"prepack": "bun run ../../scripts/workspace-deps/resolve-deps.ts"
|
|
50
|
+
},
|
|
51
|
+
"keywords": [
|
|
52
|
+
"cms",
|
|
53
|
+
"nuasite",
|
|
54
|
+
"headless",
|
|
55
|
+
"sidecar"
|
|
56
|
+
]
|
|
57
|
+
}
|
package/src/cli.ts
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import { createCmsCore, createNodeFs } from '@nuasite/cms-core'
|
|
3
|
+
import fs from 'node:fs'
|
|
4
|
+
import { createRequire } from 'node:module'
|
|
5
|
+
import path from 'node:path'
|
|
6
|
+
import { mediaFromEnv } from './media-from-env'
|
|
7
|
+
import { createServer } from './server'
|
|
8
|
+
|
|
9
|
+
interface ServeArgs {
|
|
10
|
+
port: number
|
|
11
|
+
root: string
|
|
12
|
+
contentDir?: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the installed `@nuasite/cms-core` version for the capabilities/health
|
|
17
|
+
* payload: locate cms-core's entry module, walk up to its `package.json`, read
|
|
18
|
+
* `version`. Avoids a deep `package.json` import. Falls back to '0.0.0'.
|
|
19
|
+
*/
|
|
20
|
+
function resolveCoreVersion(): string {
|
|
21
|
+
try {
|
|
22
|
+
const require = createRequire(import.meta.url)
|
|
23
|
+
let dir = path.dirname(require.resolve('@nuasite/cms-core'))
|
|
24
|
+
for (;;) {
|
|
25
|
+
const pkgPath = path.join(dir, 'package.json')
|
|
26
|
+
if (fs.existsSync(pkgPath)) {
|
|
27
|
+
const parsed: unknown = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))
|
|
28
|
+
if (
|
|
29
|
+
parsed && typeof parsed === 'object' && 'name' in parsed && parsed.name === '@nuasite/cms-core' && 'version' in parsed
|
|
30
|
+
&& typeof parsed.version === 'string'
|
|
31
|
+
) {
|
|
32
|
+
return parsed.version
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const parent = path.dirname(dir)
|
|
36
|
+
if (parent === dir) break
|
|
37
|
+
dir = parent
|
|
38
|
+
}
|
|
39
|
+
} catch {
|
|
40
|
+
// fall through
|
|
41
|
+
}
|
|
42
|
+
return '0.0.0'
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Read `--<name> <value>` (or `--<name>=<value>`) from argv. */
|
|
46
|
+
function readFlag(args: string[], name: string): string | undefined {
|
|
47
|
+
const eq = `--${name}=`
|
|
48
|
+
for (let i = 0; i < args.length; i++) {
|
|
49
|
+
const arg = args[i]!
|
|
50
|
+
if (arg === `--${name}`) return args[i + 1]
|
|
51
|
+
if (arg.startsWith(eq)) return arg.slice(eq.length)
|
|
52
|
+
}
|
|
53
|
+
return undefined
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function parseServeArgs(args: string[]): ServeArgs {
|
|
57
|
+
const rawPort = readFlag(args, 'port')
|
|
58
|
+
const port = rawPort !== undefined ? Number.parseInt(rawPort, 10) : Number.NaN
|
|
59
|
+
if (!Number.isInteger(port) || port < 0 || port > 65535) {
|
|
60
|
+
throw new Error('serve requires a valid --port <0-65535>')
|
|
61
|
+
}
|
|
62
|
+
const rawRoot = readFlag(args, 'root')
|
|
63
|
+
const root = path.resolve(rawRoot ?? process.cwd())
|
|
64
|
+
const contentDir = readFlag(args, 'content-dir')
|
|
65
|
+
return { port, root, contentDir }
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function printUsage(): void {
|
|
69
|
+
console.log('Usage: cms-sidecar serve --port <port> [--root <dir>] [--content-dir <dir>]')
|
|
70
|
+
console.log('')
|
|
71
|
+
console.log('Runs a thin HTTP server exposing @nuasite/cms-core over /cms/v1.')
|
|
72
|
+
console.log('Media adapter is selected by CMS_MEDIA_ADAPTER (contember|s3|local|none).')
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function serve(args: string[]): void {
|
|
76
|
+
const { port, root, contentDir } = parseServeArgs(args)
|
|
77
|
+
const fs = createNodeFs(root)
|
|
78
|
+
const media = mediaFromEnv()
|
|
79
|
+
const core = createCmsCore(fs, { contentDir, media: media.adapter })
|
|
80
|
+
const coreVersion = resolveCoreVersion()
|
|
81
|
+
const server = createServer({ core, fs, root, coreVersion, contentDir })
|
|
82
|
+
|
|
83
|
+
const bunServer = Bun.serve({ port, fetch: server.fetch })
|
|
84
|
+
// Ready line — the contract with the F2 service runtime (`readyPattern`).
|
|
85
|
+
// Must match /cms-sidecar listening on .*:\d+/.
|
|
86
|
+
console.log(`cms-sidecar listening on :${bunServer.port}`)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const [, , command, ...args] = process.argv
|
|
90
|
+
|
|
91
|
+
switch (command) {
|
|
92
|
+
case 'serve':
|
|
93
|
+
serve(args)
|
|
94
|
+
break
|
|
95
|
+
case 'help':
|
|
96
|
+
case '--help':
|
|
97
|
+
case '-h':
|
|
98
|
+
case undefined:
|
|
99
|
+
printUsage()
|
|
100
|
+
break
|
|
101
|
+
default:
|
|
102
|
+
console.error(`Unknown command: ${command}`)
|
|
103
|
+
printUsage()
|
|
104
|
+
process.exit(1)
|
|
105
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { CmsFileSystem } from '@nuasite/cms-core'
|
|
2
|
+
import { createHash } from 'node:crypto'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Hashing + per-file serialization for the sidecar layer.
|
|
6
|
+
*
|
|
7
|
+
* cms-core stays hash-agnostic: the optimistic-concurrency `baseHash`/`sourceHash`
|
|
8
|
+
* comparison and the in-process mutex live here. Hashing reads the on-disk source
|
|
9
|
+
* through the same `CmsFileSystem` port cms-core uses, so the hash reflects exactly
|
|
10
|
+
* the bytes a subsequent `getEntry` would parse.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/** Stable content hash of a UTF-8 string: `sha256:<hex>`. */
|
|
14
|
+
export function hashContent(content: string): string {
|
|
15
|
+
return `sha256:${createHash('sha256').update(content, 'utf-8').digest('hex')}`
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Hash the current on-disk source at `sourcePath`, or `null` when the file does
|
|
20
|
+
* not exist. Reads via the port so the hash matches the bytes cms-core sees.
|
|
21
|
+
*/
|
|
22
|
+
export async function hashSource(fs: CmsFileSystem, sourcePath: string): Promise<string | null> {
|
|
23
|
+
if (!(await fs.exists(sourcePath))) return null
|
|
24
|
+
const raw = await fs.readFile(sourcePath)
|
|
25
|
+
return hashContent(raw)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Serializes async work keyed by a string (a source path). Concurrent mutations
|
|
30
|
+
* of the same entry run one-after-another; different entries run in parallel.
|
|
31
|
+
* The chain self-cleans: a key's tail is dropped once its last waiter settles.
|
|
32
|
+
*/
|
|
33
|
+
export class KeyedMutex {
|
|
34
|
+
private readonly tails = new Map<string, Promise<unknown>>()
|
|
35
|
+
|
|
36
|
+
async runExclusive<T>(key: string, task: () => Promise<T>): Promise<T> {
|
|
37
|
+
const previous = this.tails.get(key) ?? Promise.resolve()
|
|
38
|
+
// Chain after the previous holder, swallowing its result/rejection so one
|
|
39
|
+
// failed mutation never poisons the next waiter on the same key.
|
|
40
|
+
const run = previous.then(() => task(), () => task())
|
|
41
|
+
this.tails.set(key, run)
|
|
42
|
+
try {
|
|
43
|
+
return await run
|
|
44
|
+
} finally {
|
|
45
|
+
// Drop the entry only if no later waiter has chained onto it.
|
|
46
|
+
if (this.tails.get(key) === run) {
|
|
47
|
+
this.tails.delete(key)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Re-export the wire contract's runtime field-type guard so consumers (the F2 BFF)
|
|
2
|
+
// can validate field types against the exact contract the sidecar serves — the
|
|
3
|
+
// same surfacing `@nuasite/cms` does. Keeps `@nuasite/cms-types` a real runtime dep.
|
|
4
|
+
export { FIELD_TYPES, isFieldType } from '@nuasite/cms-types'
|
|
5
|
+
export { hashContent, hashSource, KeyedMutex } from './concurrency'
|
|
6
|
+
export { type MediaAdapterKind, mediaFromEnv, type MediaFromEnvResult } from './media-from-env'
|
|
7
|
+
export { type CmsSidecarServer, createServer, type CreateServerOptions, SIDECAR_FEATURES } from './server'
|
|
8
|
+
export type {
|
|
9
|
+
AddArrayItemBody,
|
|
10
|
+
ApiError,
|
|
11
|
+
Capabilities,
|
|
12
|
+
ConflictResponse,
|
|
13
|
+
CreateEntryBody,
|
|
14
|
+
CreateFolderBody,
|
|
15
|
+
EntriesListResult,
|
|
16
|
+
EntriesQuery,
|
|
17
|
+
ErrorCode,
|
|
18
|
+
PageEntry,
|
|
19
|
+
ProjectModel,
|
|
20
|
+
RemoveArrayItemBody,
|
|
21
|
+
RenameEntryBody,
|
|
22
|
+
UpdateEntryBody,
|
|
23
|
+
} from './types'
|
|
24
|
+
export { STATUS_BY_CODE } from './types'
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { createContemberStorageAdapter, createLocalStorageAdapter, createS3StorageAdapter } from '@nuasite/cms-core'
|
|
2
|
+
import type { MediaStorageAdapter } from '@nuasite/cms-types'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Pick the media storage adapter from the environment.
|
|
6
|
+
*
|
|
7
|
+
* `CMS_MEDIA_ADAPTER` selects the backend:
|
|
8
|
+
* - `contember` (default): proxies to the Contember worker's CMS media API.
|
|
9
|
+
* NUA_SITE_API_BASE_URL — worker API base, e.g. https://api.example.com
|
|
10
|
+
* NUA_SITE_PROJECT_SLUG — project slug used in the media API path
|
|
11
|
+
* NUA_SITE_SESSION_TOKEN — session token (NUA_SITE_SESSION_TOKEN cookie value)
|
|
12
|
+
* - `s3`: an S3-compatible bucket (needs the optional `@aws-sdk/client-s3` peer).
|
|
13
|
+
* CMS_MEDIA_S3_BUCKET — bucket name (required)
|
|
14
|
+
* CMS_MEDIA_S3_REGION — region (required)
|
|
15
|
+
* CMS_MEDIA_S3_ACCESS_KEY_ID — access key (optional; falls back to the SDK chain)
|
|
16
|
+
* CMS_MEDIA_S3_SECRET_ACCESS_KEY — secret key (optional)
|
|
17
|
+
* CMS_MEDIA_S3_ENDPOINT — custom endpoint (optional, e.g. R2)
|
|
18
|
+
* CMS_MEDIA_S3_CDN_PREFIX — public CDN URL prefix (optional)
|
|
19
|
+
* CMS_MEDIA_S3_PREFIX — key prefix (optional, default 'uploads')
|
|
20
|
+
* - `local`: filesystem under `public/uploads`.
|
|
21
|
+
* CMS_MEDIA_LOCAL_DIR — storage dir (optional, default 'public/uploads')
|
|
22
|
+
* CMS_MEDIA_LOCAL_URL_PREFIX — served URL prefix (optional, default '/uploads')
|
|
23
|
+
* - `none`: no media adapter (media routes answer 501 unsupported).
|
|
24
|
+
*
|
|
25
|
+
* Reads are confined to this module; the adapters themselves never touch
|
|
26
|
+
* `process.env`. Returns `undefined` when no adapter is configured.
|
|
27
|
+
*/
|
|
28
|
+
export type MediaAdapterKind = 'contember' | 's3' | 'local' | 'none'
|
|
29
|
+
|
|
30
|
+
const VALID_KINDS: readonly MediaAdapterKind[] = ['contember', 's3', 'local', 'none']
|
|
31
|
+
|
|
32
|
+
function isMediaAdapterKind(value: string): value is MediaAdapterKind {
|
|
33
|
+
return (VALID_KINDS as readonly string[]).includes(value)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface MediaFromEnvResult {
|
|
37
|
+
kind: MediaAdapterKind
|
|
38
|
+
adapter?: MediaStorageAdapter
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function mediaFromEnv(env: NodeJS.ProcessEnv = process.env): MediaFromEnvResult {
|
|
42
|
+
const requested = env.CMS_MEDIA_ADAPTER?.trim().toLowerCase()
|
|
43
|
+
const kind: MediaAdapterKind = requested && isMediaAdapterKind(requested) ? requested : 'contember'
|
|
44
|
+
|
|
45
|
+
switch (kind) {
|
|
46
|
+
case 'none':
|
|
47
|
+
return { kind }
|
|
48
|
+
|
|
49
|
+
case 'local':
|
|
50
|
+
return {
|
|
51
|
+
kind,
|
|
52
|
+
adapter: createLocalStorageAdapter({
|
|
53
|
+
dir: env.CMS_MEDIA_LOCAL_DIR,
|
|
54
|
+
urlPrefix: env.CMS_MEDIA_LOCAL_URL_PREFIX,
|
|
55
|
+
}),
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
case 's3': {
|
|
59
|
+
const bucket = env.CMS_MEDIA_S3_BUCKET
|
|
60
|
+
const region = env.CMS_MEDIA_S3_REGION
|
|
61
|
+
if (!bucket || !region) {
|
|
62
|
+
throw new Error('CMS_MEDIA_ADAPTER=s3 requires CMS_MEDIA_S3_BUCKET and CMS_MEDIA_S3_REGION')
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
kind,
|
|
66
|
+
adapter: createS3StorageAdapter({
|
|
67
|
+
bucket,
|
|
68
|
+
region,
|
|
69
|
+
accessKeyId: env.CMS_MEDIA_S3_ACCESS_KEY_ID,
|
|
70
|
+
secretAccessKey: env.CMS_MEDIA_S3_SECRET_ACCESS_KEY,
|
|
71
|
+
endpoint: env.CMS_MEDIA_S3_ENDPOINT,
|
|
72
|
+
cdnPrefix: env.CMS_MEDIA_S3_CDN_PREFIX,
|
|
73
|
+
prefix: env.CMS_MEDIA_S3_PREFIX,
|
|
74
|
+
}),
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
case 'contember': {
|
|
79
|
+
const apiBaseUrl = env.NUA_SITE_API_BASE_URL
|
|
80
|
+
const projectSlug = env.NUA_SITE_PROJECT_SLUG
|
|
81
|
+
// Without the API base + project slug we cannot reach the worker; treat as
|
|
82
|
+
// "no media configured" rather than constructing a broken adapter.
|
|
83
|
+
if (!apiBaseUrl || !projectSlug) {
|
|
84
|
+
return { kind: 'none' }
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
kind,
|
|
88
|
+
adapter: createContemberStorageAdapter({
|
|
89
|
+
apiBaseUrl,
|
|
90
|
+
projectSlug,
|
|
91
|
+
sessionToken: env.NUA_SITE_SESSION_TOKEN,
|
|
92
|
+
}),
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|