euclid-ndk 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +603 -0
  3. package/dist/auth/index.d.ts +18 -0
  4. package/dist/auth/index.d.ts.map +1 -0
  5. package/dist/auth/index.js +17 -0
  6. package/dist/auth/index.js.map +1 -0
  7. package/dist/auth/rfc9421.d.ts +112 -0
  8. package/dist/auth/rfc9421.d.ts.map +1 -0
  9. package/dist/auth/rfc9421.js +452 -0
  10. package/dist/auth/rfc9421.js.map +1 -0
  11. package/dist/auth/scheme.d.ts +46 -0
  12. package/dist/auth/scheme.d.ts.map +1 -0
  13. package/dist/auth/scheme.js +44 -0
  14. package/dist/auth/scheme.js.map +1 -0
  15. package/dist/auth/signable.d.ts +37 -0
  16. package/dist/auth/signable.d.ts.map +1 -0
  17. package/dist/auth/signable.js +70 -0
  18. package/dist/auth/signable.js.map +1 -0
  19. package/dist/auth/sigv4.d.ts +72 -0
  20. package/dist/auth/sigv4.d.ts.map +1 -0
  21. package/dist/auth/sigv4.js +227 -0
  22. package/dist/auth/sigv4.js.map +1 -0
  23. package/dist/credentials.d.ts +56 -0
  24. package/dist/credentials.d.ts.map +1 -0
  25. package/dist/credentials.js +135 -0
  26. package/dist/credentials.js.map +1 -0
  27. package/dist/dto/com.d.ts +101 -0
  28. package/dist/dto/com.d.ts.map +1 -0
  29. package/dist/dto/com.js +132 -0
  30. package/dist/dto/com.js.map +1 -0
  31. package/dist/dto/eag.d.ts +104 -0
  32. package/dist/dto/eag.d.ts.map +1 -0
  33. package/dist/dto/eag.js +70 -0
  34. package/dist/dto/eag.js.map +1 -0
  35. package/dist/dto/eam.d.ts +105 -0
  36. package/dist/dto/eam.d.ts.map +1 -0
  37. package/dist/dto/eam.js +98 -0
  38. package/dist/dto/eam.js.map +1 -0
  39. package/dist/dto/eap.d.ts +88 -0
  40. package/dist/dto/eap.d.ts.map +1 -0
  41. package/dist/dto/eap.js +54 -0
  42. package/dist/dto/eap.js.map +1 -0
  43. package/dist/dto/ekm.d.ts +109 -0
  44. package/dist/dto/ekm.d.ts.map +1 -0
  45. package/dist/dto/ekm.js +78 -0
  46. package/dist/dto/ekm.js.map +1 -0
  47. package/dist/dto/ekv.d.ts +73 -0
  48. package/dist/dto/ekv.d.ts.map +1 -0
  49. package/dist/dto/ekv.js +45 -0
  50. package/dist/dto/ekv.js.map +1 -0
  51. package/dist/dto/ens.d.ts +84 -0
  52. package/dist/dto/ens.d.ts.map +1 -0
  53. package/dist/dto/ens.js +72 -0
  54. package/dist/dto/ens.js.map +1 -0
  55. package/dist/dto/eqs.d.ts +160 -0
  56. package/dist/dto/eqs.d.ts.map +1 -0
  57. package/dist/dto/eqs.js +120 -0
  58. package/dist/dto/eqs.js.map +1 -0
  59. package/dist/dto/esm.d.ts +192 -0
  60. package/dist/dto/esm.d.ts.map +1 -0
  61. package/dist/dto/esm.js +147 -0
  62. package/dist/dto/esm.js.map +1 -0
  63. package/dist/dto/ess.d.ts +49 -0
  64. package/dist/dto/ess.d.ts.map +1 -0
  65. package/dist/dto/ess.js +30 -0
  66. package/dist/dto/ess.js.map +1 -0
  67. package/dist/dto/json.d.ts +24 -0
  68. package/dist/dto/json.d.ts.map +1 -0
  69. package/dist/dto/json.js +47 -0
  70. package/dist/dto/json.js.map +1 -0
  71. package/dist/errors.d.ts +40 -0
  72. package/dist/errors.d.ts.map +1 -0
  73. package/dist/errors.js +73 -0
  74. package/dist/errors.js.map +1 -0
  75. package/dist/http/client.d.ts +96 -0
  76. package/dist/http/client.d.ts.map +1 -0
  77. package/dist/http/client.js +258 -0
  78. package/dist/http/client.js.map +1 -0
  79. package/dist/index.d.ts +93 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +110 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/modules/base.d.ts +121 -0
  84. package/dist/modules/base.d.ts.map +1 -0
  85. package/dist/modules/base.js +142 -0
  86. package/dist/modules/base.js.map +1 -0
  87. package/dist/modules/eag.d.ts +166 -0
  88. package/dist/modules/eag.d.ts.map +1 -0
  89. package/dist/modules/eag.js +189 -0
  90. package/dist/modules/eag.js.map +1 -0
  91. package/dist/modules/eam.d.ts +314 -0
  92. package/dist/modules/eam.d.ts.map +1 -0
  93. package/dist/modules/eam.js +641 -0
  94. package/dist/modules/eam.js.map +1 -0
  95. package/dist/modules/eap.d.ts +204 -0
  96. package/dist/modules/eap.d.ts.map +1 -0
  97. package/dist/modules/eap.js +218 -0
  98. package/dist/modules/eap.js.map +1 -0
  99. package/dist/modules/ekm.d.ts +182 -0
  100. package/dist/modules/ekm.d.ts.map +1 -0
  101. package/dist/modules/ekm.js +228 -0
  102. package/dist/modules/ekm.js.map +1 -0
  103. package/dist/modules/ekv.d.ts +189 -0
  104. package/dist/modules/ekv.d.ts.map +1 -0
  105. package/dist/modules/ekv.js +212 -0
  106. package/dist/modules/ekv.js.map +1 -0
  107. package/dist/modules/ens.d.ts +122 -0
  108. package/dist/modules/ens.d.ts.map +1 -0
  109. package/dist/modules/ens.js +167 -0
  110. package/dist/modules/ens.js.map +1 -0
  111. package/dist/modules/eqs.d.ts +283 -0
  112. package/dist/modules/eqs.d.ts.map +1 -0
  113. package/dist/modules/eqs.js +355 -0
  114. package/dist/modules/eqs.js.map +1 -0
  115. package/dist/modules/esm.d.ts +358 -0
  116. package/dist/modules/esm.d.ts.map +1 -0
  117. package/dist/modules/esm.js +660 -0
  118. package/dist/modules/esm.js.map +1 -0
  119. package/dist/modules/ess.d.ts +96 -0
  120. package/dist/modules/ess.d.ts.map +1 -0
  121. package/dist/modules/ess.js +110 -0
  122. package/dist/modules/ess.js.map +1 -0
  123. package/dist/url.d.ts +31 -0
  124. package/dist/url.d.ts.map +1 -0
  125. package/dist/url.js +47 -0
  126. package/dist/url.js.map +1 -0
  127. package/package.json +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esm.js","sourceRoot":"","sources":["../../src/modules/esm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * ESS - euclid's secret store: values kept encrypted under an EKM key, fetched one at a time.
3
+ *
4
+ * One object, {@link EuclidEss}, built from a session that has already logged in:
5
+ *
6
+ * ```ts
7
+ * const ess = session.ess();
8
+ * await ess.createSecret("db-password", "hunter2", { description: "the reporting database" });
9
+ *
10
+ * const password = (await ess.getSecret("db-password")).value;
11
+ * ```
12
+ *
13
+ * The value is encrypted with EKM before it is stored, so a secret's life is tied to a key's: deleting that
14
+ * key there is what makes the value unrecoverable, whatever ESS still says about it.
15
+ *
16
+ * Only {@link EuclidEss.getSecret} answers with a value. Everything else - listing, rotating, tagging -
17
+ * answers with metadata alone, so those calls can be logged and printed without being the thing that leaks
18
+ * it.
19
+ */
20
+ import { type Page } from "../dto/eam.js";
21
+ import { type DeleteSecretResult, type Secret, type SecretValue } from "../dto/ess.js";
22
+ import { ModuleClient, type ListOptions } from "./base.js";
23
+ import type { EuclidSession } from "./eam.js";
24
+ export declare const TARGET = "ess";
25
+ /** What a secret is stored with besides its value. */
26
+ export interface CreateSecretOptions {
27
+ description?: string;
28
+ /**
29
+ * The EKM key to encrypt it under. Left empty, the server picks the account's own; naming one puts this
30
+ * secret's life in the hands of that key, which is the point when a set of secrets should be revocable
31
+ * together.
32
+ */
33
+ keyErn?: string;
34
+ }
35
+ /**
36
+ * What an update changes - and only what it names.
37
+ *
38
+ * The distinction the server draws is between a field being sent and not being sent rather than between its
39
+ * values, so leaving `description` out leaves the stored description alone while passing `""` clears it.
40
+ * The same goes for `value`: leaving it out leaves it, and an empty string stores an empty one, because an
41
+ * empty string is a value somebody may legitimately have.
42
+ *
43
+ * Naming a `keyErn` re-encrypts the value under that key, which is how a secret is moved off a key that is
44
+ * being retired.
45
+ */
46
+ export interface UpdateSecretChanges {
47
+ value?: string;
48
+ description?: string;
49
+ keyErn?: string;
50
+ }
51
+ /**
52
+ * ESS's operations, on the credentials of the session that created it.
53
+ *
54
+ * Built by {@link EuclidSession.ess} rather than directly, so that it shares that session's identity,
55
+ * namespace and connection settings - and follows them as they change.
56
+ */
57
+ export declare class EuclidEss extends ModuleClient {
58
+ #private;
59
+ constructor(session: EuclidSession);
60
+ /** Stores a secret, and answers with its metadata - never the value it was just given. */
61
+ createSecret(name: string, value: string, options?: CreateSecretOptions): Promise<Secret>;
62
+ /**
63
+ * One secret, decrypted: `value` is the value, `secret` the metadata around it.
64
+ *
65
+ * The only call in this SDK that answers with a secret's value, and so the point at which the value
66
+ * enters the process.
67
+ */
68
+ getSecret(name: string): Promise<SecretValue>;
69
+ /** One page of secrets, and how many exist in total. Metadata only. */
70
+ listSecrets(options?: ListOptions): Promise<Page<Secret>>;
71
+ /** Replaces a secret's value, which is what a rotation is and what bumps its version. */
72
+ rotateSecret(name: string, value: string): Promise<Secret>;
73
+ /**
74
+ * Changes a secret that already exists: its value, its description, the key it is under, or any
75
+ * combination. Only what `changes` names changes - see {@link UpdateSecretChanges}.
76
+ *
77
+ * @throws {Error} if none of the three was named, which the server refuses anyway - this just says so
78
+ * before the round trip.
79
+ */
80
+ updateSecret(name: string, changes: UpdateSecretChanges): Promise<Secret>;
81
+ /** Deletes a secret, outright. The value is gone; the key it was under is left alone. */
82
+ deleteSecret(name: string): Promise<DeleteSecretResult>;
83
+ /**
84
+ * Tags a secret, and answers with it as it now reads. A tag already there has its value replaced - ESS
85
+ * has no separate set-secret-tag action to distinguish the two.
86
+ */
87
+ addSecretTag(name: string, key: string, value: string): Promise<Secret>;
88
+ /** Removes a tag from a secret, and answers with it as it now reads. */
89
+ deleteSecretTag(name: string, key: string): Promise<Secret>;
90
+ /**
91
+ * ESS's own metrics, as the server collects them. Answered unparsed - the shape belongs to the monitoring
92
+ * module rather than to ESS.
93
+ */
94
+ metrics(): Promise<Record<string, unknown>>;
95
+ }
96
+ //# sourceMappingURL=ess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ess.d.ts","sourceRoot":"","sources":["../../src/modules/ess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAe,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,YAAY;;gBAC7B,OAAO,EAAE,aAAa;IAIlC,0FAA0F;IACpF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IASnG;;;;;OAKG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAInD,uEAAuE;IACjE,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAInE,yFAAyF;IACnF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE;;;;;;OAMG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAc/E,yFAAyF;IACnF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI7D;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7E,wEAAwE;IAClE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjE;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CASlD"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * ESS - euclid's secret store: values kept encrypted under an EKM key, fetched one at a time.
3
+ *
4
+ * One object, {@link EuclidEss}, built from a session that has already logged in:
5
+ *
6
+ * ```ts
7
+ * const ess = session.ess();
8
+ * await ess.createSecret("db-password", "hunter2", { description: "the reporting database" });
9
+ *
10
+ * const password = (await ess.getSecret("db-password")).value;
11
+ * ```
12
+ *
13
+ * The value is encrypted with EKM before it is stored, so a secret's life is tied to a key's: deleting that
14
+ * key there is what makes the value unrecoverable, whatever ESS still says about it.
15
+ *
16
+ * Only {@link EuclidEss.getSecret} answers with a value. Everything else - listing, rotating, tagging -
17
+ * answers with metadata alone, so those calls can be logged and printed without being the thing that leaks
18
+ * it.
19
+ */
20
+ import { toPage } from "../dto/eam.js";
21
+ import { toDeleteSecretResult, toSecret, toSecretValue, } from "../dto/ess.js";
22
+ import { listPayload, ModuleClient } from "./base.js";
23
+ export const TARGET = "ess";
24
+ /**
25
+ * ESS's operations, on the credentials of the session that created it.
26
+ *
27
+ * Built by {@link EuclidSession.ess} rather than directly, so that it shares that session's identity,
28
+ * namespace and connection settings - and follows them as they change.
29
+ */
30
+ export class EuclidEss extends ModuleClient {
31
+ constructor(session) {
32
+ super(session, { target: TARGET });
33
+ }
34
+ /** Stores a secret, and answers with its metadata - never the value it was just given. */
35
+ async createSecret(name, value, options = {}) {
36
+ return this.#secret("create-secret", {
37
+ name,
38
+ value,
39
+ description: options.description ?? "",
40
+ keyErn: options.keyErn ?? "",
41
+ });
42
+ }
43
+ /**
44
+ * One secret, decrypted: `value` is the value, `secret` the metadata around it.
45
+ *
46
+ * The only call in this SDK that answers with a secret's value, and so the point at which the value
47
+ * enters the process.
48
+ */
49
+ async getSecret(name) {
50
+ return toSecretValue(await this.call("get-secret", { name }));
51
+ }
52
+ /** One page of secrets, and how many exist in total. Metadata only. */
53
+ async listSecrets(options = {}) {
54
+ return toPage(await this.call("list-secrets", listPayload(options, "name")), "secrets", toSecret);
55
+ }
56
+ /** Replaces a secret's value, which is what a rotation is and what bumps its version. */
57
+ async rotateSecret(name, value) {
58
+ return this.updateSecret(name, { value });
59
+ }
60
+ /**
61
+ * Changes a secret that already exists: its value, its description, the key it is under, or any
62
+ * combination. Only what `changes` names changes - see {@link UpdateSecretChanges}.
63
+ *
64
+ * @throws {Error} if none of the three was named, which the server refuses anyway - this just says so
65
+ * before the round trip.
66
+ */
67
+ async updateSecret(name, changes) {
68
+ if (changes.value === undefined && changes.description === undefined && !changes.keyErn) {
69
+ throw new Error("updateSecret needs a value, a description or a keyErn to change");
70
+ }
71
+ const payload = { name };
72
+ if (changes.value !== undefined)
73
+ payload["value"] = changes.value;
74
+ if (changes.description !== undefined)
75
+ payload["description"] = changes.description;
76
+ // Truthy rather than defined: there is no such thing as moving a secret onto the empty key, so an
77
+ // empty string here means "leave it where it is" rather than a value to send.
78
+ if (changes.keyErn)
79
+ payload["keyErn"] = changes.keyErn;
80
+ return this.#secret("update-secret", payload);
81
+ }
82
+ /** Deletes a secret, outright. The value is gone; the key it was under is left alone. */
83
+ async deleteSecret(name) {
84
+ return toDeleteSecretResult(await this.call("delete-secret", { name }));
85
+ }
86
+ /**
87
+ * Tags a secret, and answers with it as it now reads. A tag already there has its value replaced - ESS
88
+ * has no separate set-secret-tag action to distinguish the two.
89
+ */
90
+ async addSecretTag(name, key, value) {
91
+ return this.#secret("add-secret-tag", { name, key, value });
92
+ }
93
+ /** Removes a tag from a secret, and answers with it as it now reads. */
94
+ async deleteSecretTag(name, key) {
95
+ return this.#secret("delete-secret-tag", { name, key });
96
+ }
97
+ /**
98
+ * ESS's own metrics, as the server collects them. Answered unparsed - the shape belongs to the monitoring
99
+ * module rather than to ESS.
100
+ */
101
+ async metrics() {
102
+ return this.call("get-metrics");
103
+ }
104
+ /** The actions that answer with one secret's metadata, wrapped in a `secret` field. */
105
+ async #secret(action, payload) {
106
+ const response = await this.call(action, payload);
107
+ return toSecret(response["secret"]);
108
+ }
109
+ }
110
+ //# sourceMappingURL=ess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ess.js","sourceRoot":"","sources":["../../src/modules/ess.ts"],"names":[],"mappings":"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"}
package/dist/url.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Small URL helpers, kept in one place because a signature depends on getting them right.
3
+ *
4
+ * `host` is a signed header under both schemes, and `@authority` is a signed component under
5
+ * RFC 9421. If what a client signs is not byte-for-byte what it sends, the signature fails on
6
+ * arrival and the failure says nothing about why - so the value that goes into the signature and
7
+ * the value that goes on the wire are computed here, once, by the same function.
8
+ *
9
+ * Parsed by hand rather than with `new URL()`, which normalises a default port away: euclid's
10
+ * server compares the Host header it received against the one the signature covers, so
11
+ * `https://host:443` has to keep the port it was written with.
12
+ */
13
+ /** `https://host/` and `https://host` name the same server; this picks the second spelling. */
14
+ export declare function stripTrailingSlash(url: string): string;
15
+ /** The URL's scheme, lowercase, defaulting to https. */
16
+ export declare function schemeOf(url: string): string;
17
+ /**
18
+ * The `Host` header for this URL: the authority as written, minus any userinfo.
19
+ *
20
+ * Deliberately preserves a port that was written out even when it is the scheme's default, and
21
+ * omits one that was not. The header is sent explicitly rather than left to node's http client,
22
+ * because that omits a default port and a signature made over the other spelling would not verify.
23
+ */
24
+ export declare function hostHeaderOf(url: string): string;
25
+ /**
26
+ * The RFC 9421 `@authority`: the host header, minus the port when it is the scheme's default.
27
+ *
28
+ * §2.2.3 requires the default port to be dropped, which is why this is not simply the Host header.
29
+ */
30
+ export declare function authorityOf(url: string): string;
31
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C"}
package/dist/url.js ADDED
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Small URL helpers, kept in one place because a signature depends on getting them right.
3
+ *
4
+ * `host` is a signed header under both schemes, and `@authority` is a signed component under
5
+ * RFC 9421. If what a client signs is not byte-for-byte what it sends, the signature fails on
6
+ * arrival and the failure says nothing about why - so the value that goes into the signature and
7
+ * the value that goes on the wire are computed here, once, by the same function.
8
+ *
9
+ * Parsed by hand rather than with `new URL()`, which normalises a default port away: euclid's
10
+ * server compares the Host header it received against the one the signature covers, so
11
+ * `https://host:443` has to keep the port it was written with.
12
+ */
13
+ /** `https://host/` and `https://host` name the same server; this picks the second spelling. */
14
+ export function stripTrailingSlash(url) {
15
+ return url.endsWith("/") ? url.slice(0, -1) : url;
16
+ }
17
+ /** The URL's scheme, lowercase, defaulting to https. */
18
+ export function schemeOf(url) {
19
+ const separator = url.indexOf("://");
20
+ return separator < 0 ? "https" : url.slice(0, separator).toLowerCase();
21
+ }
22
+ /**
23
+ * The `Host` header for this URL: the authority as written, minus any userinfo.
24
+ *
25
+ * Deliberately preserves a port that was written out even when it is the scheme's default, and
26
+ * omits one that was not. The header is sent explicitly rather than left to node's http client,
27
+ * because that omits a default port and a signature made over the other spelling would not verify.
28
+ */
29
+ export function hostHeaderOf(url) {
30
+ const separator = url.indexOf("://");
31
+ const rest = separator < 0 ? url : url.slice(separator + 3);
32
+ const authority = rest.split(/[/?#]/, 1)[0] ?? "";
33
+ const at = authority.lastIndexOf("@");
34
+ return (at < 0 ? authority : authority.slice(at + 1)).toLowerCase();
35
+ }
36
+ /**
37
+ * The RFC 9421 `@authority`: the host header, minus the port when it is the scheme's default.
38
+ *
39
+ * §2.2.3 requires the default port to be dropped, which is why this is not simply the Host header.
40
+ */
41
+ export function authorityOf(url) {
42
+ const host = hostHeaderOf(url);
43
+ const scheme = schemeOf(url);
44
+ const defaultPort = scheme === "https" ? ":443" : scheme === "http" ? ":80" : "";
45
+ return defaultPort && host.endsWith(defaultPort) ? host.slice(0, -defaultPort.length) : host;
46
+ }
47
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpD,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACtE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,OAAO,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "euclid-ndk",
3
+ "version": "0.2.0",
4
+ "description": "Node.js SDK for the euclid server",
5
+ "keywords": [
6
+ "euclid",
7
+ "sdk",
8
+ "eam",
9
+ "sigv4",
10
+ "rfc9421"
11
+ ],
12
+ "homepage": "https://github.com/jensvogt/euclid-ndk",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/jensvogt/euclid-ndk.git"
16
+ },
17
+ "bugs": "https://github.com/jensvogt/euclid-ndk/issues",
18
+ "license": "Apache-2.0",
19
+ "author": "Dr. Jens Vogt <jensvogt47@gmail.com>",
20
+ "type": "module",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js"
25
+ }
26
+ },
27
+ "types": "./dist/index.d.ts",
28
+ "files": [
29
+ "dist",
30
+ "README.md",
31
+ "LICENSE"
32
+ ],
33
+ "engines": {
34
+ "node": ">=20"
35
+ },
36
+ "scripts": {
37
+ "build": "tsc --project tsconfig.build.json",
38
+ "pretest": "tsc --project tsconfig.json",
39
+ "test": "node --test build/test/*.test.js",
40
+ "prepublishOnly": "npm run build && npm test"
41
+ },
42
+ "dependencies": {},
43
+ "devDependencies": {
44
+ "@types/node": "^22.0.0",
45
+ "typescript": "^5.6.0"
46
+ }
47
+ }