@hypequery/protocol 0.15.0 → 0.17.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.
- package/dist/cache-preimages/cache-preimages.d.ts +21 -0
- package/dist/cache-preimages/cache-preimages.d.ts.map +1 -0
- package/dist/cache-preimages/cache-preimages.js +143 -0
- package/dist/cache-preimages/index.d.ts +3 -0
- package/dist/cache-preimages/index.d.ts.map +1 -0
- package/dist/cache-preimages/index.js +1 -0
- package/dist/cache-preimages/types.d.ts +29 -0
- package/dist/cache-preimages/types.d.ts.map +1 -0
- package/dist/cache-preimages/types.js +1 -0
- package/dist/deployments/codec.d.ts +8 -1
- package/dist/deployments/codec.d.ts.map +1 -1
- package/dist/deployments/codec.js +12 -4
- package/dist/deployments/index.d.ts +4 -4
- package/dist/deployments/index.d.ts.map +1 -1
- package/dist/deployments/index.js +2 -2
- package/dist/deployments/segments.d.ts +21 -0
- package/dist/deployments/segments.d.ts.map +1 -0
- package/dist/deployments/segments.js +57 -0
- package/dist/deployments/types.d.ts +71 -1
- package/dist/deployments/types.d.ts.map +1 -1
- package/dist/deployments/validate.d.ts +11 -1
- package/dist/deployments/validate.d.ts.map +1 -1
- package/dist/deployments/validate.js +205 -22
- package/dist/expressions/index.d.ts +1 -1
- package/dist/expressions/index.d.ts.map +1 -1
- package/dist/expressions/types.d.ts +29 -3
- package/dist/expressions/types.d.ts.map +1 -1
- package/dist/expressions/validate.d.ts.map +1 -1
- package/dist/expressions/validate.js +38 -9
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/invocations/index.d.ts +2 -2
- package/dist/invocations/index.d.ts.map +1 -1
- package/dist/invocations/index.js +1 -1
- package/dist/invocations/types.d.ts +8 -0
- package/dist/invocations/types.d.ts.map +1 -1
- package/dist/invocations/validate.d.ts +10 -1
- package/dist/invocations/validate.d.ts.map +1 -1
- package/dist/invocations/validate.js +32 -7
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export { DEFAULT_CANONICAL_VALUE_LIMITS, ProtocolValueError, decodeCanonicalValue, encodeCanonicalValue, encodeCanonicalValueToString, hashCanonicalValue, validateCanonicalValue, } from './values/index.js';
|
|
2
2
|
export { PROTOCOL_IDENTIFIER_LIMITS, ProtocolIdentifierError, isProtocolIdentifier, isProtocolQualifiedIdentifier, joinProtocolQualifiedIdentifier, parseProtocolIdentifier, parseProtocolQualifiedIdentifier, splitProtocolQualifiedIdentifier, } from './identifiers/index.js';
|
|
3
3
|
export { PROTOCOL_CACHE_KEY_LIMITS, ProtocolCacheKeyError, deriveProtocolCacheKey, deriveProtocolCacheNamespaceToken, } from './cache-keys/index.js';
|
|
4
|
+
export { ProtocolCachePreimageError, buildProtocolCachePreimage, deriveProtocolTenantFingerprint, } from './cache-preimages/index.js';
|
|
4
5
|
export { DEFAULT_PROTOCOL_EXPRESSION_LIMITS, ProtocolExpressionError, validateProtocolExpression, validateProtocolSemanticQuery, } from './expressions/index.js';
|
|
5
6
|
export { DEFAULT_PROTOCOL_SCHEMA_LIMITS, DEFAULT_PROTOCOL_SCHEMA_VALUE_LIMITS, ProtocolSchemaError, ProtocolSchemaValueError, applyProtocolSchemaValue, createProtocolSchemaValueParser, resolveProtocolSchemaValueLimits, validateProtocolSchema, } from './schemas/index.js';
|
|
6
7
|
export { DEFAULT_PROTOCOL_QUERY_IMPLEMENTATION_LIMITS, ProtocolQueryImplementationError, validateProtocolQueryImplementation, validateProtocolSqlExpression, } from './query-implementations/index.js';
|
|
7
8
|
export { DEFAULT_PROTOCOL_QUERY_EVENT_LIMITS, ProtocolQueryDiagnosticsError, ProtocolQueryEventError, validateProtocolQueryDiagnostics, validateProtocolQueryEvent, } from './events/index.js';
|
|
8
|
-
export { DEFAULT_PROTOCOL_SEMANTIC_INVOCATION_LIMITS, ProtocolSemanticInvocationError, validateProtocolSemanticInvocation, validateProtocolSemanticInvocationFailure, validateProtocolSemanticInvocationResult, } from './invocations/index.js';
|
|
9
|
+
export { DEFAULT_PROTOCOL_SEMANTIC_INVOCATION_LIMITS, ProtocolSemanticInvocationError, validateProtocolSemanticInvocation, validateProtocolSemanticInvocationFailure, validateProtocolSemanticInvocationResult, validateProtocolSemanticInvocationV2, } from './invocations/index.js';
|
|
9
10
|
export { DEFAULT_PROTOCOL_DEPLOYMENT_BUNDLE_LIMITS, PROTOCOL_DEPLOYMENT_BUNDLE_IDENTITY_DOMAIN, ProtocolDeploymentBundleError, encodeProtocolDeploymentBundleManifest, encodeProtocolDeploymentBundleManifestToString, hashProtocolDeploymentBundleManifest, prepareProtocolDeploymentBundleManifest, validateProtocolDeploymentBundleManifest, } from './bundles/index.js';
|
|
10
11
|
export { DEFAULT_PROTOCOL_DEPLOYMENT_RELEASE_LIMITS, PROTOCOL_DEPLOYMENT_RELEASE_IDENTITY_DOMAIN, ProtocolDeploymentReleaseError, encodeProtocolDeploymentReleaseEnvelope, encodeProtocolDeploymentReleaseEnvelopeToString, hashProtocolDeploymentReleaseEnvelope, prepareProtocolDeploymentReleaseEnvelope, validateProtocolDeploymentReleaseEnvelope, validateProtocolDeploymentReleaseTarget, } from './releases/index.js';
|
|
11
|
-
export { DEFAULT_PROTOCOL_DEPLOYMENT_LIMITS, PROTOCOL_DEPLOYMENT_IDENTITY_DOMAIN, ProtocolDeploymentError, encodeProtocolDeploymentContract, encodeProtocolDeploymentContractToString, hashProtocolDeploymentContract, prepareProtocolDeploymentContract, validateProtocolDatasetContract, validateProtocolDeploymentContract, } from './deployments/index.js';
|
|
12
|
+
export { DEFAULT_PROTOCOL_DEPLOYMENT_LIMITS, PROTOCOL_DEPLOYMENT_IDENTITY_DOMAIN, PROTOCOL_DEPLOYMENT_V3_IDENTITY_DOMAIN, ProtocolDeploymentError, encodeProtocolDeploymentContract, encodeProtocolDeploymentContractToString, hashProtocolDeploymentContract, prepareProtocolDeploymentContract, prepareProtocolDeploymentContractV3, validateProtocolDatasetContract, validateProtocolDeploymentContract, validateProtocolDeploymentContractV3, } from './deployments/index.js';
|
|
12
13
|
export { PROTOCOL_SEMANTIC_FAILURE_MESSAGES } from './invocations/failure-messages.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { PROTOCOL_SEMANTIC_FAILURE_MESSAGES } from './failure-messages.js';
|
|
2
2
|
export { ProtocolSemanticInvocationError } from './errors.js';
|
|
3
3
|
export { DEFAULT_PROTOCOL_SEMANTIC_INVOCATION_LIMITS } from './limits.js';
|
|
4
|
-
export { validateProtocolSemanticInvocation, validateProtocolSemanticInvocationFailure, validateProtocolSemanticInvocationResult, } from './validate.js';
|
|
5
|
-
export type { ProtocolSemanticInvocation, ProtocolSemanticInvocationBudget, ProtocolSemanticInvocationErrorCode, ProtocolSemanticInvocationFailure, ProtocolSemanticInvocationFailureCategory, ProtocolSemanticInvocationLimits, ProtocolSemanticInvocationMeta, ProtocolSemanticInvocationOptions, ProtocolSemanticInvocationPagination, ProtocolSemanticInvocationResult, ProtocolSemanticInvocationRow, ProtocolSemanticInvocationTarget, ProtocolSemanticInvocationValue, } from './types.js';
|
|
4
|
+
export { validateProtocolSemanticInvocation, validateProtocolSemanticInvocationFailure, validateProtocolSemanticInvocationResult, validateProtocolSemanticInvocationV2, } from './validate.js';
|
|
5
|
+
export type { ProtocolSemanticInvocation, ProtocolSemanticInvocationV2, ProtocolSemanticInvocationBudget, ProtocolSemanticInvocationErrorCode, ProtocolSemanticInvocationFailure, ProtocolSemanticInvocationFailureCategory, ProtocolSemanticInvocationLimits, ProtocolSemanticInvocationMeta, ProtocolSemanticInvocationOptions, ProtocolSemanticInvocationPagination, ProtocolSemanticInvocationResult, ProtocolSemanticInvocationRow, ProtocolSemanticInvocationTarget, ProtocolSemanticInvocationValue, } from './types.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/invocations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,2CAA2C,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,kCAAkC,EAClC,yCAAyC,EACzC,wCAAwC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/invocations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,2CAA2C,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,kCAAkC,EAClC,yCAAyC,EACzC,wCAAwC,EACxC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,gCAAgC,EAChC,mCAAmC,EACnC,iCAAiC,EACjC,yCAAyC,EACzC,gCAAgC,EAChC,8BAA8B,EAC9B,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,YAAY,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { PROTOCOL_SEMANTIC_FAILURE_MESSAGES } from './failure-messages.js';
|
|
2
2
|
export { ProtocolSemanticInvocationError } from './errors.js';
|
|
3
3
|
export { DEFAULT_PROTOCOL_SEMANTIC_INVOCATION_LIMITS } from './limits.js';
|
|
4
|
-
export { validateProtocolSemanticInvocation, validateProtocolSemanticInvocationFailure, validateProtocolSemanticInvocationResult, } from './validate.js';
|
|
4
|
+
export { validateProtocolSemanticInvocation, validateProtocolSemanticInvocationFailure, validateProtocolSemanticInvocationResult, validateProtocolSemanticInvocationV2, } from './validate.js';
|
|
@@ -36,6 +36,14 @@ export interface ProtocolSemanticInvocation {
|
|
|
36
36
|
/** External correlation only; never authoritative. */
|
|
37
37
|
readonly correlationId?: string;
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* A semantic invocation 2 request (RFC 0015). Identical to version 1, except
|
|
41
|
+
* that `operation` is validated under expression extension 2, so it may name
|
|
42
|
+
* segments, sub-day grains, and relationship measures.
|
|
43
|
+
*/
|
|
44
|
+
export interface ProtocolSemanticInvocationV2 extends Omit<ProtocolSemanticInvocation, 'version'> {
|
|
45
|
+
readonly version: 2;
|
|
46
|
+
}
|
|
39
47
|
/**
|
|
40
48
|
* A result cell. Portable execution returns scalars; anything richer would need
|
|
41
49
|
* the RFC 0001 tagged value model, which this envelope deliberately does not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/invocations/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/invocations/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import type { ProtocolSemanticInvocation, ProtocolSemanticInvocationFailure, ProtocolSemanticInvocationOptions, ProtocolSemanticInvocationResult } from './types.js';
|
|
1
|
+
import type { ProtocolSemanticInvocation, ProtocolSemanticInvocationV2, ProtocolSemanticInvocationFailure, ProtocolSemanticInvocationOptions, ProtocolSemanticInvocationResult } from './types.js';
|
|
2
2
|
/** Validate one dataset or metric invocation request. */
|
|
3
3
|
export declare function validateProtocolSemanticInvocation(input: unknown, options?: ProtocolSemanticInvocationOptions): ProtocolSemanticInvocation;
|
|
4
|
+
/**
|
|
5
|
+
* Validate a semantic invocation 2 request (RFC 0015): identical to version 1
|
|
6
|
+
* except that `operation` is validated under expression extension 2.
|
|
7
|
+
*
|
|
8
|
+
* Under the lowest-version rule, a request whose operation uses no extension 2
|
|
9
|
+
* feature (a segment, a sub-day grain, or a relationship measure) must be sent
|
|
10
|
+
* as version 1, and is rejected here.
|
|
11
|
+
*/
|
|
12
|
+
export declare function validateProtocolSemanticInvocationV2(input: unknown, options?: ProtocolSemanticInvocationOptions): ProtocolSemanticInvocationV2;
|
|
4
13
|
/** Validate a successful invocation result before it is returned or cached. */
|
|
5
14
|
export declare function validateProtocolSemanticInvocationResult(input: unknown, options?: ProtocolSemanticInvocationOptions): ProtocolSemanticInvocationResult;
|
|
6
15
|
/** Validate a failed invocation before it crosses a trust boundary. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/invocations/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/invocations/validate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,0BAA0B,EAC1B,4BAA4B,EAE5B,iCAAiC,EAGjC,iCAAiC,EACjC,gCAAgC,EAGjC,MAAM,YAAY,CAAC;AA+KpB,yDAAyD;AACzD,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CAE5B;AAED;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iCAAsC,GAC9C,4BAA4B,CAM9B;AAuHD,+EAA+E;AAC/E,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iCAAsC,GAC9C,gCAAgC,CAiBlC;AAED,uEAAuE;AACvE,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iCAAsC,GAC9C,iCAAiC,CAyCnC"}
|
|
@@ -122,13 +122,13 @@ function activationRevision(value, path) {
|
|
|
122
122
|
invocationError('HQ_INVOCATION_INVALID_VALUE', path);
|
|
123
123
|
return value;
|
|
124
124
|
}
|
|
125
|
-
function requireVersion(value, kind, path) {
|
|
125
|
+
function requireVersion(value, kind, path, version = 1) {
|
|
126
126
|
if (value.kind !== kind) {
|
|
127
127
|
if (typeof value.kind !== 'string')
|
|
128
128
|
invocationError('HQ_INVOCATION_TYPE', `${path}.kind`);
|
|
129
129
|
invocationError('HQ_INVOCATION_INVALID_VALUE', `${path}.kind`);
|
|
130
130
|
}
|
|
131
|
-
if (value.version !==
|
|
131
|
+
if (value.version !== version) {
|
|
132
132
|
if (typeof value.version !== 'number')
|
|
133
133
|
invocationError('HQ_INVOCATION_TYPE', `${path}.version`);
|
|
134
134
|
invocationError('HQ_INVOCATION_INVALID_VERSION', `${path}.version`);
|
|
@@ -168,15 +168,39 @@ function budget(input, path, limits) {
|
|
|
168
168
|
}
|
|
169
169
|
/** Validate one dataset or metric invocation request. */
|
|
170
170
|
export function validateProtocolSemanticInvocation(input, options = {}) {
|
|
171
|
+
return validateInvocation(input, options, 1);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Validate a semantic invocation 2 request (RFC 0015): identical to version 1
|
|
175
|
+
* except that `operation` is validated under expression extension 2.
|
|
176
|
+
*
|
|
177
|
+
* Under the lowest-version rule, a request whose operation uses no extension 2
|
|
178
|
+
* feature (a segment, a sub-day grain, or a relationship measure) must be sent
|
|
179
|
+
* as version 1, and is rejected here.
|
|
180
|
+
*/
|
|
181
|
+
export function validateProtocolSemanticInvocationV2(input, options = {}) {
|
|
182
|
+
const invocation = validateInvocation(input, options, 2);
|
|
183
|
+
if (!usesExtension2(invocation.operation)) {
|
|
184
|
+
invocationError('HQ_INVOCATION_INVALID_VERSION', '$.version');
|
|
185
|
+
}
|
|
186
|
+
return invocation;
|
|
187
|
+
}
|
|
188
|
+
function usesExtension2(operation) {
|
|
189
|
+
return (operation.segments?.length ?? 0) > 0
|
|
190
|
+
|| operation.by === 'minute'
|
|
191
|
+
|| operation.by === 'hour'
|
|
192
|
+
|| (operation.kind === 'dataset' && (operation.measures ?? []).some(measure => measure.includes('.')));
|
|
193
|
+
}
|
|
194
|
+
function validateInvocation(input, options, version) {
|
|
171
195
|
const limits = resolveSemanticInvocationLimits(options);
|
|
172
196
|
const value = requireRecord(input, '$');
|
|
173
197
|
exactFields(value, ['kind', 'version', 'target', 'operation'], ['activationRevision', 'budget', 'correlationId'], '$');
|
|
174
|
-
requireVersion(value, 'hypequery-semantic-invocation', '$');
|
|
198
|
+
requireVersion(value, 'hypequery-semantic-invocation', '$', version);
|
|
175
199
|
const result = {
|
|
176
200
|
kind: 'hypequery-semantic-invocation',
|
|
177
|
-
version
|
|
201
|
+
version,
|
|
178
202
|
target: target(value.target, '$.target', limits),
|
|
179
|
-
operation: semanticQuery(value.operation, '$.operation'),
|
|
203
|
+
operation: semanticQuery(value.operation, '$.operation', version),
|
|
180
204
|
};
|
|
181
205
|
if (value.activationRevision !== undefined) {
|
|
182
206
|
result.activationRevision = activationRevision(value.activationRevision, '$.activationRevision');
|
|
@@ -188,9 +212,10 @@ export function validateProtocolSemanticInvocation(input, options = {}) {
|
|
|
188
212
|
}
|
|
189
213
|
return freezeRecord(result);
|
|
190
214
|
}
|
|
191
|
-
function semanticQuery(input, path) {
|
|
215
|
+
function semanticQuery(input, path, version) {
|
|
192
216
|
try {
|
|
193
|
-
|
|
217
|
+
// Invocation 2 carries expression extension 2 (RFC 0015).
|
|
218
|
+
return validateProtocolSemanticQuery(input, { extension: version });
|
|
194
219
|
}
|
|
195
220
|
catch (error) {
|
|
196
221
|
if (error instanceof ProtocolExpressionError) {
|