From 7c363ad56f8698ca04a9e135066010f425e4692c Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Tue, 29 Oct 2024 15:42:44 -0700 Subject: [PATCH] feat: create typescript module (#168) Co-authored-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com> --- .github/workflows/ci.yml | 12 +- CODEOWNERS.md | 2 - api/sdkmeta-js/.gitignore | 2 + api/sdkmeta-js/jest.config.json | 13 + api/sdkmeta-js/package.json | 39 + api/sdkmeta-js/src/SDKMeta.ts | 37 + api/sdkmeta-js/src/data/feature_info.json | 94 + api/sdkmeta-js/src/data/features.json | 9 + api/sdkmeta-js/src/data/languages.json | 108 + api/sdkmeta-js/src/data/names.json | 32 + api/sdkmeta-js/src/data/popularity.json | 25 + api/sdkmeta-js/src/data/releases.json | 3998 +++++++++++++++++++++ api/sdkmeta-js/src/data/repos.json | 92 + api/sdkmeta-js/src/data/types.json | 32 + api/sdkmeta-js/tests/e2e.test.ts | 24 + api/sdkmeta-js/tsconfig.json | 14 + api/sdkmeta-js/tsconfig.test.json | 14 + api/sdkmeta-js/tsup.config.ts | 16 + scripts/generate-products.sh | 4 + 19 files changed, 4562 insertions(+), 5 deletions(-) delete mode 100644 CODEOWNERS.md create mode 100644 api/sdkmeta-js/.gitignore create mode 100644 api/sdkmeta-js/jest.config.json create mode 100644 api/sdkmeta-js/package.json create mode 100644 api/sdkmeta-js/src/SDKMeta.ts create mode 100644 api/sdkmeta-js/src/data/feature_info.json create mode 100644 api/sdkmeta-js/src/data/features.json create mode 100644 api/sdkmeta-js/src/data/languages.json create mode 100644 api/sdkmeta-js/src/data/names.json create mode 100644 api/sdkmeta-js/src/data/popularity.json create mode 100644 api/sdkmeta-js/src/data/releases.json create mode 100644 api/sdkmeta-js/src/data/repos.json create mode 100644 api/sdkmeta-js/src/data/types.json create mode 100644 api/sdkmeta-js/tests/e2e.test.ts create mode 100644 api/sdkmeta-js/tsconfig.json create mode 100644 api/sdkmeta-js/tsconfig.test.json create mode 100644 api/sdkmeta-js/tsup.config.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b18405..f708414 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,10 +26,16 @@ jobs: uses: actions/setup-go@v5 with: go-version: 1.22 - - name: Test API Module - run: cd api && go test ./... - - name: Test Tool Module + - name: Test Go Tool Module run: cd tool && go test ./... + - name: Test Go API + run: cd api && go test ./... + - name: Setup node + uses: actions/setup-node@v4 + - name: Build JS API + run: cd api/sdkmeta-js && npm install && npm run build + - name: Test JS API + run: cd api/sdkmeta-js && npm test - name: Sanity test run: | cd tool && go run ./cmd/ingest -db test.sqlite3 \ diff --git a/CODEOWNERS.md b/CODEOWNERS.md deleted file mode 100644 index 7d0dac3..0000000 --- a/CODEOWNERS.md +++ /dev/null @@ -1,2 +0,0 @@ -# Repository Maintainers -* @launchdarkly/team-sdk diff --git a/api/sdkmeta-js/.gitignore b/api/sdkmeta-js/.gitignore new file mode 100644 index 0000000..b35f0b6 --- /dev/null +++ b/api/sdkmeta-js/.gitignore @@ -0,0 +1,2 @@ +**/node_modules +dist diff --git a/api/sdkmeta-js/jest.config.json b/api/sdkmeta-js/jest.config.json new file mode 100644 index 0000000..5c010cb --- /dev/null +++ b/api/sdkmeta-js/jest.config.json @@ -0,0 +1,13 @@ +{ + "verbose": true, + "testPathIgnorePatterns": ["./dist", "./src"], + "testMatch": ["**.test.ts"], + "transform": { + "^.+\\.ts$": [ + "ts-jest", + { + "tsconfig": "tsconfig.test.json" + } + ] + } +} diff --git a/api/sdkmeta-js/package.json b/api/sdkmeta-js/package.json new file mode 100644 index 0000000..c0127e6 --- /dev/null +++ b/api/sdkmeta-js/package.json @@ -0,0 +1,39 @@ +{ + "name": "@launchdarkly/sdk-meta", + "version": "0.0.1", + "description": "LaunchDarkly SDK Metadata", + "license": "Apache-2.0", + "homepage": "https://github.com/launchdarkly/sdk-meta/tree/main", + "repository": { + "type": "git", + "url": "https://github.com/launchdarkly/sdk-meta.git" + }, + "scripts": { + "test": "jest", + "build": "tsup", + "prepare": "npm run build" + }, + "devDependencies": { + "@types/jest": "^29.5.14", + "jest": "^29.7.0", + "ts-jest": "^29.2.5", + "tsup": "^8.3.5", + "typescript": "^5.6.3" + }, + "type": "module", + "main": "./dist/SDKMeta.cjs", + "module": "./dist/SDKMeta.js", + "types": "./dist/SDKMeta.d.ts", + "exports": { + ".": { + "require": { + "types": "./dist/SDKMeta.d.cts", + "require": "./dist/SDKMeta.cjs" + }, + "import": { + "types": "./dist/SDKMeta.d.ts", + "import": "./dist/SDKMeta.js" + } + } + } +} diff --git a/api/sdkmeta-js/src/SDKMeta.ts b/api/sdkmeta-js/src/SDKMeta.ts new file mode 100644 index 0000000..169c4fa --- /dev/null +++ b/api/sdkmeta-js/src/SDKMeta.ts @@ -0,0 +1,37 @@ +import sdkLanguages from './data/languages.json' +import sdkRepos from './data/repos.json' +import sdkNames from './data/names.json' +import sdkTypes from './data/types.json' +import sdkPopularity from './data/popularity.json' + +export enum Type { + // ClientSide is an SDK that runs in a client scenario. + ClientSide = "client-side", + // ServerSide is an SDK that runs in a server scenario. + ServerSide = "server-side", + // Edge is an SDK that runs in an edge deployment scenario. + Edge = "edge", + // Relay is Relay Proxy. + Relay = "relay", + // Unknown if the SDK's type is not recognized. + Unknown = "unknown" +} + +function isType(value: string): value is Type { + return Object.values(Type).includes(value as Type); +} + +export type Repo = { + github: string; +} + +export const Languages: Record = sdkLanguages; +export const Names: Record = sdkNames; +export const Repos: Record = sdkRepos; +export const Popularity: Record = sdkPopularity; + +export const Types: Record = Object.fromEntries( + Object.entries(sdkTypes).map(([key, value]) => [ + key, + isType(value) ? value : Type.Unknown + ])); diff --git a/api/sdkmeta-js/src/data/feature_info.json b/api/sdkmeta-js/src/data/feature_info.json new file mode 100644 index 0000000..d63ae9f --- /dev/null +++ b/api/sdkmeta-js/src/data/feature_info.json @@ -0,0 +1,94 @@ +{ + "allFlags": { + "description": "Return the flag variations for all feature flags for a given context.", + "name": "Getting all flags" + }, + "appMetadata": { + "description": "Specify application and application version information.", + "name": "Application metadata" + }, + "autoEnvAttrs": { + "description": "Automatically include device and application data in each evaluated context.", + "name": "Automatic environment attributes" + }, + "bigSegments": { + "description": "Configure a persistent store to hold segments that are either synced from external tools, or that contain an arbitrarily large number of contexts of any one context kind.", + "name": "Big segments" + }, + "bootstrapping": { + "description": "Provide an initial set of flag values that are immediately available during client initialization.", + "name": "Bootstrapping" + }, + "contexts": { + "description": "Evaluate flags based on contexts. A context is a generalized way of referring to the people, services, machines, or other resources that encounter feature flags. SDKs without this feature only support flag evaluation for users.", + "name": "Contexts and context kinds" + }, + "experimentation": { + "description": "Connect a flag with one or more metrics to measure end-user behavior for different variations of a flag. Requires minimum SDK versions, but no SDK configuration.", + "name": "Experimentation" + }, + "fileDataSource": { + "description": "Use flag values, specified in JSON or YAML files, for all flag evaluations. Useful for testing or prototyping; do not use in production.", + "name": "Reading flags from a file" + }, + "flagChanges": { + "description": "Use a listener pattern to subscribe to flag change notifications.", + "name": "Subscribing to flag changes" + }, + "hooks": { + "description": "Define callbacks that are executed by the SDK at various points of interest, usually for metrics or tracing.", + "name": "Hooks" + }, + "migrations": { + "description": "Configure how to read and write data for an old and new system, determine which stage of a migration the application is in, execute the correct read and write calls for each stage.", + "name": "Migration flags" + }, + "multiEnv": { + "description": "Evaluate flags from multiple environments using a single client instance", + "name": "Multiple environments" + }, + "offlineMode": { + "description": "Close the SDK's connection to LaunchDarkly. Use cached or fallback values for each flag evaluation.", + "name": "Offline mode" + }, + "otel": { + "description": "Add flag evaluation information to OpenTelemetry spans.", + "name": "OpenTelemetry" + }, + "privateAttrs": { + "description": "Use context attribute values for targeting, but do not send them to LaunchDarkly.", + "name": "Private attributes" + }, + "relayProxyDaemon": { + "description": "Configure the SDK to connect to a persistent store, such as the Relay Proxy's data store.", + "name": "Relay Proxy in daemon mode" + }, + "relayProxyProxy": { + "description": "Configure the SDK to connect to alternate service endpoints, such as the Relay Proxy.", + "name": "Relay Proxy in proxy mode" + }, + "secureMode": { + "description": "For clent-side SDKs, require a hash, signed with the SDK key for the LaunchDarkly environment, to evaluate flag variations. For server-side or edge SDKs, generate a secure mode hash.", + "name": "Secure mode" + }, + "storingData": { + "description": "Configure an external database as a feature store. Persist flag data across application restarts.", + "name": "Storing data" + }, + "testDataSource": { + "description": "Mock data of an SDK. Useful for unit tests; cannot be used in production.", + "name": "Test data sources" + }, + "track": { + "description": "Record actions taken in your application as events. You can connect to these events to metrics for use in experiments.", + "name": "Sending custom events" + }, + "variationDetail": { + "description": "Receive information about how a flag variation was calculated, for example, because it matched a specific targeting rule.", + "name": "Flag evaluation reasons" + }, + "webProxy": { + "description": "Configure the SDK to connect to LaunchDarkly through a web proxy.", + "name": "Web proxy configuration" + } +} diff --git a/api/sdkmeta-js/src/data/features.json b/api/sdkmeta-js/src/data/features.json new file mode 100644 index 0000000..cbb1588 --- /dev/null +++ b/api/sdkmeta-js/src/data/features.json @@ -0,0 +1,9 @@ +{ + "dotnet-server-sdk": { + "hooks": { + "deprecated": null, + "introduced": "8.3", + "removed": null + } + } +} diff --git a/api/sdkmeta-js/src/data/languages.json b/api/sdkmeta-js/src/data/languages.json new file mode 100644 index 0000000..53b3bac --- /dev/null +++ b/api/sdkmeta-js/src/data/languages.json @@ -0,0 +1,108 @@ +{ + "akamai-base": [ + "JavaScript", + "TypeScript" + ], + "akamai-edgekv": [ + "JavaScript", + "TypeScript" + ], + "android": [ + "Java", + "Kotlin" + ], + "apex-server-sdk": [ + "Apex" + ], + "cloudflare": [ + "JavaScript", + "TypeScript" + ], + "cpp-client-sdk": [ + "C++", + "C" + ], + "cpp-server-sdk": [ + "C++", + "C" + ], + "dotnet-client-sdk": [ + "C#" + ], + "dotnet-server-sdk": [ + "C#" + ], + "electron": [ + "JavaScript", + "TypeScript" + ], + "erlang-server-sdk": [ + "Erlang", + "Elixir" + ], + "flutter-client-sdk": [ + "Dart" + ], + "go-server-sdk": [ + "Go" + ], + "haskell-server-sdk": [ + "Haskell" + ], + "java-server-sdk": [ + "Java" + ], + "js-client-sdk": [ + "JavaScript", + "TypeScript" + ], + "lua-server-sdk": [ + "Lua" + ], + "node-client-sdk": [ + "JavaScript", + "TypeScript" + ], + "node-server": [ + "JavaScript", + "TypeScript" + ], + "php-server-sdk": [ + "PHP" + ], + "python-server-sdk": [ + "Python" + ], + "react-client-sdk": [ + "JavaScript", + "TypeScript" + ], + "react-native": [ + "JavaScript", + "TypeScript" + ], + "relay-proxy": [ + "Go" + ], + "roku": [ + "BrightScript" + ], + "ruby-server-sdk": [ + "Ruby" + ], + "rust-server-sdk": [ + "Rust" + ], + "swift-client-sdk": [ + "Swift", + "Objective-C" + ], + "vercel": [ + "JavaScript", + "TypeScript" + ], + "vue": [ + "JavaScript", + "TypeScript" + ] +} diff --git a/api/sdkmeta-js/src/data/names.json b/api/sdkmeta-js/src/data/names.json new file mode 100644 index 0000000..167ac3b --- /dev/null +++ b/api/sdkmeta-js/src/data/names.json @@ -0,0 +1,32 @@ +{ + "akamai-base": "Akamai SDK", + "akamai-edgekv": "Akamai SDK for EdgeKV", + "android": "Android SDK", + "apex-server-sdk": "Apex Server SDK", + "cloudflare": "Cloudflare SDK", + "cpp-client-sdk": "C++ Client SDK", + "cpp-server-sdk": "C++ Server SDK", + "dotnet-client-sdk": ".NET Client SDK", + "dotnet-server-sdk": ".NET Server SDK", + "electron": "Electron SDK", + "erlang-server-sdk": "Erlang Server SDK", + "flutter-client-sdk": "Flutter Client SDK", + "go-server-sdk": "Go Server SDK", + "haskell-server-sdk": "Haskell Server SDK", + "java-server-sdk": "Java Server SDK", + "js-client-sdk": "JavaScript Client SDK", + "lua-server-sdk": "Lua Server SDK", + "node-client-sdk": "Node.js Client SDK", + "node-server": "Node.js Server SDK", + "php-server-sdk": "PHP SDK", + "python-server-sdk": "Python Server SDK", + "react-client-sdk": "React Web SDK", + "react-native": "React Native SDK", + "relay-proxy": "Relay Proxy", + "roku": "Roku SDK", + "ruby-server-sdk": "Ruby Server SDK", + "rust-server-sdk": "Rust Server SDK", + "swift-client-sdk": "iOS SDK", + "vercel": "Vercel Edge SDK", + "vue": "Vue SDK" +} diff --git a/api/sdkmeta-js/src/data/popularity.json b/api/sdkmeta-js/src/data/popularity.json new file mode 100644 index 0000000..cb08167 --- /dev/null +++ b/api/sdkmeta-js/src/data/popularity.json @@ -0,0 +1,25 @@ +{ + "android": 10, + "cpp-client-sdk": 17, + "cpp-server-sdk": 20, + "dotnet-client-sdk": 14, + "dotnet-server-sdk": 5, + "erlang-server-sdk": 15, + "flutter-client-sdk": 13, + "go-server-sdk": 9, + "haskell-server-sdk": 22, + "java-server-sdk": 4, + "js-client-sdk": 6, + "lua-server-sdk": 21, + "node-client-sdk": 19, + "node-server": 2, + "php-server-sdk": 23, + "python-server-sdk": 3, + "react-client-sdk": 1, + "react-native": 11, + "roku": 18, + "ruby-server-sdk": 12, + "rust-server-sdk": 16, + "swift-client-sdk": 8, + "vue": 7 +} diff --git a/api/sdkmeta-js/src/data/releases.json b/api/sdkmeta-js/src/data/releases.json new file mode 100644 index 0000000..fab5f11 --- /dev/null +++ b/api/sdkmeta-js/src/data/releases.json @@ -0,0 +1,3998 @@ +{ + "akamai-base": [ + { + "major": 2, + "minor": 1, + "date": "2024-02-06T21:34:15Z", + "eol": null + }, + { + "major": 2, + "minor": 0, + "date": "2023-10-16T21:58:59Z", + "eol": "2025-02-06T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2023-07-05T21:32:41Z", + "eol": "2024-10-16T00:00:00Z" + } + ], + "akamai-edgekv": [ + { + "major": 1, + "minor": 2, + "date": "2024-10-17T22:02:10Z", + "eol": null + }, + { + "major": 1, + "minor": 1, + "date": "2024-02-06T21:34:16Z", + "eol": "2025-10-17T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2023-07-05T21:32:43Z", + "eol": "2025-02-06T00:00:00Z" + } + ], + "android": [ + { + "major": 5, + "minor": 4, + "date": "2024-10-18T14:50:28Z", + "eol": null + }, + { + "major": 5, + "minor": 3, + "date": "2024-05-13T19:18:32Z", + "eol": "2025-10-18T00:00:00Z" + }, + { + "major": 5, + "minor": 2, + "date": "2024-04-25T21:45:10Z", + "eol": "2025-05-13T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2024-03-14T20:47:22Z", + "eol": "2025-04-25T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2023-08-03T21:29:52Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 4, + "minor": 3, + "date": "2023-08-03T19:03:14Z", + "eol": "2024-08-03T00:00:00Z" + }, + { + "major": 4, + "minor": 2, + "date": "2023-01-12T01:28:44Z", + "eol": "2024-08-03T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2022-12-23T01:21:02Z", + "eol": "2024-01-12T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2022-12-07T19:09:31Z", + "eol": "2023-12-23T00:00:00Z" + }, + { + "major": 3, + "minor": 6, + "date": "2023-01-11T23:18:39Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 3, + "minor": 5, + "date": "2022-12-23T01:38:35Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 3, + "minor": 4, + "date": "2022-12-23T01:07:55Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 3, + "minor": 3, + "date": "2022-12-02T23:23:14Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 3, + "minor": 2, + "date": "2022-08-23T22:12:21Z", + "eol": "2023-12-02T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2021-08-06T22:16:25Z", + "eol": "2023-08-23T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2021-05-08T00:10:29Z", + "eol": "2022-08-06T00:00:00Z" + }, + { + "major": 2, + "minor": 14, + "date": "2020-12-18T02:42:57Z", + "eol": "2022-05-08T00:00:00Z" + }, + { + "major": 2, + "minor": 13, + "date": "2020-08-07T21:07:28Z", + "eol": "2021-12-18T00:00:00Z" + }, + { + "major": 2, + "minor": 12, + "date": "2020-05-29T20:09:19Z", + "eol": "2021-08-07T00:00:00Z" + }, + { + "major": 2, + "minor": 11, + "date": "2020-02-28T18:19:57Z", + "eol": "2021-05-29T00:00:00Z" + }, + { + "major": 2, + "minor": 10, + "date": "2020-01-30T18:20:51Z", + "eol": "2021-02-28T00:00:00Z" + }, + { + "major": 2, + "minor": 9, + "date": "2019-10-25T21:07:46Z", + "eol": "2021-01-30T00:00:00Z" + }, + { + "major": 2, + "minor": 8, + "date": "2019-05-03T22:15:30Z", + "eol": "2020-10-25T00:00:00Z" + }, + { + "major": 2, + "minor": 7, + "date": "2019-04-02T23:00:02Z", + "eol": "2020-05-03T00:00:00Z" + }, + { + "major": 2, + "minor": 6, + "date": "2019-01-29T23:03:06Z", + "eol": "2020-04-02T00:00:00Z" + }, + { + "major": 2, + "minor": 5, + "date": "2018-06-13T00:57:19Z", + "eol": "2020-01-29T00:00:00Z" + }, + { + "major": 2, + "minor": 4, + "date": "2018-06-04T05:52:45Z", + "eol": "2019-06-13T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2018-03-22T01:07:54Z", + "eol": "2019-06-04T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2018-01-26T02:41:59Z", + "eol": "2019-03-22T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2017-10-14T07:08:06Z", + "eol": "2019-01-26T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2017-04-11T21:36:26Z", + "eol": "2018-10-14T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2016-09-29T21:35:40Z", + "eol": "2018-04-11T00:00:00Z" + } + ], + "apex-server-sdk": [ + { + "major": 1, + "minor": 3, + "date": "2024-01-23T18:15:30Z", + "eol": null + }, + { + "major": 1, + "minor": 2, + "date": "2022-09-27T21:50:39Z", + "eol": "2025-01-23T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2021-07-21T02:15:51Z", + "eol": "2023-09-27T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2021-06-08T20:39:58Z", + "eol": "2022-07-21T00:00:00Z" + } + ], + "cloudflare": [ + { + "major": 2, + "minor": 6, + "date": "2024-10-17T22:02:07Z", + "eol": null + }, + { + "major": 2, + "minor": 5, + "date": "2024-04-09T19:42:09Z", + "eol": "2025-10-17T00:00:00Z" + }, + { + "major": 2, + "minor": 4, + "date": "2024-02-06T21:34:11Z", + "eol": "2025-04-09T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2023-11-14T23:44:24Z", + "eol": "2025-02-06T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2023-09-21T20:58:30Z", + "eol": "2024-11-14T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2023-08-14T23:12:37Z", + "eol": "2024-09-21T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2023-04-26T20:45:36Z", + "eol": "2024-08-14T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2022-10-13T10:53:45Z", + "eol": "2024-04-26T00:00:00Z" + } + ], + "cpp-client-sdk": [ + { + "major": 3, + "minor": 7, + "date": "2024-10-01T21:08:24Z", + "eol": null + }, + { + "major": 3, + "minor": 6, + "date": "2024-05-31T17:33:17Z", + "eol": "2025-10-01T00:00:00Z" + }, + { + "major": 3, + "minor": 5, + "date": "2024-05-14T01:03:53Z", + "eol": "2025-05-31T00:00:00Z" + }, + { + "major": 3, + "minor": 4, + "date": "2023-12-26T22:54:02Z", + "eol": "2025-05-14T00:00:00Z" + }, + { + "major": 3, + "minor": 3, + "date": "2023-12-04T21:11:21Z", + "eol": "2024-12-26T00:00:00Z" + }, + { + "major": 3, + "minor": 2, + "date": "2023-10-23T18:43:03Z", + "eol": "2024-12-04T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2023-10-16T17:16:13Z", + "eol": "2024-10-23T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2023-06-01T16:10:37Z", + "eol": "2024-10-16T00:00:00Z" + }, + { + "major": 2, + "minor": 5, + "date": "2022-08-01T21:38:24Z", + "eol": "2024-06-01T00:00:00Z" + }, + { + "major": 2, + "minor": 4, + "date": "2021-12-10T16:41:22Z", + "eol": "2023-08-01T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2021-01-26T18:00:53Z", + "eol": "2022-12-10T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2020-11-24T14:55:17Z", + "eol": "2022-01-26T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2020-07-28T19:38:59Z", + "eol": "2021-11-24T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2020-06-15T19:44:17Z", + "eol": "2021-07-28T00:00:00Z" + }, + { + "major": 1, + "minor": 7, + "date": "2019-09-26T20:22:09Z", + "eol": "2021-06-15T00:00:00Z" + }, + { + "major": 1, + "minor": 6, + "date": "2019-09-11T20:45:55Z", + "eol": "2020-09-26T00:00:00Z" + }, + { + "major": 1, + "minor": 5, + "date": "2019-07-30T00:14:41Z", + "eol": "2020-09-11T00:00:00Z" + }, + { + "major": 1, + "minor": 4, + "date": "2019-07-03T18:43:03Z", + "eol": "2020-07-30T00:00:00Z" + }, + { + "major": 1, + "minor": 3, + "date": "2019-04-19T00:20:26Z", + "eol": "2020-07-03T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2019-04-12T17:02:38Z", + "eol": "2020-04-19T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2019-02-02T00:03:01Z", + "eol": "2020-04-12T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2019-01-10T22:59:33Z", + "eol": "2020-02-02T00:00:00Z" + } + ], + "cpp-server-sdk": [ + { + "major": 3, + "minor": 6, + "date": "2024-09-04T22:13:58Z", + "eol": null + }, + { + "major": 3, + "minor": 5, + "date": "2024-05-31T17:33:18Z", + "eol": "2025-09-04T00:00:00Z" + }, + { + "major": 3, + "minor": 4, + "date": "2024-05-14T01:03:45Z", + "eol": "2025-05-31T00:00:00Z" + }, + { + "major": 3, + "minor": 3, + "date": "2023-12-26T22:54:04Z", + "eol": "2025-05-14T00:00:00Z" + }, + { + "major": 3, + "minor": 2, + "date": "2023-12-22T02:03:36Z", + "eol": "2024-12-26T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2023-12-21T18:47:13Z", + "eol": "2024-12-22T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2023-12-04T22:32:04Z", + "eol": "2024-12-21T00:00:00Z" + }, + { + "major": 2, + "minor": 9, + "date": "2023-01-27T21:57:42Z", + "eol": "2024-12-04T00:00:00Z" + }, + { + "major": 2, + "minor": 8, + "date": "2022-07-13T00:23:09Z", + "eol": "2024-01-27T00:00:00Z" + }, + { + "major": 2, + "minor": 7, + "date": "2022-06-02T20:59:31Z", + "eol": "2023-07-13T00:00:00Z" + }, + { + "major": 2, + "minor": 6, + "date": "2022-04-20T23:55:41Z", + "eol": "2023-06-02T00:00:00Z" + }, + { + "major": 2, + "minor": 5, + "date": "2022-02-23T21:13:12Z", + "eol": "2023-04-20T00:00:00Z" + }, + { + "major": 2, + "minor": 4, + "date": "2021-06-21T01:48:18Z", + "eol": "2023-02-23T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2021-01-28T22:15:23Z", + "eol": "2022-06-21T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2020-11-24T15:04:22Z", + "eol": "2022-01-28T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2020-05-12T16:05:18Z", + "eol": "2021-11-24T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2020-04-30T21:55:17Z", + "eol": "2021-05-12T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2020-01-22T19:09:22Z", + "eol": "2021-04-30T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2019-09-26T20:25:08Z", + "eol": "2021-01-22T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2019-07-05T23:02:42Z", + "eol": "2020-09-26T00:00:00Z" + } + ], + "dotnet-client-sdk": [ + { + "major": 5, + "minor": 2, + "date": "2024-05-08T17:01:33Z", + "eol": null + }, + { + "major": 5, + "minor": 1, + "date": "2024-03-14T18:58:04Z", + "eol": "2025-05-08T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2024-02-13T20:30:17Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2023-10-18T18:20:16Z", + "eol": "2025-02-13T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2023-10-11T15:04:25Z", + "eol": "2024-10-18T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2022-12-22T00:38:32Z", + "eol": "2024-10-11T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2022-01-07T19:32:35Z", + "eol": "2023-12-22T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2020-01-16T00:30:44Z", + "eol": "2023-01-07T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2019-10-17T22:52:17Z", + "eol": "2021-01-16T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2019-09-14T01:23:41Z", + "eol": "2020-10-17T00:00:00Z" + } + ], + "dotnet-server-sdk": [ + { + "major": 8, + "minor": 5, + "date": "2024-05-10T16:46:36Z", + "eol": null + }, + { + "major": 8, + "minor": 4, + "date": "2024-04-23T20:14:21Z", + "eol": "2025-05-10T00:00:00Z" + }, + { + "major": 8, + "minor": 3, + "date": "2024-04-03T18:41:43Z", + "eol": "2025-04-23T00:00:00Z" + }, + { + "major": 8, + "minor": 2, + "date": "2024-03-14T15:52:45Z", + "eol": "2025-04-03T00:00:00Z" + }, + { + "major": 8, + "minor": 1, + "date": "2024-03-06T23:26:28Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 8, + "minor": 0, + "date": "2023-10-16T16:53:00Z", + "eol": "2025-03-06T00:00:00Z" + }, + { + "major": 7, + "minor": 1, + "date": "2023-10-16T21:23:17Z", + "eol": "2024-10-16T00:00:00Z" + }, + { + "major": 7, + "minor": 0, + "date": "2022-12-07T18:08:08Z", + "eol": "2024-10-16T00:00:00Z" + }, + { + "major": 6, + "minor": 3, + "date": "2021-10-25T22:38:47Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 6, + "minor": 2, + "date": "2021-07-23T00:09:10Z", + "eol": "2022-10-25T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2021-06-22T16:30:16Z", + "eol": "2022-07-23T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2021-06-09T23:54:15Z", + "eol": "2022-06-22T00:00:00Z" + }, + { + "major": 5, + "minor": 14, + "date": "2021-01-27T00:38:28Z", + "eol": "2022-06-09T00:00:00Z" + }, + { + "major": 5, + "minor": 13, + "date": "2020-02-11T00:58:59Z", + "eol": "2022-01-27T00:00:00Z" + }, + { + "major": 5, + "minor": 12, + "date": "2020-01-06T23:58:03Z", + "eol": "2021-02-11T00:00:00Z" + }, + { + "major": 5, + "minor": 11, + "date": "2019-12-13T22:08:12Z", + "eol": "2021-01-06T00:00:00Z" + }, + { + "major": 5, + "minor": 10, + "date": "2019-11-12T22:28:45Z", + "eol": "2020-12-13T00:00:00Z" + }, + { + "major": 5, + "minor": 9, + "date": "2019-10-08T00:29:28Z", + "eol": "2020-11-12T00:00:00Z" + }, + { + "major": 5, + "minor": 8, + "date": "2019-10-01T22:57:01Z", + "eol": "2020-10-08T00:00:00Z" + }, + { + "major": 5, + "minor": 7, + "date": "2019-09-13T04:41:33Z", + "eol": "2020-10-01T00:00:00Z" + }, + { + "major": 5, + "minor": 6, + "date": "2019-01-11T21:19:06Z", + "eol": "2020-09-13T00:00:00Z" + }, + { + "major": 5, + "minor": 5, + "date": "2019-01-11T21:18:24Z", + "eol": "2020-01-11T00:00:00Z" + }, + { + "major": 5, + "minor": 4, + "date": "2018-08-30T22:52:57Z", + "eol": "2020-01-11T00:00:00Z" + }, + { + "major": 5, + "minor": 3, + "date": "2018-08-27T20:37:37Z", + "eol": "2019-08-30T00:00:00Z" + }, + { + "major": 5, + "minor": 2, + "date": "2018-07-28T00:16:26Z", + "eol": "2019-08-27T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2018-06-27T23:00:52Z", + "eol": "2019-07-28T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2018-05-11T00:09:59Z", + "eol": "2019-06-27T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2018-03-05T23:59:40Z", + "eol": "2019-05-11T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2018-02-23T23:29:36Z", + "eol": "2019-03-05T00:00:00Z" + }, + { + "major": 3, + "minor": 6, + "date": "2018-02-23T23:28:09Z", + "eol": "2019-02-23T00:00:00Z" + }, + { + "major": 3, + "minor": 5, + "date": "2018-01-29T23:00:03Z", + "eol": "2019-02-23T00:00:00Z" + }, + { + "major": 3, + "minor": 4, + "date": "2017-11-29T22:23:13Z", + "eol": "2019-01-29T00:00:00Z" + }, + { + "major": 3, + "minor": 3, + "date": "2017-06-16T22:59:56Z", + "eol": "2018-11-29T00:00:00Z" + }, + { + "major": 3, + "minor": 2, + "date": "2017-05-25T23:53:46Z", + "eol": "2018-06-16T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2016-12-08T00:17:31Z", + "eol": "2018-05-25T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2016-10-28T17:35:14Z", + "eol": "2017-12-08T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2016-08-10T23:10:50Z", + "eol": "2017-10-28T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2016-05-17T17:02:17Z", + "eol": "2017-08-10T00:00:00Z" + } + ], + "electron": [ + { + "major": 1, + "minor": 7, + "date": "2022-10-21T16:47:09Z", + "eol": null + }, + { + "major": 1, + "minor": 6, + "date": "2021-01-27T20:30:09Z", + "eol": "2023-10-21T00:00:00Z" + }, + { + "major": 1, + "minor": 5, + "date": "2020-02-14T23:22:49Z", + "eol": "2022-01-27T00:00:00Z" + }, + { + "major": 1, + "minor": 4, + "date": "2019-12-16T20:33:28Z", + "eol": "2021-02-14T00:00:00Z" + }, + { + "major": 1, + "minor": 3, + "date": "2019-11-06T00:33:33Z", + "eol": "2020-12-16T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2019-10-10T23:33:40Z", + "eol": "2020-11-06T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2019-05-07T23:02:47Z", + "eol": "2020-10-10T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2019-02-02T01:31:09Z", + "eol": "2020-05-07T00:00:00Z" + } + ], + "erlang-server-sdk": [ + { + "major": 3, + "minor": 4, + "date": "2024-10-24T20:09:31Z", + "eol": null + }, + { + "major": 3, + "minor": 3, + "date": "2024-05-20T20:43:51Z", + "eol": "2025-10-24T00:00:00Z" + }, + { + "major": 3, + "minor": 2, + "date": "2024-03-14T15:53:47Z", + "eol": "2025-05-20T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2024-01-04T17:32:03Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2023-09-14T16:22:25Z", + "eol": "2025-01-04T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2023-08-01T22:05:10Z", + "eol": "2024-09-14T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2023-02-22T23:30:31Z", + "eol": "2024-08-01T00:00:00Z" + }, + { + "major": 1, + "minor": 6, + "date": "2023-01-30T23:00:52Z", + "eol": "2024-02-22T00:00:00Z" + }, + { + "major": 1, + "minor": 5, + "date": "2022-06-23T16:32:50Z", + "eol": "2024-01-30T00:00:00Z" + }, + { + "major": 1, + "minor": 4, + "date": "2022-04-20T22:53:42Z", + "eol": "2023-06-23T00:00:00Z" + }, + { + "major": 1, + "minor": 3, + "date": "2021-11-03T22:06:31Z", + "eol": "2023-04-20T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2021-10-18T20:23:06Z", + "eol": "2022-11-03T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2021-05-06T22:39:02Z", + "eol": "2022-10-18T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2021-02-23T00:05:47Z", + "eol": "2022-05-06T00:00:00Z" + } + ], + "flutter-client-sdk": [ + { + "major": 4, + "minor": 7, + "date": "2024-08-01T22:01:30Z", + "eol": null + }, + { + "major": 4, + "minor": 6, + "date": "2024-05-03T16:42:52Z", + "eol": "2025-08-01T00:00:00Z" + }, + { + "major": 4, + "minor": 5, + "date": "2024-04-23T21:42:44Z", + "eol": "2025-05-03T00:00:00Z" + }, + { + "major": 4, + "minor": 4, + "date": "2024-03-28T17:35:52Z", + "eol": "2025-04-23T00:00:00Z" + }, + { + "major": 4, + "minor": 3, + "date": "2024-03-18T17:19:41Z", + "eol": "2025-03-28T00:00:00Z" + }, + { + "major": 4, + "minor": 2, + "date": "2024-03-08T18:38:01Z", + "eol": "2025-03-18T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2024-02-15T21:56:41Z", + "eol": "2025-03-08T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2024-01-31T18:38:33Z", + "eol": "2025-02-15T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2024-04-09T18:26:38Z", + "eol": "2025-01-31T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2023-08-25T22:19:27Z", + "eol": "2025-01-31T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2023-08-17T20:54:14Z", + "eol": "2024-08-25T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2023-04-26T22:54:30Z", + "eol": "2024-08-17T00:00:00Z" + }, + { + "major": 1, + "minor": 3, + "date": "2023-04-04T20:54:11Z", + "eol": "2024-04-26T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2022-11-07T21:08:53Z", + "eol": "2024-04-04T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2022-06-23T23:17:26Z", + "eol": "2023-11-07T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2021-10-29T19:26:30Z", + "eol": "2023-06-23T00:00:00Z" + } + ], + "go-server-sdk": [ + { + "major": 7, + "minor": 7, + "date": "2024-10-23T18:56:44Z", + "eol": null + }, + { + "major": 7, + "minor": 6, + "date": "2024-07-25T17:01:08Z", + "eol": "2025-10-23T00:00:00Z" + }, + { + "major": 7, + "minor": 5, + "date": "2024-06-26T18:06:19Z", + "eol": "2025-07-25T00:00:00Z" + }, + { + "major": 7, + "minor": 4, + "date": "2024-04-11T16:21:21Z", + "eol": "2025-06-26T00:00:00Z" + }, + { + "major": 7, + "minor": 3, + "date": "2024-04-03T21:00:50Z", + "eol": "2025-04-11T00:00:00Z" + }, + { + "major": 7, + "minor": 2, + "date": "2024-03-25T22:54:22Z", + "eol": "2025-04-03T00:00:00Z" + }, + { + "major": 7, + "minor": 1, + "date": "2024-03-14T13:57:34Z", + "eol": "2025-03-25T00:00:00Z" + }, + { + "major": 7, + "minor": 0, + "date": "2023-10-11T20:39:15Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 6, + "minor": 2, + "date": "2024-03-27T22:34:57Z", + "eol": "2024-10-11T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2023-04-13T20:08:54Z", + "eol": "2024-10-11T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2022-12-07T17:43:00Z", + "eol": "2024-04-13T00:00:00Z" + }, + { + "major": 5, + "minor": 10, + "date": "2022-07-06T02:40:59Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 5, + "minor": 9, + "date": "2022-03-23T03:06:39Z", + "eol": "2023-07-06T00:00:00Z" + }, + { + "major": 5, + "minor": 8, + "date": "2022-01-11T00:19:39Z", + "eol": "2023-03-23T00:00:00Z" + }, + { + "major": 5, + "minor": 7, + "date": "2022-01-08T00:42:46Z", + "eol": "2023-01-11T00:00:00Z" + }, + { + "major": 5, + "minor": 6, + "date": "2021-08-20T19:25:26Z", + "eol": "2023-01-08T00:00:00Z" + }, + { + "major": 5, + "minor": 5, + "date": "2021-07-21T03:11:20Z", + "eol": "2022-08-20T00:00:00Z" + }, + { + "major": 5, + "minor": 4, + "date": "2021-06-17T19:52:23Z", + "eol": "2022-07-21T00:00:00Z" + }, + { + "major": 5, + "minor": 3, + "date": "2021-04-22T21:53:35Z", + "eol": "2022-06-17T00:00:00Z" + }, + { + "major": 5, + "minor": 2, + "date": "2021-01-26T19:09:22Z", + "eol": "2022-04-22T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2020-12-18T03:27:18Z", + "eol": "2022-01-26T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2020-09-19T00:12:08Z", + "eol": "2021-12-18T00:00:00Z" + }, + { + "major": 4, + "minor": 17, + "date": "2020-03-30T19:37:38Z", + "eol": "2021-09-19T00:00:00Z" + }, + { + "major": 4, + "minor": 16, + "date": "2020-02-04T20:10:34Z", + "eol": "2021-03-30T00:00:00Z" + }, + { + "major": 4, + "minor": 15, + "date": "2020-01-23T21:15:06Z", + "eol": "2021-02-04T00:00:00Z" + }, + { + "major": 4, + "minor": 14, + "date": "2020-01-09T21:04:14Z", + "eol": "2021-01-23T00:00:00Z" + }, + { + "major": 4, + "minor": 13, + "date": "2019-10-10T18:52:09Z", + "eol": "2021-01-09T00:00:00Z" + }, + { + "major": 4, + "minor": 12, + "date": "2019-09-12T21:50:09Z", + "eol": "2020-10-10T00:00:00Z" + }, + { + "major": 4, + "minor": 11, + "date": "2019-08-20T01:38:44Z", + "eol": "2020-09-12T00:00:00Z" + }, + { + "major": 4, + "minor": 10, + "date": "2019-07-31T02:44:58Z", + "eol": "2020-08-20T00:00:00Z" + }, + { + "major": 4, + "minor": 9, + "date": "2019-07-23T22:57:55Z", + "eol": "2020-07-31T00:00:00Z" + }, + { + "major": 4, + "minor": 8, + "date": "2019-06-11T20:24:17Z", + "eol": "2020-07-23T00:00:00Z" + }, + { + "major": 4, + "minor": 7, + "date": "2019-04-29T22:07:54Z", + "eol": "2020-06-11T00:00:00Z" + } + ], + "haskell-server-sdk": [ + { + "major": 4, + "minor": 3, + "date": "2024-10-24T14:32:08Z", + "eol": null + }, + { + "major": 4, + "minor": 2, + "date": "2024-09-05T18:16:43Z", + "eol": "2025-10-24T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2024-03-18T19:42:06Z", + "eol": "2025-09-05T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2023-02-21T22:45:41Z", + "eol": "2025-03-18T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2023-01-27T20:12:10Z", + "eol": "2024-02-21T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2022-06-27T19:14:48Z", + "eol": "2024-01-27T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2021-06-17T23:11:08Z", + "eol": "2023-06-27T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2021-02-04T21:10:33Z", + "eol": "2022-06-17T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2020-04-22T04:27:52Z", + "eol": "2022-02-04T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2020-02-24T23:05:36Z", + "eol": "2021-04-22T00:00:00Z" + } + ], + "java-server-sdk": [ + { + "major": 7, + "minor": 6, + "date": "2024-10-24T21:49:48Z", + "eol": null + }, + { + "major": 7, + "minor": 5, + "date": "2024-05-23T15:30:09Z", + "eol": "2025-10-24T00:00:00Z" + }, + { + "major": 7, + "minor": 4, + "date": "2024-04-26T17:04:24Z", + "eol": "2025-05-23T00:00:00Z" + }, + { + "major": 7, + "minor": 3, + "date": "2024-03-14T15:41:25Z", + "eol": "2025-04-26T00:00:00Z" + }, + { + "major": 7, + "minor": 2, + "date": "2024-02-09T21:59:30Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 7, + "minor": 1, + "date": "2023-11-02T21:37:17Z", + "eol": "2025-02-09T00:00:00Z" + }, + { + "major": 7, + "minor": 0, + "date": "2023-10-16T16:13:15Z", + "eol": "2024-11-02T00:00:00Z" + }, + { + "major": 6, + "minor": 3, + "date": "2023-10-16T20:52:43Z", + "eol": "2024-10-16T00:00:00Z" + }, + { + "major": 6, + "minor": 2, + "date": "2023-06-13T17:15:43Z", + "eol": "2024-10-16T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2023-04-13T17:52:29Z", + "eol": "2024-06-13T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2022-12-07T18:14:46Z", + "eol": "2024-04-13T00:00:00Z" + }, + { + "major": 5, + "minor": 10, + "date": "2022-07-29T00:12:59Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 5, + "minor": 9, + "date": "2022-05-26T19:54:51Z", + "eol": "2023-07-29T00:00:00Z" + }, + { + "major": 5, + "minor": 8, + "date": "2022-04-18T20:15:25Z", + "eol": "2023-05-26T00:00:00Z" + }, + { + "major": 5, + "minor": 7, + "date": "2022-01-29T01:58:38Z", + "eol": "2023-04-18T00:00:00Z" + }, + { + "major": 5, + "minor": 6, + "date": "2021-07-02T22:10:01Z", + "eol": "2023-01-29T00:00:00Z" + }, + { + "major": 5, + "minor": 5, + "date": "2021-06-18T01:25:53Z", + "eol": "2022-07-02T00:00:00Z" + }, + { + "major": 5, + "minor": 4, + "date": "2021-04-22T23:30:21Z", + "eol": "2022-06-18T00:00:00Z" + }, + { + "major": 5, + "minor": 3, + "date": "2021-03-09T17:51:22Z", + "eol": "2022-04-22T00:00:00Z" + }, + { + "major": 5, + "minor": 2, + "date": "2020-10-10T01:50:39Z", + "eol": "2022-03-09T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2020-09-04T23:44:13Z", + "eol": "2021-10-10T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2020-06-02T20:11:08Z", + "eol": "2021-09-04T00:00:00Z" + }, + { + "major": 4, + "minor": 14, + "date": "2020-05-13T17:35:06Z", + "eol": "2021-06-02T00:00:00Z" + }, + { + "major": 4, + "minor": 13, + "date": "2020-04-22T00:48:16Z", + "eol": "2021-05-13T00:00:00Z" + }, + { + "major": 4, + "minor": 12, + "date": "2020-01-31T03:03:02Z", + "eol": "2021-04-22T00:00:00Z" + }, + { + "major": 4, + "minor": 11, + "date": "2020-01-16T21:04:13Z", + "eol": "2021-01-31T00:00:00Z" + }, + { + "major": 4, + "minor": 10, + "date": "2019-12-13T22:15:10Z", + "eol": "2021-01-16T00:00:00Z" + }, + { + "major": 4, + "minor": 9, + "date": "2019-10-18T19:36:51Z", + "eol": "2020-12-13T00:00:00Z" + }, + { + "major": 4, + "minor": 8, + "date": "2019-09-30T22:55:00Z", + "eol": "2020-10-18T00:00:00Z" + }, + { + "major": 4, + "minor": 7, + "date": "2019-08-03T00:35:14Z", + "eol": "2020-09-30T00:00:00Z" + }, + { + "major": 4, + "minor": 6, + "date": "2019-01-15T01:26:50Z", + "eol": "2020-08-03T00:00:00Z" + }, + { + "major": 4, + "minor": 5, + "date": "2018-10-26T22:59:24Z", + "eol": "2020-01-15T00:00:00Z" + }, + { + "major": 4, + "minor": 4, + "date": "2018-10-02T00:19:46Z", + "eol": "2019-10-26T00:00:00Z" + }, + { + "major": 4, + "minor": 3, + "date": "2018-08-27T21:11:18Z", + "eol": "2019-10-02T00:00:00Z" + }, + { + "major": 4, + "minor": 2, + "date": "2018-06-26T21:23:38Z", + "eol": "2019-08-27T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2018-05-15T22:12:04Z", + "eol": "2019-06-26T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2018-05-11T00:10:22Z", + "eol": "2019-05-15T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2018-02-21T19:34:30Z", + "eol": "2019-05-11T00:00:00Z" + }, + { + "major": 2, + "minor": 6, + "date": "2018-02-13T01:14:41Z", + "eol": "2019-02-21T00:00:00Z" + }, + { + "major": 2, + "minor": 5, + "date": "2018-01-08T20:17:29Z", + "eol": "2019-02-13T00:00:00Z" + }, + { + "major": 2, + "minor": 4, + "date": "2017-12-21T06:51:36Z", + "eol": "2019-01-08T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2017-07-10T22:42:51Z", + "eol": "2018-12-21T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2017-04-11T21:11:55Z", + "eol": "2018-07-10T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2017-03-02T19:05:19Z", + "eol": "2018-04-11T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2016-08-10T22:27:32Z", + "eol": "2018-03-02T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2016-04-12T20:43:04Z", + "eol": "2017-08-10T00:00:00Z" + } + ], + "js-client-sdk": [ + { + "major": 3, + "minor": 5, + "date": "2024-10-18T17:32:18Z", + "eol": null + }, + { + "major": 3, + "minor": 4, + "date": "2024-06-20T16:30:33Z", + "eol": "2025-10-18T00:00:00Z" + }, + { + "major": 3, + "minor": 3, + "date": "2024-05-01T17:32:10Z", + "eol": "2025-06-20T00:00:00Z" + }, + { + "major": 3, + "minor": 2, + "date": "2024-03-19T19:00:57Z", + "eol": "2025-05-01T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2023-01-18T23:49:33Z", + "eol": "2025-03-19T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2022-12-07T17:03:16Z", + "eol": "2024-01-18T00:00:00Z" + }, + { + "major": 2, + "minor": 24, + "date": "2022-10-18T16:51:53Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 2, + "minor": 23, + "date": "2022-10-05T17:32:28Z", + "eol": "2023-10-18T00:00:00Z" + }, + { + "major": 2, + "minor": 22, + "date": "2022-04-26T19:28:49Z", + "eol": "2023-10-05T00:00:00Z" + }, + { + "major": 2, + "minor": 21, + "date": "2022-03-21T19:58:50Z", + "eol": "2023-04-26T00:00:00Z" + }, + { + "major": 2, + "minor": 20, + "date": "2021-10-15T20:05:49Z", + "eol": "2023-03-21T00:00:00Z" + }, + { + "major": 2, + "minor": 19, + "date": "2021-01-27T19:37:23Z", + "eol": "2022-10-15T00:00:00Z" + }, + { + "major": 2, + "minor": 18, + "date": "2020-07-16T23:18:09Z", + "eol": "2022-01-27T00:00:00Z" + }, + { + "major": 2, + "minor": 17, + "date": "2020-02-14T21:08:04Z", + "eol": "2021-07-16T00:00:00Z" + }, + { + "major": 2, + "minor": 16, + "date": "2019-12-16T22:26:16Z", + "eol": "2021-02-14T00:00:00Z" + }, + { + "major": 2, + "minor": 15, + "date": "2019-11-05T23:50:26Z", + "eol": "2020-12-16T00:00:00Z" + }, + { + "major": 2, + "minor": 14, + "date": "2019-10-10T20:47:45Z", + "eol": "2020-11-05T00:00:00Z" + }, + { + "major": 2, + "minor": 13, + "date": "2019-08-15T16:38:58Z", + "eol": "2020-10-10T00:00:00Z" + }, + { + "major": 2, + "minor": 12, + "date": "2019-06-25T23:19:15Z", + "eol": "2020-08-15T00:00:00Z" + }, + { + "major": 2, + "minor": 11, + "date": "2019-06-07T03:35:33Z", + "eol": "2020-06-25T00:00:00Z" + }, + { + "major": 2, + "minor": 10, + "date": "2019-04-20T00:20:32Z", + "eol": "2020-06-07T00:00:00Z" + }, + { + "major": 2, + "minor": 9, + "date": "2019-02-08T21:58:34Z", + "eol": "2020-04-20T00:00:00Z" + }, + { + "major": 2, + "minor": 8, + "date": "2018-12-03T23:34:14Z", + "eol": "2020-02-08T00:00:00Z" + }, + { + "major": 2, + "minor": 7, + "date": "2018-09-27T01:13:05Z", + "eol": "2019-12-03T00:00:00Z" + }, + { + "major": 2, + "minor": 6, + "date": "2018-09-07T19:58:28Z", + "eol": "2019-09-27T00:00:00Z" + }, + { + "major": 2, + "minor": 5, + "date": "2018-08-27T20:50:22Z", + "eol": "2019-09-07T00:00:00Z" + }, + { + "major": 2, + "minor": 4, + "date": "2018-07-13T22:47:53Z", + "eol": "2019-08-27T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2018-06-27T18:26:40Z", + "eol": "2019-07-13T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2018-06-22T21:24:39Z", + "eol": "2019-06-27T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2018-06-01T00:10:05Z", + "eol": "2019-06-22T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2018-05-26T01:06:09Z", + "eol": "2019-06-01T00:00:00Z" + }, + { + "major": 1, + "minor": 7, + "date": "2018-04-27T19:56:05Z", + "eol": "2019-05-26T00:00:00Z" + }, + { + "major": 1, + "minor": 6, + "date": "2018-03-28T22:56:10Z", + "eol": "2019-04-27T00:00:00Z" + }, + { + "major": 1, + "minor": 5, + "date": "2018-03-05T21:25:41Z", + "eol": "2019-03-28T00:00:00Z" + }, + { + "major": 1, + "minor": 4, + "date": "2018-02-07T21:00:48Z", + "eol": "2019-03-05T00:00:00Z" + }, + { + "major": 1, + "minor": 3, + "date": "2018-01-22T20:21:45Z", + "eol": "2019-02-07T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2017-12-15T14:26:07Z", + "eol": "2019-01-22T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2016-09-14T18:00:40Z", + "eol": "2018-12-15T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2016-08-12T17:43:37Z", + "eol": "2017-09-14T00:00:00Z" + } + ], + "lua-server-sdk": [ + { + "major": 2, + "minor": 1, + "date": "2024-03-11T23:37:23Z", + "eol": null + }, + { + "major": 2, + "minor": 0, + "date": "2023-12-28T20:01:01Z", + "eol": "2025-03-11T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2022-02-08T00:20:09Z", + "eol": "2024-12-28T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2021-02-04T19:50:59Z", + "eol": "2023-02-08T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2020-07-27T22:52:55Z", + "eol": "2022-02-04T00:00:00Z" + } + ], + "node-client-sdk": [ + { + "major": 3, + "minor": 3, + "date": "2024-10-18T17:06:06Z", + "eol": null + }, + { + "major": 3, + "minor": 2, + "date": "2024-05-01T20:27:26Z", + "eol": "2025-10-18T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2024-03-19T19:02:27Z", + "eol": "2025-05-01T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2023-01-12T20:34:26Z", + "eol": "2025-03-19T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2022-10-18T17:29:57Z", + "eol": "2024-01-12T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2022-10-06T16:07:45Z", + "eol": "2023-10-18T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2022-01-26T21:33:50Z", + "eol": "2023-10-06T00:00:00Z" + }, + { + "major": 1, + "minor": 5, + "date": "2021-01-27T19:12:39Z", + "eol": "2023-01-26T00:00:00Z" + }, + { + "major": 1, + "minor": 4, + "date": "2020-02-14T21:21:42Z", + "eol": "2022-01-27T00:00:00Z" + }, + { + "major": 1, + "minor": 3, + "date": "2019-12-16T17:29:45Z", + "eol": "2021-02-14T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2019-11-06T01:06:40Z", + "eol": "2020-12-16T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2019-10-10T23:37:55Z", + "eol": "2020-11-06T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2019-07-03T23:13:07Z", + "eol": "2020-10-10T00:00:00Z" + } + ], + "node-server": [ + { + "major": 9, + "minor": 7, + "date": "2024-10-17T22:02:08Z", + "eol": null + }, + { + "major": 9, + "minor": 6, + "date": "2024-09-26T18:02:22Z", + "eol": "2025-10-17T00:00:00Z" + }, + { + "major": 9, + "minor": 5, + "date": "2024-07-31T19:45:34Z", + "eol": "2025-09-26T00:00:00Z" + }, + { + "major": 9, + "minor": 4, + "date": "2024-04-16T17:41:07Z", + "eol": "2025-07-31T00:00:00Z" + }, + { + "major": 9, + "minor": 3, + "date": "2024-04-10T20:03:25Z", + "eol": "2025-04-16T00:00:00Z" + }, + { + "major": 9, + "minor": 2, + "date": "2024-02-14T16:57:00Z", + "eol": "2025-04-10T00:00:00Z" + }, + { + "major": 9, + "minor": 1, + "date": "2024-02-06T21:34:13Z", + "eol": "2025-02-14T00:00:00Z" + }, + { + "major": 9, + "minor": 0, + "date": "2023-10-16T21:58:54Z", + "eol": "2025-02-06T00:00:00Z" + }, + { + "major": 8, + "minor": 2, + "date": "2023-08-14T23:12:35Z", + "eol": "2024-10-16T00:00:00Z" + }, + { + "major": 8, + "minor": 1, + "date": "2023-07-05T22:45:29Z", + "eol": "2024-08-14T00:00:00Z" + }, + { + "major": 8, + "minor": 0, + "date": "2023-06-26T20:49:27Z", + "eol": "2024-07-05T00:00:00Z" + }, + { + "major": 7, + "minor": 0, + "date": "2022-12-07T17:57:36Z", + "eol": "2024-06-26T00:00:00Z" + }, + { + "major": 6, + "minor": 4, + "date": "2022-03-23T03:07:56Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 6, + "minor": 3, + "date": "2022-02-19T03:13:24Z", + "eol": "2023-03-23T00:00:00Z" + }, + { + "major": 6, + "minor": 2, + "date": "2021-07-22T22:00:57Z", + "eol": "2023-02-19T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2021-06-21T23:59:53Z", + "eol": "2022-07-22T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2021-06-17T18:57:58Z", + "eol": "2022-06-21T00:00:00Z" + }, + { + "major": 5, + "minor": 14, + "date": "2021-01-29T18:58:54Z", + "eol": "2022-06-17T00:00:00Z" + }, + { + "major": 5, + "minor": 13, + "date": "2020-04-07T20:08:29Z", + "eol": "2022-01-29T00:00:00Z" + }, + { + "major": 5, + "minor": 12, + "date": "2020-04-03T23:29:39Z", + "eol": "2021-04-07T00:00:00Z" + }, + { + "major": 5, + "minor": 11, + "date": "2020-02-12T22:48:05Z", + "eol": "2021-04-03T00:00:00Z" + }, + { + "major": 5, + "minor": 10, + "date": "2019-12-11T19:36:19Z", + "eol": "2021-02-12T00:00:00Z" + }, + { + "major": 5, + "minor": 9, + "date": "2019-10-23T19:10:54Z", + "eol": "2020-12-11T00:00:00Z" + }, + { + "major": 5, + "minor": 8, + "date": "2019-05-07T23:12:16Z", + "eol": "2020-10-10T00:00:00Z" + }, + { + "major": 5, + "minor": 7, + "date": "2019-01-16T00:13:55Z", + "eol": "2020-05-07T00:00:00Z" + }, + { + "major": 5, + "minor": 6, + "date": "2018-11-14T18:19:17Z", + "eol": "2020-01-16T00:00:00Z" + }, + { + "major": 5, + "minor": 5, + "date": "2018-10-08T20:56:23Z", + "eol": "2019-11-14T00:00:00Z" + }, + { + "major": 5, + "minor": 4, + "date": "2018-08-30T19:57:00Z", + "eol": "2019-10-08T00:00:00Z" + }, + { + "major": 5, + "minor": 3, + "date": "2018-08-27T20:47:05Z", + "eol": "2019-08-30T00:00:00Z" + }, + { + "major": 5, + "minor": 2, + "date": "2018-08-01T22:58:20Z", + "eol": "2019-08-27T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2018-06-26T21:59:06Z", + "eol": "2019-08-01T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2018-05-11T00:26:49Z", + "eol": "2019-06-26T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2018-02-21T22:16:30Z", + "eol": "2019-05-11T00:00:00Z" + }, + { + "major": 3, + "minor": 4, + "date": "2018-02-13T19:05:51Z", + "eol": "2019-02-21T00:00:00Z" + }, + { + "major": 3, + "minor": 3, + "date": "2018-01-19T21:09:33Z", + "eol": "2019-02-13T00:00:00Z" + }, + { + "major": 3, + "minor": 2, + "date": "2017-12-13T17:45:34Z", + "eol": "2019-01-19T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2017-12-11T19:10:34Z", + "eol": "2018-12-13T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2016-08-10T22:59:04Z", + "eol": "2018-12-11T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2016-06-02T17:45:05Z", + "eol": "2017-08-10T00:00:00Z" + }, + { + "major": 1, + "minor": 6, + "date": "2016-05-17T17:10:41Z", + "eol": "2017-06-02T00:00:00Z" + }, + { + "major": 1, + "minor": 5, + "date": "2015-12-10T05:51:48Z", + "eol": "2017-05-17T00:00:00Z" + }, + { + "major": 1, + "minor": 4, + "date": "2015-10-05T22:00:24Z", + "eol": "2016-12-10T00:00:00Z" + }, + { + "major": 1, + "minor": 3, + "date": "2015-09-24T23:08:10Z", + "eol": "2016-10-05T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2015-09-12T00:08:20Z", + "eol": "2016-09-24T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2015-05-13T16:55:00Z", + "eol": "2016-09-12T00:00:00Z" + } + ], + "php-server-sdk": [ + { + "major": 6, + "minor": 3, + "date": "2024-10-22T20:02:10Z", + "eol": null + }, + { + "major": 6, + "minor": 2, + "date": "2024-06-11T15:59:34Z", + "eol": "2025-10-22T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2024-03-15T19:25:38Z", + "eol": "2025-06-11T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2023-10-23T20:04:09Z", + "eol": "2025-03-15T00:00:00Z" + }, + { + "major": 5, + "minor": 2, + "date": "2023-10-23T16:08:19Z", + "eol": "2024-10-23T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2023-01-31T20:01:24Z", + "eol": "2024-10-23T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2023-01-05T02:06:42Z", + "eol": "2024-01-31T00:00:00Z" + }, + { + "major": 4, + "minor": 3, + "date": "2023-01-31T19:18:34Z", + "eol": "2024-01-05T00:00:00Z" + }, + { + "major": 4, + "minor": 2, + "date": "2022-04-13T15:12:38Z", + "eol": "2024-01-05T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2022-02-16T20:10:07Z", + "eol": "2023-04-13T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2021-08-07T00:20:36Z", + "eol": "2023-02-16T00:00:00Z" + }, + { + "major": 3, + "minor": 9, + "date": "2021-06-21T21:35:14Z", + "eol": "2022-08-07T00:00:00Z" + }, + { + "major": 3, + "minor": 8, + "date": "2021-04-19T21:17:36Z", + "eol": "2022-06-21T00:00:00Z" + }, + { + "major": 3, + "minor": 7, + "date": "2019-12-13T22:14:57Z", + "eol": "2022-04-19T00:00:00Z" + }, + { + "major": 3, + "minor": 6, + "date": "2019-10-01T23:28:33Z", + "eol": "2020-12-13T00:00:00Z" + }, + { + "major": 3, + "minor": 5, + "date": "2019-04-03T18:39:40Z", + "eol": "2020-10-01T00:00:00Z" + }, + { + "major": 3, + "minor": 4, + "date": "2018-09-04T20:56:20Z", + "eol": "2020-04-03T00:00:00Z" + }, + { + "major": 3, + "minor": 3, + "date": "2018-08-27T20:48:27Z", + "eol": "2019-09-04T00:00:00Z" + }, + { + "major": 3, + "minor": 2, + "date": "2018-06-27T22:53:48Z", + "eol": "2019-08-27T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2018-05-04T20:20:13Z", + "eol": "2019-06-27T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2018-02-21T22:06:00Z", + "eol": "2019-05-04T00:00:00Z" + }, + { + "major": 2, + "minor": 5, + "date": "2018-02-13T20:01:18Z", + "eol": "2019-02-21T00:00:00Z" + }, + { + "major": 2, + "minor": 4, + "date": "2018-01-12T00:42:22Z", + "eol": "2019-02-13T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2017-10-06T23:15:21Z", + "eol": "2019-01-12T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2017-06-06T17:37:06Z", + "eol": "2018-10-06T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2017-03-23T17:44:04Z", + "eol": "2018-06-06T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2016-08-10T22:55:03Z", + "eol": "2018-03-23T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2016-07-25T16:44:33Z", + "eol": "2017-08-10T00:00:00Z" + } + ], + "python-server-sdk": [ + { + "major": 9, + "minor": 8, + "date": "2024-10-16T17:17:17Z", + "eol": null + }, + { + "major": 9, + "minor": 7, + "date": "2024-08-21T13:48:57Z", + "eol": "2025-10-16T00:00:00Z" + }, + { + "major": 9, + "minor": 6, + "date": "2024-08-19T14:43:53Z", + "eol": "2025-08-21T00:00:00Z" + }, + { + "major": 9, + "minor": 5, + "date": "2024-07-25T18:37:35Z", + "eol": "2025-08-19T00:00:00Z" + }, + { + "major": 9, + "minor": 4, + "date": "2024-04-29T17:29:10Z", + "eol": "2025-07-25T00:00:00Z" + }, + { + "major": 9, + "minor": 3, + "date": "2024-03-14T17:32:06Z", + "eol": "2025-04-29T00:00:00Z" + }, + { + "major": 9, + "minor": 2, + "date": "2024-02-14T17:18:25Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 9, + "minor": 1, + "date": "2023-12-20T14:46:36Z", + "eol": "2025-02-14T00:00:00Z" + }, + { + "major": 9, + "minor": 0, + "date": "2023-10-17T19:16:15Z", + "eol": "2024-12-20T00:00:00Z" + }, + { + "major": 8, + "minor": 3, + "date": "2024-02-14T17:13:20Z", + "eol": "2024-10-17T00:00:00Z" + }, + { + "major": 8, + "minor": 2, + "date": "2023-10-17T16:29:32Z", + "eol": "2024-10-17T00:00:00Z" + }, + { + "major": 8, + "minor": 1, + "date": "2023-01-31T17:36:55Z", + "eol": "2024-10-17T00:00:00Z" + }, + { + "major": 8, + "minor": 0, + "date": "2022-12-30T20:17:58Z", + "eol": "2024-01-31T00:00:00Z" + }, + { + "major": 7, + "minor": 6, + "date": "2023-01-31T15:33:04Z", + "eol": "2023-12-30T00:00:00Z" + }, + { + "major": 7, + "minor": 5, + "date": "2022-07-01T19:44:34Z", + "eol": "2023-12-30T00:00:00Z" + }, + { + "major": 7, + "minor": 4, + "date": "2022-02-16T18:01:04Z", + "eol": "2023-07-01T00:00:00Z" + }, + { + "major": 7, + "minor": 3, + "date": "2021-12-10T23:23:44Z", + "eol": "2023-02-16T00:00:00Z" + }, + { + "major": 7, + "minor": 2, + "date": "2021-06-17T22:18:27Z", + "eol": "2022-12-10T00:00:00Z" + }, + { + "major": 7, + "minor": 1, + "date": "2021-03-12T01:01:39Z", + "eol": "2022-06-17T00:00:00Z" + }, + { + "major": 7, + "minor": 0, + "date": "2020-10-28T18:57:31Z", + "eol": "2022-03-12T00:00:00Z" + }, + { + "major": 6, + "minor": 13, + "date": "2020-03-30T23:31:31Z", + "eol": "2021-10-28T00:00:00Z" + }, + { + "major": 6, + "minor": 12, + "date": "2020-02-11T22:10:28Z", + "eol": "2021-03-30T00:00:00Z" + }, + { + "major": 6, + "minor": 11, + "date": "2019-10-31T21:23:39Z", + "eol": "2021-02-11T00:00:00Z" + }, + { + "major": 6, + "minor": 10, + "date": "2019-08-20T16:06:17Z", + "eol": "2020-10-31T00:00:00Z" + }, + { + "major": 6, + "minor": 9, + "date": "2019-04-10T00:10:12Z", + "eol": "2020-08-20T00:00:00Z" + }, + { + "major": 6, + "minor": 8, + "date": "2019-01-31T18:47:32Z", + "eol": "2020-04-10T00:00:00Z" + }, + { + "major": 6, + "minor": 7, + "date": "2019-01-16T01:35:17Z", + "eol": "2020-01-31T00:00:00Z" + }, + { + "major": 6, + "minor": 6, + "date": "2018-11-14T23:27:15Z", + "eol": "2020-01-16T00:00:00Z" + }, + { + "major": 6, + "minor": 5, + "date": "2018-10-17T22:53:52Z", + "eol": "2019-11-14T00:00:00Z" + }, + { + "major": 6, + "minor": 4, + "date": "2018-08-30T17:50:31Z", + "eol": "2019-10-17T00:00:00Z" + }, + { + "major": 6, + "minor": 3, + "date": "2018-08-27T20:44:43Z", + "eol": "2019-08-30T00:00:00Z" + }, + { + "major": 6, + "minor": 2, + "date": "2018-08-03T23:58:46Z", + "eol": "2019-08-27T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2018-06-18T17:45:24Z", + "eol": "2019-08-03T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2018-05-11T00:22:53Z", + "eol": "2019-06-18T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2018-02-21T23:17:51Z", + "eol": "2019-05-11T00:00:00Z" + }, + { + "major": 4, + "minor": 3, + "date": "2018-02-07T22:37:56Z", + "eol": "2019-02-21T00:00:00Z" + }, + { + "major": 4, + "minor": 2, + "date": "2018-01-12T21:44:45Z", + "eol": "2019-02-07T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2017-12-22T18:04:19Z", + "eol": "2019-01-12T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2016-11-18T23:43:07Z", + "eol": "2018-12-22T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2016-08-23T01:51:47Z", + "eol": "2017-11-18T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2016-08-10T22:41:51Z", + "eol": "2017-08-23T00:00:00Z" + } + ], + "react-client-sdk": [ + { + "major": 3, + "minor": 3, + "date": "2024-05-23T21:53:04Z", + "eol": null + }, + { + "major": 3, + "minor": 2, + "date": "2024-05-01T18:23:49Z", + "eol": "2025-05-23T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2024-03-21T14:00:02Z", + "eol": "2025-05-01T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2022-12-07T18:56:44Z", + "eol": "2025-03-21T00:00:00Z" + }, + { + "major": 2, + "minor": 29, + "date": "2022-10-18T17:16:19Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 2, + "minor": 28, + "date": "2022-10-05T18:19:13Z", + "eol": "2023-10-18T00:00:00Z" + }, + { + "major": 2, + "minor": 27, + "date": "2022-08-31T15:51:59Z", + "eol": "2023-10-05T00:00:00Z" + }, + { + "major": 2, + "minor": 26, + "date": "2022-04-27T21:59:16Z", + "eol": "2023-08-31T00:00:00Z" + }, + { + "major": 2, + "minor": 25, + "date": "2022-02-08T17:59:00Z", + "eol": "2023-04-27T00:00:00Z" + }, + { + "major": 2, + "minor": 24, + "date": "2021-12-09T18:06:43Z", + "eol": "2023-02-08T00:00:00Z" + }, + { + "major": 2, + "minor": 23, + "date": "2021-07-16T17:45:57Z", + "eol": "2022-12-09T00:00:00Z" + }, + { + "major": 2, + "minor": 22, + "date": "2021-01-27T20:42:07Z", + "eol": "2022-07-16T00:00:00Z" + }, + { + "major": 2, + "minor": 21, + "date": "2020-11-17T20:25:39Z", + "eol": "2022-01-27T00:00:00Z" + }, + { + "major": 2, + "minor": 20, + "date": "2020-07-17T18:07:28Z", + "eol": "2021-11-17T00:00:00Z" + }, + { + "major": 2, + "minor": 19, + "date": "2020-07-15T23:06:54Z", + "eol": "2021-07-17T00:00:00Z" + }, + { + "major": 2, + "minor": 18, + "date": "2020-02-20T01:50:58Z", + "eol": "2021-07-15T00:00:00Z" + }, + { + "major": 2, + "minor": 17, + "date": "2019-12-18T22:28:26Z", + "eol": "2021-02-20T00:00:00Z" + }, + { + "major": 2, + "minor": 16, + "date": "2019-12-17T00:23:48Z", + "eol": "2020-12-18T00:00:00Z" + }, + { + "major": 2, + "minor": 15, + "date": "2019-11-06T20:29:15Z", + "eol": "2020-12-17T00:00:00Z" + }, + { + "major": 2, + "minor": 14, + "date": "2019-09-13T00:53:12Z", + "eol": "2020-11-06T00:00:00Z" + } + ], + "react-native": [ + { + "major": 10, + "minor": 9, + "date": "2024-10-17T22:02:07Z", + "eol": null + }, + { + "major": 10, + "minor": 8, + "date": "2024-10-09T21:32:40Z", + "eol": "2025-10-17T00:00:00Z" + }, + { + "major": 10, + "minor": 7, + "date": "2024-09-26T18:02:22Z", + "eol": "2025-10-09T00:00:00Z" + }, + { + "major": 10, + "minor": 6, + "date": "2024-08-28T20:19:39Z", + "eol": "2025-09-26T00:00:00Z" + }, + { + "major": 10, + "minor": 5, + "date": "2024-08-16T17:10:47Z", + "eol": "2025-08-28T00:00:00Z" + }, + { + "major": 10, + "minor": 4, + "date": "2024-08-13T19:08:50Z", + "eol": "2025-08-16T00:00:00Z" + }, + { + "major": 10, + "minor": 3, + "date": "2024-07-22T21:42:19Z", + "eol": "2025-08-13T00:00:00Z" + }, + { + "major": 10, + "minor": 2, + "date": "2024-07-02T18:42:03Z", + "eol": "2025-07-22T00:00:00Z" + }, + { + "major": 10, + "minor": 1, + "date": "2024-04-09T19:42:10Z", + "eol": "2025-07-02T00:00:00Z" + }, + { + "major": 10, + "minor": 0, + "date": "2024-02-08T19:00:25Z", + "eol": "2025-04-09T00:00:00Z" + }, + { + "major": 9, + "minor": 4, + "date": "2024-10-25T21:56:11Z", + "eol": "2025-02-08T00:00:00Z" + }, + { + "major": 9, + "minor": 3, + "date": "2024-06-11T19:14:14Z", + "eol": "2025-02-08T00:00:00Z" + }, + { + "major": 9, + "minor": 2, + "date": "2024-03-20T21:59:00Z", + "eol": "2025-02-08T00:00:00Z" + }, + { + "major": 9, + "minor": 1, + "date": "2024-03-07T06:25:35Z", + "eol": "2025-02-08T00:00:00Z" + }, + { + "major": 9, + "minor": 0, + "date": "2024-01-09T19:48:35Z", + "eol": "2025-02-08T00:00:00Z" + }, + { + "major": 8, + "minor": 3, + "date": "2024-09-12T15:55:18Z", + "eol": "2025-01-09T00:00:00Z" + }, + { + "major": 8, + "minor": 2, + "date": "2024-03-18T21:43:22Z", + "eol": "2025-01-09T00:00:00Z" + }, + { + "major": 8, + "minor": 1, + "date": "2024-03-07T19:50:45Z", + "eol": "2025-01-09T00:00:00Z" + }, + { + "major": 8, + "minor": 0, + "date": "2023-08-25T23:01:17Z", + "eol": "2025-01-09T00:00:00Z" + }, + { + "major": 7, + "minor": 2, + "date": "2024-03-08T17:52:19Z", + "eol": "2024-08-25T00:00:00Z" + }, + { + "major": 7, + "minor": 1, + "date": "2023-03-06T23:00:37Z", + "eol": "2024-08-25T00:00:00Z" + }, + { + "major": 7, + "minor": 0, + "date": "2023-02-24T20:08:11Z", + "eol": "2024-03-06T00:00:00Z" + }, + { + "major": 6, + "minor": 3, + "date": "2023-01-30T21:15:54Z", + "eol": "2024-02-24T00:00:00Z" + }, + { + "major": 6, + "minor": 2, + "date": "2022-05-17T21:53:11Z", + "eol": "2024-01-30T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2022-02-26T01:07:35Z", + "eol": "2023-05-17T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2022-02-10T21:50:09Z", + "eol": "2023-02-26T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2021-09-30T21:48:47Z", + "eol": "2023-02-10T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2021-08-20T23:29:43Z", + "eol": "2022-09-30T00:00:00Z" + }, + { + "major": 4, + "minor": 2, + "date": "2021-05-19T23:53:52Z", + "eol": "2022-08-20T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2021-04-14T02:13:23Z", + "eol": "2022-05-19T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2021-04-01T02:05:08Z", + "eol": "2022-04-14T00:00:00Z" + }, + { + "major": 3, + "minor": 2, + "date": "2020-07-10T23:41:32Z", + "eol": "2022-04-01T00:00:00Z" + }, + { + "major": 3, + "minor": 1, + "date": "2020-04-01T15:55:17Z", + "eol": "2021-07-10T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2020-02-20T22:34:11Z", + "eol": "2021-04-01T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2020-01-25T01:12:23Z", + "eol": "2021-02-20T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2019-12-24T03:44:21Z", + "eol": "2021-01-25T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2019-06-27T20:40:31Z", + "eol": "2020-12-24T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2019-04-19T18:00:02Z", + "eol": "2020-06-27T00:00:00Z" + } + ], + "relay-proxy": [ + { + "major": 8, + "minor": 10, + "date": "2024-10-21T18:48:38Z", + "eol": null + }, + { + "major": 8, + "minor": 9, + "date": "2024-07-25T17:51:14Z", + "eol": "2025-10-21T00:00:00Z" + }, + { + "major": 8, + "minor": 8, + "date": "2024-06-25T23:06:03Z", + "eol": "2025-07-25T00:00:00Z" + }, + { + "major": 8, + "minor": 7, + "date": "2024-06-17T16:09:20Z", + "eol": "2025-06-25T00:00:00Z" + }, + { + "major": 8, + "minor": 6, + "date": "2024-06-10T23:49:33Z", + "eol": "2025-06-17T00:00:00Z" + }, + { + "major": 8, + "minor": 5, + "date": "2024-05-14T18:57:05Z", + "eol": "2025-06-10T00:00:00Z" + }, + { + "major": 8, + "minor": 4, + "date": "2024-03-14T20:46:25Z", + "eol": "2025-05-14T00:00:00Z" + }, + { + "major": 8, + "minor": 3, + "date": "2024-02-09T18:38:13Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 8, + "minor": 2, + "date": "2023-10-24T13:32:40Z", + "eol": "2025-02-09T00:00:00Z" + }, + { + "major": 8, + "minor": 1, + "date": "2023-10-17T20:20:17Z", + "eol": "2024-10-24T00:00:00Z" + }, + { + "major": 8, + "minor": 0, + "date": "2023-10-12T20:31:10Z", + "eol": "2024-10-17T00:00:00Z" + }, + { + "major": 7, + "minor": 6, + "date": "2024-06-10T23:06:10Z", + "eol": "2024-10-12T00:00:00Z" + }, + { + "major": 7, + "minor": 5, + "date": "2024-02-12T18:54:48Z", + "eol": "2024-10-12T00:00:00Z" + }, + { + "major": 7, + "minor": 4, + "date": "2023-10-17T19:59:26Z", + "eol": "2024-10-12T00:00:00Z" + }, + { + "major": 7, + "minor": 3, + "date": "2023-05-24T16:54:30Z", + "eol": "2024-10-12T00:00:00Z" + }, + { + "major": 7, + "minor": 2, + "date": "2023-02-21T22:20:54Z", + "eol": "2024-05-24T00:00:00Z" + }, + { + "major": 7, + "minor": 1, + "date": "2023-02-11T00:13:28Z", + "eol": "2024-02-21T00:00:00Z" + }, + { + "major": 7, + "minor": 0, + "date": "2022-12-07T18:45:03Z", + "eol": "2024-02-11T00:00:00Z" + }, + { + "major": 6, + "minor": 9, + "date": "2023-10-17T23:49:54Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 6, + "minor": 8, + "date": "2023-03-17T22:32:01Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 6, + "minor": 7, + "date": "2022-03-24T20:28:27Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 6, + "minor": 6, + "date": "2022-01-06T03:17:39Z", + "eol": "2023-03-24T00:00:00Z" + }, + { + "major": 6, + "minor": 5, + "date": "2021-10-11T22:51:21Z", + "eol": "2023-01-06T00:00:00Z" + }, + { + "major": 6, + "minor": 4, + "date": "2021-07-22T21:06:58Z", + "eol": "2022-10-11T00:00:00Z" + }, + { + "major": 6, + "minor": 3, + "date": "2021-06-17T22:04:47Z", + "eol": "2022-07-22T00:00:00Z" + }, + { + "major": 6, + "minor": 2, + "date": "2021-05-08T00:25:54Z", + "eol": "2022-06-17T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2020-11-10T02:36:10Z", + "eol": "2022-05-08T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2020-10-07T17:32:45Z", + "eol": "2021-11-10T00:00:00Z" + }, + { + "major": 5, + "minor": 12, + "date": "2020-08-06T22:41:02Z", + "eol": "2021-10-07T00:00:00Z" + }, + { + "major": 5, + "minor": 11, + "date": "2020-03-18T01:03:30Z", + "eol": "2021-08-06T00:00:00Z" + }, + { + "major": 5, + "minor": 10, + "date": "2020-01-22T22:04:50Z", + "eol": "2021-03-18T00:00:00Z" + }, + { + "major": 5, + "minor": 9, + "date": "2019-12-20T17:52:40Z", + "eol": "2021-01-22T00:00:00Z" + }, + { + "major": 5, + "minor": 8, + "date": "2019-10-11T21:16:35Z", + "eol": "2020-12-20T00:00:00Z" + }, + { + "major": 5, + "minor": 7, + "date": "2019-09-19T00:15:11Z", + "eol": "2020-10-11T00:00:00Z" + }, + { + "major": 5, + "minor": 6, + "date": "2019-08-03T00:49:03Z", + "eol": "2020-09-19T00:00:00Z" + }, + { + "major": 5, + "minor": 5, + "date": "2018-11-28T00:06:18Z", + "eol": "2020-08-03T00:00:00Z" + }, + { + "major": 5, + "minor": 4, + "date": "2018-08-09T21:31:16Z", + "eol": "2019-11-28T00:00:00Z" + }, + { + "major": 5, + "minor": 3, + "date": "2018-07-30T23:29:27Z", + "eol": "2019-08-09T00:00:00Z" + }, + { + "major": 5, + "minor": 2, + "date": "2018-07-13T23:45:35Z", + "eol": "2019-07-30T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2018-07-13T23:28:43Z", + "eol": "2019-07-13T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2018-05-30T00:12:30Z", + "eol": "2019-07-13T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2018-05-25T23:45:54Z", + "eol": "2019-05-30T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2018-05-11T02:57:25Z", + "eol": "2019-05-25T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2018-02-20T18:11:41Z", + "eol": "2019-05-11T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2018-02-09T23:55:36Z", + "eol": "2019-02-20T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2017-06-05T21:29:11Z", + "eol": "2019-02-09T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2016-11-07T18:33:49Z", + "eol": "2018-06-05T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2016-10-26T16:50:57Z", + "eol": "2017-11-07T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2016-11-07T18:08:20Z", + "eol": "2017-10-26T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2016-10-28T18:06:53Z", + "eol": "2017-10-26T00:00:00Z" + } + ], + "roku": [ + { + "major": 2, + "minor": 1, + "date": "2024-03-14T17:13:12Z", + "eol": null + }, + { + "major": 2, + "minor": 0, + "date": "2023-04-13T20:39:19Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 1, + "minor": 3, + "date": "2023-04-12T00:33:37Z", + "eol": "2024-04-13T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2021-07-23T23:59:19Z", + "eol": "2024-04-12T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2019-11-13T19:29:54Z", + "eol": "2022-07-23T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2019-11-04T22:45:15Z", + "eol": "2020-11-13T00:00:00Z" + } + ], + "ruby-server-sdk": [ + { + "major": 8, + "minor": 8, + "date": "2024-10-16T15:09:08Z", + "eol": null + }, + { + "major": 8, + "minor": 7, + "date": "2024-07-25T18:07:55Z", + "eol": "2025-10-16T00:00:00Z" + }, + { + "major": 8, + "minor": 6, + "date": "2024-06-26T18:03:32Z", + "eol": "2025-07-25T00:00:00Z" + }, + { + "major": 8, + "minor": 5, + "date": "2024-06-10T17:14:25Z", + "eol": "2025-06-26T00:00:00Z" + }, + { + "major": 8, + "minor": 4, + "date": "2024-04-05T14:45:00Z", + "eol": "2025-06-10T00:00:00Z" + }, + { + "major": 8, + "minor": 3, + "date": "2024-03-14T17:32:55Z", + "eol": "2025-04-05T00:00:00Z" + }, + { + "major": 8, + "minor": 2, + "date": "2024-02-22T20:17:12Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 8, + "minor": 1, + "date": "2024-01-03T16:53:05Z", + "eol": "2025-02-22T00:00:00Z" + }, + { + "major": 8, + "minor": 0, + "date": "2023-10-17T21:01:47Z", + "eol": "2025-01-03T00:00:00Z" + }, + { + "major": 7, + "minor": 3, + "date": "2023-10-16T19:42:20Z", + "eol": "2024-10-17T00:00:00Z" + }, + { + "major": 7, + "minor": 2, + "date": "2023-05-04T12:47:52Z", + "eol": "2024-10-16T00:00:00Z" + }, + { + "major": 7, + "minor": 1, + "date": "2023-04-13T19:43:13Z", + "eol": "2024-05-04T00:00:00Z" + }, + { + "major": 7, + "minor": 0, + "date": "2022-12-30T20:15:48Z", + "eol": "2024-04-13T00:00:00Z" + }, + { + "major": 6, + "minor": 4, + "date": "2022-09-07T23:36:59Z", + "eol": "2023-12-30T00:00:00Z" + }, + { + "major": 6, + "minor": 3, + "date": "2021-12-09T23:39:46Z", + "eol": "2023-09-07T00:00:00Z" + }, + { + "major": 6, + "minor": 2, + "date": "2021-06-17T18:07:26Z", + "eol": "2022-12-09T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2021-02-04T21:20:00Z", + "eol": "2022-06-17T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2021-01-26T22:43:41Z", + "eol": "2022-02-04T00:00:00Z" + }, + { + "major": 5, + "minor": 8, + "date": "2020-05-27T20:57:33Z", + "eol": "2022-01-26T00:00:00Z" + }, + { + "major": 5, + "minor": 7, + "date": "2020-03-10T22:53:42Z", + "eol": "2021-05-27T00:00:00Z" + }, + { + "major": 5, + "minor": 6, + "date": "2019-08-20T18:28:46Z", + "eol": "2021-03-10T00:00:00Z" + }, + { + "major": 5, + "minor": 5, + "date": "2019-01-18T01:07:13Z", + "eol": "2020-08-20T00:00:00Z" + }, + { + "major": 5, + "minor": 4, + "date": "2018-11-05T20:08:36Z", + "eol": "2020-01-18T00:00:00Z" + }, + { + "major": 5, + "minor": 3, + "date": "2018-10-24T16:47:47Z", + "eol": "2019-11-05T00:00:00Z" + }, + { + "major": 5, + "minor": 2, + "date": "2018-08-30T18:29:23Z", + "eol": "2019-10-24T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2018-08-27T20:42:11Z", + "eol": "2019-08-30T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2018-06-26T20:19:12Z", + "eol": "2019-08-27T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2018-05-11T00:16:11Z", + "eol": "2019-06-26T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2018-02-22T23:38:36Z", + "eol": "2019-05-11T00:00:00Z" + }, + { + "major": 2, + "minor": 5, + "date": "2018-02-13T01:49:58Z", + "eol": "2019-02-22T00:00:00Z" + }, + { + "major": 2, + "minor": 4, + "date": "2018-01-12T21:49:07Z", + "eol": "2019-02-13T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2017-11-16T16:05:12Z", + "eol": "2019-01-12T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2017-05-12T18:48:43Z", + "eol": "2018-11-16T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2017-03-08T20:29:05Z", + "eol": "2018-05-12T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2016-08-10T22:57:42Z", + "eol": "2018-03-08T00:00:00Z" + } + ], + "rust-server-sdk": [ + { + "major": 2, + "minor": 3, + "date": "2024-10-25T17:46:50Z", + "eol": null + }, + { + "major": 2, + "minor": 2, + "date": "2024-07-19T13:54:09Z", + "eol": "2025-10-25T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2024-03-15T20:59:34Z", + "eol": "2025-07-19T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2023-11-17T21:53:08Z", + "eol": "2025-03-15T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2023-05-03T19:12:28Z", + "eol": "2024-11-17T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2022-12-07T18:29:29Z", + "eol": "2024-05-03T00:00:00Z" + } + ], + "swift-client-sdk": [ + { + "major": 9, + "minor": 11, + "date": "2024-10-22T15:31:17Z", + "eol": null + }, + { + "major": 9, + "minor": 10, + "date": "2024-08-07T20:59:31Z", + "eol": "2025-10-22T00:00:00Z" + }, + { + "major": 9, + "minor": 9, + "date": "2024-08-02T21:47:02Z", + "eol": "2025-08-07T00:00:00Z" + }, + { + "major": 9, + "minor": 8, + "date": "2024-05-20T21:31:06Z", + "eol": "2025-08-02T00:00:00Z" + }, + { + "major": 9, + "minor": 7, + "date": "2024-05-02T19:49:00Z", + "eol": "2025-05-20T00:00:00Z" + }, + { + "major": 9, + "minor": 6, + "date": "2024-03-25T13:21:48Z", + "eol": "2025-05-02T00:00:00Z" + }, + { + "major": 9, + "minor": 5, + "date": "2024-03-14T18:41:22Z", + "eol": "2025-03-25T00:00:00Z" + }, + { + "major": 9, + "minor": 4, + "date": "2024-02-22T14:53:55Z", + "eol": "2025-03-14T00:00:00Z" + }, + { + "major": 9, + "minor": 3, + "date": "2024-01-03T19:18:39Z", + "eol": "2025-02-22T00:00:00Z" + }, + { + "major": 9, + "minor": 2, + "date": "2023-10-24T21:42:53Z", + "eol": "2025-01-03T00:00:00Z" + }, + { + "major": 9, + "minor": 1, + "date": "2023-09-11T14:43:26Z", + "eol": "2024-10-24T00:00:00Z" + }, + { + "major": 9, + "minor": 0, + "date": "2023-08-02T21:39:00Z", + "eol": "2024-09-11T00:00:00Z" + }, + { + "major": 8, + "minor": 4, + "date": "2024-01-03T17:53:57Z", + "eol": "2024-08-02T00:00:00Z" + }, + { + "major": 8, + "minor": 3, + "date": "2023-09-08T15:31:18Z", + "eol": "2024-08-02T00:00:00Z" + }, + { + "major": 8, + "minor": 2, + "date": "2023-08-02T19:17:36Z", + "eol": "2024-08-02T00:00:00Z" + }, + { + "major": 8, + "minor": 1, + "date": "2023-06-06T19:39:28Z", + "eol": "2024-08-02T00:00:00Z" + }, + { + "major": 8, + "minor": 0, + "date": "2022-12-07T16:37:04Z", + "eol": "2024-06-06T00:00:00Z" + }, + { + "major": 7, + "minor": 1, + "date": "2022-11-08T16:36:40Z", + "eol": "2023-12-07T00:00:00Z" + }, + { + "major": 7, + "minor": 0, + "date": "2022-10-12T19:31:20Z", + "eol": "2023-11-08T00:00:00Z" + }, + { + "major": 6, + "minor": 2, + "date": "2022-09-02T13:54:25Z", + "eol": "2023-10-12T00:00:00Z" + }, + { + "major": 6, + "minor": 1, + "date": "2022-05-17T16:30:13Z", + "eol": "2023-09-02T00:00:00Z" + }, + { + "major": 6, + "minor": 0, + "date": "2022-05-04T18:46:02Z", + "eol": "2023-05-17T00:00:00Z" + }, + { + "major": 5, + "minor": 4, + "date": "2021-02-26T19:56:15Z", + "eol": "2023-05-04T00:00:00Z" + }, + { + "major": 5, + "minor": 3, + "date": "2020-11-06T21:51:42Z", + "eol": "2022-02-26T00:00:00Z" + }, + { + "major": 5, + "minor": 2, + "date": "2020-10-09T12:46:09Z", + "eol": "2021-11-06T00:00:00Z" + }, + { + "major": 5, + "minor": 1, + "date": "2020-08-04T22:12:44Z", + "eol": "2021-10-09T00:00:00Z" + }, + { + "major": 5, + "minor": 0, + "date": "2020-07-23T17:55:07Z", + "eol": "2021-08-04T00:00:00Z" + }, + { + "major": 4, + "minor": 7, + "date": "2020-06-04T22:33:07Z", + "eol": "2021-07-23T00:00:00Z" + }, + { + "major": 4, + "minor": 6, + "date": "2020-05-27T01:18:19Z", + "eol": "2021-06-04T00:00:00Z" + }, + { + "major": 4, + "minor": 5, + "date": "2020-03-27T04:22:01Z", + "eol": "2021-05-27T00:00:00Z" + }, + { + "major": 4, + "minor": 4, + "date": "2020-01-15T21:31:46Z", + "eol": "2021-03-27T00:00:00Z" + }, + { + "major": 4, + "minor": 3, + "date": "2019-12-03T23:24:37Z", + "eol": "2021-01-15T00:00:00Z" + }, + { + "major": 4, + "minor": 2, + "date": "2019-10-25T20:47:24Z", + "eol": "2020-12-03T00:00:00Z" + }, + { + "major": 4, + "minor": 1, + "date": "2019-06-19T23:18:02Z", + "eol": "2020-10-25T00:00:00Z" + }, + { + "major": 4, + "minor": 0, + "date": "2019-05-10T18:16:54Z", + "eol": "2020-06-19T00:00:00Z" + }, + { + "major": 3, + "minor": 0, + "date": "2019-04-18T12:11:07Z", + "eol": "2020-05-10T00:00:00Z" + }, + { + "major": 2, + "minor": 14, + "date": "2018-12-06T00:49:22Z", + "eol": "2020-04-18T00:00:00Z" + }, + { + "major": 2, + "minor": 13, + "date": "2018-06-01T23:40:21Z", + "eol": "2019-12-06T00:00:00Z" + }, + { + "major": 2, + "minor": 12, + "date": "2018-04-23T04:16:42Z", + "eol": "2019-06-01T00:00:00Z" + }, + { + "major": 2, + "minor": 11, + "date": "2018-03-22T01:06:40Z", + "eol": "2019-04-23T00:00:00Z" + }, + { + "major": 2, + "minor": 10, + "date": "2018-02-02T04:23:57Z", + "eol": "2019-03-22T00:00:00Z" + }, + { + "major": 2, + "minor": 9, + "date": "2017-12-05T05:26:57Z", + "eol": "2019-02-02T00:00:00Z" + }, + { + "major": 2, + "minor": 8, + "date": "2017-10-13T21:20:27Z", + "eol": "2018-12-05T00:00:00Z" + }, + { + "major": 2, + "minor": 7, + "date": "2017-09-26T18:46:05Z", + "eol": "2018-10-13T00:00:00Z" + }, + { + "major": 2, + "minor": 6, + "date": "2017-08-26T00:55:05Z", + "eol": "2018-09-26T00:00:00Z" + }, + { + "major": 2, + "minor": 5, + "date": "2017-07-09T07:48:34Z", + "eol": "2018-08-26T00:00:00Z" + }, + { + "major": 2, + "minor": 4, + "date": "2017-06-13T17:52:37Z", + "eol": "2018-07-09T00:00:00Z" + }, + { + "major": 2, + "minor": 3, + "date": "2017-04-20T20:56:39Z", + "eol": "2018-06-13T00:00:00Z" + }, + { + "major": 2, + "minor": 2, + "date": "2017-04-06T05:07:58Z", + "eol": "2018-04-20T00:00:00Z" + }, + { + "major": 2, + "minor": 1, + "date": "2016-12-20T00:12:21Z", + "eol": "2018-04-06T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2016-09-01T18:00:00Z", + "eol": "2017-12-20T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2016-08-19T16:29:26Z", + "eol": "2017-09-01T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2016-07-13T19:45:55Z", + "eol": "2017-08-19T00:00:00Z" + } + ], + "vercel": [ + { + "major": 1, + "minor": 3, + "date": "2024-02-06T21:34:14Z", + "eol": null + }, + { + "major": 1, + "minor": 2, + "date": "2023-11-14T23:44:25Z", + "eol": "2025-02-06T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2023-08-14T23:12:38Z", + "eol": "2024-11-14T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2023-06-30T12:07:35Z", + "eol": "2024-08-14T00:00:00Z" + } + ], + "vue": [ + { + "major": 2, + "minor": 2, + "date": "2024-05-01T21:55:21Z", + "eol": null + }, + { + "major": 2, + "minor": 1, + "date": "2024-03-21T13:57:44Z", + "eol": "2025-05-01T00:00:00Z" + }, + { + "major": 2, + "minor": 0, + "date": "2023-06-30T19:58:44Z", + "eol": "2025-03-21T00:00:00Z" + }, + { + "major": 1, + "minor": 2, + "date": "2022-10-18T17:19:37Z", + "eol": "2024-06-30T00:00:00Z" + }, + { + "major": 1, + "minor": 1, + "date": "2022-10-05T18:22:46Z", + "eol": "2023-10-18T00:00:00Z" + }, + { + "major": 1, + "minor": 0, + "date": "2022-07-13T19:44:36Z", + "eol": "2023-10-05T00:00:00Z" + } + ] +} diff --git a/api/sdkmeta-js/src/data/repos.json b/api/sdkmeta-js/src/data/repos.json new file mode 100644 index 0000000..37653f5 --- /dev/null +++ b/api/sdkmeta-js/src/data/repos.json @@ -0,0 +1,92 @@ +{ + "akamai-base": { + "github": "launchdarkly/js-core" + }, + "akamai-edgekv": { + "github": "launchdarkly/js-core" + }, + "android": { + "github": "launchdarkly/android-client-sdk" + }, + "apex-server-sdk": { + "github": "launchdarkly/apex-server-sdk" + }, + "cloudflare": { + "github": "launchdarkly/js-core" + }, + "cpp-client-sdk": { + "github": "launchdarkly/cpp-sdks" + }, + "cpp-server-sdk": { + "github": "launchdarkly/cpp-sdks" + }, + "dotnet-client-sdk": { + "github": "launchdarkly/dotnet-core" + }, + "dotnet-server-sdk": { + "github": "launchdarkly/dotnet-core" + }, + "electron": { + "github": "launchdarkly/electron-client-sdk" + }, + "erlang-server-sdk": { + "github": "launchdarkly/erlang-server-sdk" + }, + "flutter-client-sdk": { + "github": "launchdarkly/flutter-client-sdk" + }, + "go-server-sdk": { + "github": "launchdarkly/go-server-sdk" + }, + "haskell-server-sdk": { + "github": "launchdarkly/haskell-server-sdk" + }, + "java-server-sdk": { + "github": "launchdarkly/java-core" + }, + "js-client-sdk": { + "github": "launchdarkly/js-client-sdk" + }, + "lua-server-sdk": { + "github": "launchdarkly/lua-server-sdk" + }, + "node-client-sdk": { + "github": "launchdarkly/node-client-sdk" + }, + "node-server": { + "github": "launchdarkly/js-core" + }, + "php-server-sdk": { + "github": "launchdarkly/php-server-sdk" + }, + "python-server-sdk": { + "github": "launchdarkly/python-server-sdk" + }, + "react-client-sdk": { + "github": "launchdarkly/react-client-sdk" + }, + "react-native": { + "github": "launchdarkly/js-core" + }, + "relay-proxy": { + "github": "launchdarkly/ld-relay" + }, + "roku": { + "github": "launchdarkly/roku-client-sdk" + }, + "ruby-server-sdk": { + "github": "launchdarkly/ruby-server-sdk" + }, + "rust-server-sdk": { + "github": "launchdarkly/rust-server-sdk" + }, + "swift-client-sdk": { + "github": "launchdarkly/ios-client-sdk" + }, + "vercel": { + "github": "launchdarkly/js-core" + }, + "vue": { + "github": "launchdarkly/vue-client-sdk" + } +} diff --git a/api/sdkmeta-js/src/data/types.json b/api/sdkmeta-js/src/data/types.json new file mode 100644 index 0000000..670b6bd --- /dev/null +++ b/api/sdkmeta-js/src/data/types.json @@ -0,0 +1,32 @@ +{ + "akamai-base": "edge", + "akamai-edgekv": "edge", + "android": "client-side", + "apex-server-sdk": "server-side", + "cloudflare": "edge", + "cpp-client-sdk": "client-side", + "cpp-server-sdk": "server-side", + "dotnet-client-sdk": "client-side", + "dotnet-server-sdk": "server-side", + "electron": "client-side", + "erlang-server-sdk": "server-side", + "flutter-client-sdk": "client-side", + "go-server-sdk": "server-side", + "haskell-server-sdk": "server-side", + "java-server-sdk": "server-side", + "js-client-sdk": "client-side", + "lua-server-sdk": "server-side", + "node-client-sdk": "client-side", + "node-server": "server-side", + "php-server-sdk": "server-side", + "python-server-sdk": "server-side", + "react-client-sdk": "client-side", + "react-native": "client-side", + "relay-proxy": "relay", + "roku": "client-side", + "ruby-server-sdk": "server-side", + "rust-server-sdk": "server-side", + "swift-client-sdk": "client-side", + "vercel": "edge", + "vue": "client-side" +} diff --git a/api/sdkmeta-js/tests/e2e.test.ts b/api/sdkmeta-js/tests/e2e.test.ts new file mode 100644 index 0000000..bd231af --- /dev/null +++ b/api/sdkmeta-js/tests/e2e.test.ts @@ -0,0 +1,24 @@ +import { Names, Repos, Types, Type, Popularity, Languages } from '../src/SDKMeta'; + +test('names', () => { + expect(Names['node-server']).toBe('Node.js Server SDK'); +}); + +test('repos', () => { + expect(Repos['node-server'].github).toBe('launchdarkly/js-core'); +}); + +test('languages', () => { + expect(Languages['node-server']).toEqual(['JavaScript', 'TypeScript']); +}); + +test('types', () => { + expect(Types['node-server']).toBe(Type.ServerSide); + expect(Types['node-server']).toBe('server-side'); +}); + + + +test('popularity', () => { + expect(Popularity['node-server']).toBe(2); +}); diff --git a/api/sdkmeta-js/tsconfig.json b/api/sdkmeta-js/tsconfig.json new file mode 100644 index 0000000..017356d --- /dev/null +++ b/api/sdkmeta-js/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "module": "node16", + "target": "es2019", + "verbatimModuleSyntax": true, + "sourceMap": true, + "declarationMap": true, + "declaration": true, + "outDir": "dist", + "strict": true, + "resolveJsonModule": true, + }, + "include": ["src/**/*.ts"] +} diff --git a/api/sdkmeta-js/tsconfig.test.json b/api/sdkmeta-js/tsconfig.test.json new file mode 100644 index 0000000..37231db --- /dev/null +++ b/api/sdkmeta-js/tsconfig.test.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "target": "es2019", + "sourceMap": true, + "declarationMap": true, + "declaration": true, + "outDir": "dist", + "strict": true, + "resolveJsonModule": true, + "esModuleInterop": true + }, + "include": ["src/**/*.ts"] +} diff --git a/api/sdkmeta-js/tsup.config.ts b/api/sdkmeta-js/tsup.config.ts new file mode 100644 index 0000000..326c2aa --- /dev/null +++ b/api/sdkmeta-js/tsup.config.ts @@ -0,0 +1,16 @@ +// It is a dev dependency and the linter doesn't understand. +// eslint-disable-next-line import/no-extraneous-dependencies +import { defineConfig } from 'tsup'; + +export default defineConfig({ + entry: { + SDKMeta: 'src/SDKMeta.ts', + }, + minify: true, + format: ['esm', 'cjs'], + splitting: false, + sourcemap: true, + clean: true, + dts: true, + metafile: true, +}); diff --git a/scripts/generate-products.sh b/scripts/generate-products.sh index 0c6f0cb..02f6b30 100755 --- a/scripts/generate-products.sh +++ b/scripts/generate-products.sh @@ -9,6 +9,7 @@ set -e # Cleanup existing products so we have a clean slate. rm products/*.json rm api/sdkmeta/data/*.json +rm api/sdkmeta-js/src/data/*.json sqlite3 -json metadata.sqlite3 "SELECT * from sdk_languages;" | jq -S 'reduce .[] as $item ({}; .[$item.id] += [$item.language])' > products/languages.json @@ -37,3 +38,6 @@ sqlite3 -json metadata.sqlite3 "SELECT * from sdk_popularity;" | # JSON products are duplicated into a subdirectory of the API Go module, because the 'embed' package only allows # us to embed files that are in the same directory tree as the module. cp products/*.json api/sdkmeta/data/ + +# Same for the Typescript module. +cp products/*.json api/sdkmeta-js/src/data/