Skip to content
This repository was archived by the owner on Jul 1, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .speakeasy/gen.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ id: 2f8b2839-3001-46b4-b5e0-cec0aad583ed
management:
docChecksum: 11b8c1e1d3f9d5dab18c36b33f81200d
docVersion: 0.2.0
speakeasyVersion: 1.300.0
generationVersion: 2.338.14
releaseVersion: 1.0.1
configChecksum: e72b96a6dad7207536f38fdf46f00942
speakeasyVersion: 1.305.0
generationVersion: 2.340.3
releaseVersion: 1.0.2
configChecksum: 1c8135d69f4f7bf4d8610cbbc17b7d42
repoURL: https://github.com/StyraInc/opa-typescript.git
installationURL: https://github.com/StyraInc/opa-typescript
published: true
features:
typescript:
additionalDependencies: 0.1.0
constsAndDefaults: 0.1.5
core: 3.9.12
core: 3.9.13
examples: 2.81.4
flattening: 2.81.1
globalSecurityCallbacks: 0.1.0
Expand Down
2 changes: 1 addition & 1 deletion .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ generation:
auth:
oAuth2ClientCredentialsEnabled: false
typescript:
version: 1.0.1
version: 1.0.2
additionalDependencies:
dependencies: {}
devDependencies:
Expand Down
10 changes: 5 additions & 5 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
speakeasyVersion: 1.300.0
speakeasyVersion: 1.305.0
sources:
openapi:
sourceNamespace: openapi
sourceRevisionDigest: sha256:547cdca6b7559fd5773972a2df2f5a92bc7fee20ec5044f055058f4f31f49622
sourceBlobDigest: sha256:ed87807bf992a3c96bff2d5560860f030ddf4b98f8371948d055d1f5c69a4e48
sourceRevisionDigest: sha256:9a15ec7e3a6fec85981dcbd567dd1354513dec181ce16d910cf942f72cd1143b
sourceBlobDigest: sha256:2488306364e9a2389260ae2736991d7fe45dbbe54e9590935c09843697cfb064
tags:
- latest
- main
targets:
first-target:
source: openapi
sourceNamespace: openapi
sourceRevisionDigest: sha256:547cdca6b7559fd5773972a2df2f5a92bc7fee20ec5044f055058f4f31f49622
sourceBlobDigest: sha256:ed87807bf992a3c96bff2d5560860f030ddf4b98f8371948d055d1f5c69a4e48
sourceRevisionDigest: sha256:9a15ec7e3a6fec85981dcbd567dd1354513dec181ce16d910cf942f72cd1143b
sourceBlobDigest: sha256:2488306364e9a2389260ae2736991d7fe45dbbe54e9590935c09843697cfb064
outLocation: /github/workspace/repo
workflow:
workflowVersion: 1.0.0
Expand Down
12 changes: 11 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -268,4 +268,14 @@ Based on:
### Generated
- [typescript v1.0.1] .
### Releases
- [NPM v1.0.1] https://www.npmjs.com/package/@styra/opa/v/1.0.1 - .
- [NPM v1.0.1] https://www.npmjs.com/package/@styra/opa/v/1.0.1 - .

## 2024-06-12 07:34:05
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.305.0 (2.340.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v1.0.2] .
### Releases
- [NPM v1.0.2] https://www.npmjs.com/package/@styra/opa/v/1.0.2 - .
2 changes: 1 addition & 1 deletion jsr.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

{
"name": "@styra/opa",
"version": "1.0.1",
"version": "1.0.2",
"exports": {
".": "./src/index.ts",
"./sdk/models/errors": "./src/sdk/models/errors/index.ts",
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@styra/opa",
"version": "1.0.1",
"version": "1.0.2",
"author": "Styra",
"main": "./index.js",
"sideEffects": false,
Expand Down
6 changes: 3 additions & 3 deletions src/lib/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
export const SDK_METADATA = {
language: "typescript",
openapiDocVersion: "0.2.0",
sdkVersion: "1.0.1",
genVersion: "2.338.14",
userAgent: "speakeasy-sdk/typescript 1.0.1 2.338.14 0.2.0 @styra/opa",
sdkVersion: "1.0.2",
genVersion: "2.340.3",
userAgent: "speakeasy-sdk/typescript 1.0.2 2.340.3 0.2.0 @styra/opa",
} as const;
46 changes: 46 additions & 0 deletions src/lib/encodings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -383,3 +383,49 @@ function mapDefinedEntries<K, V, R>(

return acc;
}

export function queryJoin(...args: string[]): string {
return args.filter(Boolean).join("&");
}

type QueryEncoderOptions = {
explode?: boolean;
charEncoding?: "percent" | "none";
};

type QueryEncoder = (
key: string,
value: unknown,
options?: QueryEncoderOptions,
) => string;

type BulkQueryEncoder = (
values: Record<string, unknown>,
options?: QueryEncoderOptions,
) => string;

export function queryEncoder(f: QueryEncoder): BulkQueryEncoder {
const bulkEncode = function (
values: Record<string, unknown>,
options?: QueryEncoderOptions,
): string {
const opts: QueryEncoderOptions = {
...options,
explode: options?.explode ?? true,
charEncoding: options?.charEncoding ?? "percent",
};

const encoded = Object.entries(values).map(([key, value]) => {
return f(key, value, opts);
});
return queryJoin(...encoded);
};

return bulkEncode;
}

export const encodeJSONQuery = queryEncoder(encodeJSON);
export const encodeFormQuery = queryEncoder(encodeForm);
export const encodeSpaceDelimitedQuery = queryEncoder(encodeSpaceDelimited);
export const encodePipeDelimitedQuery = queryEncoder(encodePipeDelimited);
export const encodeDeepObjectQuery = queryEncoder(encodeDeepObject);
123 changes: 37 additions & 86 deletions src/sdk/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@

import { SDKHooks } from "../hooks";
import { SDK_METADATA, SDKOptions, serverURLFromOptions } from "../lib/config";
import * as enc$ from "../lib/encodings";
import {
encodeFormQuery as encodeFormQuery$,
encodeJSON as encodeJSON$,
encodeSimple as encodeSimple$,
} from "../lib/encodings";
import { HTTPClient } from "../lib/http";
import * as schemas$ from "../lib/schemas";
import { ClientSDK, RequestOptions } from "../lib/sdks";
Expand Down Expand Up @@ -64,19 +68,17 @@ export class OpaApiClient extends ClientSDK {
operations.ExecuteDefaultPolicyWithInputRequest$.outboundSchema.parse(value$),
"Input validation failed"
);
const body$ = enc$.encodeJSON("body", payload$.input, { explode: true });
const body$ = encodeJSON$("body", payload$.input, { explode: true });

const path$ = this.templateURLComponent("/")();

const query$ = [
enc$.encodeForm("pretty", payload$.pretty, { explode: true, charEncoding: "percent" }),
]
.filter(Boolean)
.join("&");
const query$ = encodeFormQuery$({
pretty: payload$.pretty,
});

headers$.set(
"Accept-Encoding",
enc$.encodeSimple("Accept-Encoding", payload$["Accept-Encoding"], {
encodeSimple$("Accept-Encoding", payload$["Accept-Encoding"], {
explode: false,
charEncoding: "none",
})
Expand Down Expand Up @@ -133,42 +135,22 @@ export class OpaApiClient extends ClientSDK {
const body$ = null;

const pathParams$ = {
path: enc$.encodeSimple("path", payload$.path, {
explode: false,
charEncoding: "percent",
}),
path: encodeSimple$("path", payload$.path, { explode: false, charEncoding: "percent" }),
};
const path$ = this.templateURLComponent("/v1/data/{path}")(pathParams$);

const query$ = [
enc$.encodeForm("explain", payload$.explain, {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("instrument", payload$.instrument, {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("metrics", payload$.metrics, {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("pretty", payload$.pretty, { explode: true, charEncoding: "percent" }),
enc$.encodeForm("provenance", payload$.provenance, {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("strict-builtin-errors", payload$["strict-builtin-errors"], {
explode: true,
charEncoding: "percent",
}),
]
.filter(Boolean)
.join("&");
const query$ = encodeFormQuery$({
pretty: payload$.pretty,
provenance: payload$.provenance,
explain: payload$.explain,
metrics: payload$.metrics,
instrument: payload$.instrument,
"strict-builtin-errors": payload$["strict-builtin-errors"],
});

headers$.set(
"Accept-Encoding",
enc$.encodeSimple("Accept-Encoding", payload$["Accept-Encoding"], {
encodeSimple$("Accept-Encoding", payload$["Accept-Encoding"], {
explode: false,
charEncoding: "none",
})
Expand Down Expand Up @@ -219,52 +201,32 @@ export class OpaApiClient extends ClientSDK {
(value$) => operations.ExecutePolicyWithInputRequest$.outboundSchema.parse(value$),
"Input validation failed"
);
const body$ = enc$.encodeJSON("body", payload$.RequestBody, { explode: true });
const body$ = encodeJSON$("body", payload$.RequestBody, { explode: true });

const pathParams$ = {
path: enc$.encodeSimple("path", payload$.path, {
explode: false,
charEncoding: "percent",
}),
path: encodeSimple$("path", payload$.path, { explode: false, charEncoding: "percent" }),
};
const path$ = this.templateURLComponent("/v1/data/{path}")(pathParams$);

const query$ = [
enc$.encodeForm("explain", payload$.explain, {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("instrument", payload$.instrument, {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("metrics", payload$.metrics, {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("pretty", payload$.pretty, { explode: true, charEncoding: "percent" }),
enc$.encodeForm("provenance", payload$.provenance, {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("strict-builtin-errors", payload$["strict-builtin-errors"], {
explode: true,
charEncoding: "percent",
}),
]
.filter(Boolean)
.join("&");
const query$ = encodeFormQuery$({
pretty: payload$.pretty,
provenance: payload$.provenance,
explain: payload$.explain,
metrics: payload$.metrics,
instrument: payload$.instrument,
"strict-builtin-errors": payload$["strict-builtin-errors"],
});

headers$.set(
"Accept-Encoding",
enc$.encodeSimple("Accept-Encoding", payload$["Accept-Encoding"], {
encodeSimple$("Accept-Encoding", payload$["Accept-Encoding"], {
explode: false,
charEncoding: "none",
})
);
headers$.set(
"Content-Encoding",
enc$.encodeSimple("Content-Encoding", payload$["Content-Encoding"], {
encodeSimple$("Content-Encoding", payload$["Content-Encoding"], {
explode: false,
charEncoding: "none",
})
Expand Down Expand Up @@ -331,22 +293,11 @@ export class OpaApiClient extends ClientSDK {

const path$ = this.templateURLComponent("/health")();

const query$ = [
enc$.encodeForm("bundles", payload$.bundles, {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("exclude-plugin", payload$["exclude-plugin"], {
explode: true,
charEncoding: "percent",
}),
enc$.encodeForm("plugins", payload$.plugins, {
explode: true,
charEncoding: "percent",
}),
]
.filter(Boolean)
.join("&");
const query$ = encodeFormQuery$({
"exclude-plugin": payload$["exclude-plugin"],
bundles: payload$.bundles,
plugins: payload$.plugins,
});

const context = { operationID: "health", oAuth2Scopes: [], securitySource: null };

Expand Down