telepact 1.0.0-alpha.334 → 1.0.0-alpha.338

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/README.md CHANGED
@@ -39,7 +39,6 @@ const functionRoutes = {
39
39
 
40
40
  const options = new ServerOptions();
41
41
  // Set this to false when your schema does not define union.Auth_.
42
- options.authRequired = false;
43
42
  options.middleware = async (requestMessage: Message, functionRouter): Promise<Message> => {
44
43
  const functionName = requestMessage.getBodyTarget();
45
44
  try {
@@ -49,7 +48,8 @@ options.middleware = async (requestMessage: Message, functionRouter): Promise<Me
49
48
  log.info("Function finished", {function: functionName});
50
49
  }
51
50
  };
52
- const functionRouter = new FunctionRouter(functionRoutes);
51
+ const functionRouter = new FunctionRouter();
52
+ functionRouter.registerUnauthenticatedRoutes(functionRoutes);
53
53
  const server = new Server(schema, functionRouter, options);
54
54
 
55
55
  // Wire up request/response bytes from your transport of choice
package/dist/index.cjs.js CHANGED
@@ -1100,13 +1100,34 @@ class ClientOptions {
1100
1100
  }
1101
1101
 
1102
1102
  class FunctionRouter {
1103
- functionRoutes;
1104
- constructor(functionRoutes) {
1105
- this.functionRoutes = functionRoutes;
1103
+ authenticatedFunctionRoutes;
1104
+ unauthenticatedFunctionRoutes;
1105
+ constructor() {
1106
+ this.authenticatedFunctionRoutes = {};
1107
+ this.unauthenticatedFunctionRoutes = {};
1108
+ }
1109
+ registerAuthenticatedRoutes(functionRoutes) {
1110
+ for (const [functionName, functionRoute] of Object.entries(functionRoutes)) {
1111
+ this.authenticatedFunctionRoutes[functionName] = functionRoute;
1112
+ delete this.unauthenticatedFunctionRoutes[functionName];
1113
+ }
1114
+ }
1115
+ registerUnauthenticatedRoutes(functionRoutes) {
1116
+ for (const [functionName, functionRoute] of Object.entries(functionRoutes)) {
1117
+ this.unauthenticatedFunctionRoutes[functionName] = functionRoute;
1118
+ delete this.authenticatedFunctionRoutes[functionName];
1119
+ }
1120
+ }
1121
+ hasAuthenticatedRoutes() {
1122
+ return Object.keys(this.authenticatedFunctionRoutes).length > 0;
1123
+ }
1124
+ requiresAuthentication(functionName) {
1125
+ return functionName in this.authenticatedFunctionRoutes;
1106
1126
  }
1107
1127
  async route(requestMessage) {
1108
1128
  const functionName = requestMessage.getBodyTarget();
1109
- const functionRoute = this.functionRoutes[functionName];
1129
+ const functionRoute = this.authenticatedFunctionRoutes[functionName]
1130
+ ?? this.unauthenticatedFunctionRoutes[functionName];
1110
1131
  if (functionRoute === undefined) {
1111
1132
  throw new Error(`Unknown function: ${functionName}`);
1112
1133
  }
@@ -1853,7 +1874,7 @@ function buildUnknownErrorMessage(error, headers = {}) {
1853
1874
  return new Message(headers, { ErrorUnknown_: { caseId: error.caseId } });
1854
1875
  }
1855
1876
 
1856
- const INTERNAL_FUNCTIONS_BYPASSING_AUTH = new Set(['fn.ping_', 'fn.api_']);
1877
+ const UNAUTHENTICATED_MESSAGE = 'Valid authentication is required.';
1857
1878
  async function handleMessage(requestMessage, updateHeaders, telepactSchema, middleware, functionRouter, onError, onAuth) {
1858
1879
  const responseHeaders = {};
1859
1880
  const requestHeaders = requestMessage.headers;
@@ -1863,7 +1884,6 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1863
1884
  updateHeaders?.(requestHeaders);
1864
1885
  const requestTargetInit = requestEntry[0];
1865
1886
  const requestPayload = requestEntry[1];
1866
- const bypassAuthForFunction = INTERNAL_FUNCTIONS_BYPASSING_AUTH.has(requestTargetInit);
1867
1887
  let unknownTarget;
1868
1888
  let requestTarget;
1869
1889
  if (!(requestTargetInit in parsedTelepactSchema)) {
@@ -1877,6 +1897,7 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1877
1897
  const functionName = requestTarget;
1878
1898
  const callType = parsedTelepactSchema[requestTarget];
1879
1899
  const resultUnionType = parsedTelepactSchema[`${requestTarget}.->`];
1900
+ const requiresAuthentication = unknownTarget === null && functionRouter.requiresAuthentication(functionName);
1880
1901
  const callId = requestHeaders['@id_'];
1881
1902
  if (callId !== undefined) {
1882
1903
  responseHeaders['@id_'] = callId;
@@ -1893,7 +1914,10 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1893
1914
  if (requestHeaderValidationFailures.length > 0) {
1894
1915
  return getInvalidErrorMessage('ErrorInvalidRequestHeaders_', requestHeaderValidationFailures, resultUnionType, responseHeaders);
1895
1916
  }
1896
- if ('@auth_' in requestHeaders && !bypassAuthForFunction) {
1917
+ if (requiresAuthentication && !('@auth_' in requestHeaders)) {
1918
+ return buildUnauthenticatedErrorMessage(resultUnionType, responseHeaders);
1919
+ }
1920
+ if (requiresAuthentication) {
1897
1921
  try {
1898
1922
  const authHeaders = (await onAuth(requestHeaders)) ?? {};
1899
1923
  Object.assign(requestHeaders, authHeaders);
@@ -1905,7 +1929,7 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1905
1929
  }
1906
1930
  catch (ignored) {
1907
1931
  }
1908
- return buildUnknownErrorMessage(wrapped, responseHeaders);
1932
+ return buildUnauthenticatedErrorMessage(resultUnionType, responseHeaders);
1909
1933
  }
1910
1934
  }
1911
1935
  if ('@bin_' in requestHeaders) {
@@ -1916,6 +1940,15 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1916
1940
  responseHeaders['@pac_'] = requestHeaders['@pac_'];
1917
1941
  }
1918
1942
  }
1943
+ function buildUnauthenticatedErrorMessage(resultUnionType, headers) {
1944
+ const result = {
1945
+ ErrorUnauthenticated_: {
1946
+ 'message!': UNAUTHENTICATED_MESSAGE,
1947
+ },
1948
+ };
1949
+ validateResult(resultUnionType, result);
1950
+ return new Message(headers, result);
1951
+ }
1919
1952
  const selectStructFieldsHeader = requestHeaders['@select_'] || null;
1920
1953
  if (unknownTarget !== null) {
1921
1954
  const newErrorResult = {
@@ -2379,11 +2412,11 @@ class Server {
2379
2412
  telepactSchema;
2380
2413
  serializer;
2381
2414
  constructor(telepactSchema, functionRouter, options) {
2382
- const normalizedFunctionRouter = functionRouter instanceof FunctionRouter ? functionRouter : new FunctionRouter(functionRouter);
2383
- normalizedFunctionRouter.functionRoutes = {
2384
- ...normalizedFunctionRouter.functionRoutes,
2385
- ...createInternalFunctionRoutes(telepactSchema),
2386
- };
2415
+ const normalizedFunctionRouter = functionRouter instanceof FunctionRouter ? functionRouter : new FunctionRouter();
2416
+ if (!(functionRouter instanceof FunctionRouter)) {
2417
+ normalizedFunctionRouter.registerUnauthenticatedRoutes(functionRouter);
2418
+ }
2419
+ normalizedFunctionRouter.registerUnauthenticatedRoutes(createInternalFunctionRoutes(telepactSchema));
2387
2420
  this.functionRouter = normalizedFunctionRouter;
2388
2421
  this.middleware = options.middleware;
2389
2422
  this.onError = options.onError;
@@ -2395,8 +2428,8 @@ class Server {
2395
2428
  const binaryEncoder = new ServerBinaryEncoder(binaryEncoding);
2396
2429
  const base64Encoder = new ServerBase64Encoder();
2397
2430
  this.serializer = new Serializer(options.serialization, binaryEncoder, base64Encoder);
2398
- if (!('union.Auth_' in this.telepactSchema.parsed) && options.authRequired) {
2399
- throw new Error('Unauthenticated server. Either define a `union.Auth_` in your schema or set `options.authRequired` to `false`.');
2431
+ if (!('union.Auth_' in this.telepactSchema.parsed) && this.functionRouter.hasAuthenticatedRoutes()) {
2432
+ throw new Error('Authenticated routes require `union.Auth_` in your schema.');
2400
2433
  }
2401
2434
  }
2402
2435
  async process(requestMessageBytes, updateHeaders) {
@@ -2409,7 +2442,6 @@ class ServerOptions {
2409
2442
  onResponse;
2410
2443
  onAuth;
2411
2444
  middleware;
2412
- authRequired;
2413
2445
  serialization;
2414
2446
  constructor() {
2415
2447
  this.onError = (_error) => { };
@@ -2417,7 +2449,6 @@ class ServerOptions {
2417
2449
  this.onResponse = (m) => { };
2418
2450
  this.onAuth = (headers) => ({});
2419
2451
  this.middleware = async (requestMessage, functionRouter) => await functionRouter.route(requestMessage);
2420
- this.authRequired = true;
2421
2452
  this.serialization = new DefaultSerialization();
2422
2453
  }
2423
2454
  }
@@ -11908,9 +11939,9 @@ class MockServer {
11908
11939
  this.invocations = [];
11909
11940
  const serverOptions = new ServerOptions();
11910
11941
  serverOptions.onError = options.onError;
11911
- serverOptions.authRequired = false;
11912
11942
  const telepactSchema = new TelepactSchema(mockTelepactSchema.original, mockTelepactSchema.full, mockTelepactSchema.parsed, mockTelepactSchema.parsedRequestHeaders, mockTelepactSchema.parsedResponseHeaders);
11913
- const functionRouter = new FunctionRouter(this.createFunctionRoutes(telepactSchema));
11943
+ const functionRouter = new FunctionRouter();
11944
+ functionRouter.registerUnauthenticatedRoutes(this.createFunctionRoutes(telepactSchema));
11914
11945
  this.server = new Server(telepactSchema, functionRouter, serverOptions);
11915
11946
  }
11916
11947
  random;
package/dist/index.esm.js CHANGED
@@ -1098,13 +1098,34 @@ class ClientOptions {
1098
1098
  }
1099
1099
 
1100
1100
  class FunctionRouter {
1101
- functionRoutes;
1102
- constructor(functionRoutes) {
1103
- this.functionRoutes = functionRoutes;
1101
+ authenticatedFunctionRoutes;
1102
+ unauthenticatedFunctionRoutes;
1103
+ constructor() {
1104
+ this.authenticatedFunctionRoutes = {};
1105
+ this.unauthenticatedFunctionRoutes = {};
1106
+ }
1107
+ registerAuthenticatedRoutes(functionRoutes) {
1108
+ for (const [functionName, functionRoute] of Object.entries(functionRoutes)) {
1109
+ this.authenticatedFunctionRoutes[functionName] = functionRoute;
1110
+ delete this.unauthenticatedFunctionRoutes[functionName];
1111
+ }
1112
+ }
1113
+ registerUnauthenticatedRoutes(functionRoutes) {
1114
+ for (const [functionName, functionRoute] of Object.entries(functionRoutes)) {
1115
+ this.unauthenticatedFunctionRoutes[functionName] = functionRoute;
1116
+ delete this.authenticatedFunctionRoutes[functionName];
1117
+ }
1118
+ }
1119
+ hasAuthenticatedRoutes() {
1120
+ return Object.keys(this.authenticatedFunctionRoutes).length > 0;
1121
+ }
1122
+ requiresAuthentication(functionName) {
1123
+ return functionName in this.authenticatedFunctionRoutes;
1104
1124
  }
1105
1125
  async route(requestMessage) {
1106
1126
  const functionName = requestMessage.getBodyTarget();
1107
- const functionRoute = this.functionRoutes[functionName];
1127
+ const functionRoute = this.authenticatedFunctionRoutes[functionName]
1128
+ ?? this.unauthenticatedFunctionRoutes[functionName];
1108
1129
  if (functionRoute === undefined) {
1109
1130
  throw new Error(`Unknown function: ${functionName}`);
1110
1131
  }
@@ -1851,7 +1872,7 @@ function buildUnknownErrorMessage(error, headers = {}) {
1851
1872
  return new Message(headers, { ErrorUnknown_: { caseId: error.caseId } });
1852
1873
  }
1853
1874
 
1854
- const INTERNAL_FUNCTIONS_BYPASSING_AUTH = new Set(['fn.ping_', 'fn.api_']);
1875
+ const UNAUTHENTICATED_MESSAGE = 'Valid authentication is required.';
1855
1876
  async function handleMessage(requestMessage, updateHeaders, telepactSchema, middleware, functionRouter, onError, onAuth) {
1856
1877
  const responseHeaders = {};
1857
1878
  const requestHeaders = requestMessage.headers;
@@ -1861,7 +1882,6 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1861
1882
  updateHeaders?.(requestHeaders);
1862
1883
  const requestTargetInit = requestEntry[0];
1863
1884
  const requestPayload = requestEntry[1];
1864
- const bypassAuthForFunction = INTERNAL_FUNCTIONS_BYPASSING_AUTH.has(requestTargetInit);
1865
1885
  let unknownTarget;
1866
1886
  let requestTarget;
1867
1887
  if (!(requestTargetInit in parsedTelepactSchema)) {
@@ -1875,6 +1895,7 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1875
1895
  const functionName = requestTarget;
1876
1896
  const callType = parsedTelepactSchema[requestTarget];
1877
1897
  const resultUnionType = parsedTelepactSchema[`${requestTarget}.->`];
1898
+ const requiresAuthentication = unknownTarget === null && functionRouter.requiresAuthentication(functionName);
1878
1899
  const callId = requestHeaders['@id_'];
1879
1900
  if (callId !== undefined) {
1880
1901
  responseHeaders['@id_'] = callId;
@@ -1891,7 +1912,10 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1891
1912
  if (requestHeaderValidationFailures.length > 0) {
1892
1913
  return getInvalidErrorMessage('ErrorInvalidRequestHeaders_', requestHeaderValidationFailures, resultUnionType, responseHeaders);
1893
1914
  }
1894
- if ('@auth_' in requestHeaders && !bypassAuthForFunction) {
1915
+ if (requiresAuthentication && !('@auth_' in requestHeaders)) {
1916
+ return buildUnauthenticatedErrorMessage(resultUnionType, responseHeaders);
1917
+ }
1918
+ if (requiresAuthentication) {
1895
1919
  try {
1896
1920
  const authHeaders = (await onAuth(requestHeaders)) ?? {};
1897
1921
  Object.assign(requestHeaders, authHeaders);
@@ -1903,7 +1927,7 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1903
1927
  }
1904
1928
  catch (ignored) {
1905
1929
  }
1906
- return buildUnknownErrorMessage(wrapped, responseHeaders);
1930
+ return buildUnauthenticatedErrorMessage(resultUnionType, responseHeaders);
1907
1931
  }
1908
1932
  }
1909
1933
  if ('@bin_' in requestHeaders) {
@@ -1914,6 +1938,15 @@ async function handleMessage(requestMessage, updateHeaders, telepactSchema, midd
1914
1938
  responseHeaders['@pac_'] = requestHeaders['@pac_'];
1915
1939
  }
1916
1940
  }
1941
+ function buildUnauthenticatedErrorMessage(resultUnionType, headers) {
1942
+ const result = {
1943
+ ErrorUnauthenticated_: {
1944
+ 'message!': UNAUTHENTICATED_MESSAGE,
1945
+ },
1946
+ };
1947
+ validateResult(resultUnionType, result);
1948
+ return new Message(headers, result);
1949
+ }
1917
1950
  const selectStructFieldsHeader = requestHeaders['@select_'] || null;
1918
1951
  if (unknownTarget !== null) {
1919
1952
  const newErrorResult = {
@@ -2377,11 +2410,11 @@ class Server {
2377
2410
  telepactSchema;
2378
2411
  serializer;
2379
2412
  constructor(telepactSchema, functionRouter, options) {
2380
- const normalizedFunctionRouter = functionRouter instanceof FunctionRouter ? functionRouter : new FunctionRouter(functionRouter);
2381
- normalizedFunctionRouter.functionRoutes = {
2382
- ...normalizedFunctionRouter.functionRoutes,
2383
- ...createInternalFunctionRoutes(telepactSchema),
2384
- };
2413
+ const normalizedFunctionRouter = functionRouter instanceof FunctionRouter ? functionRouter : new FunctionRouter();
2414
+ if (!(functionRouter instanceof FunctionRouter)) {
2415
+ normalizedFunctionRouter.registerUnauthenticatedRoutes(functionRouter);
2416
+ }
2417
+ normalizedFunctionRouter.registerUnauthenticatedRoutes(createInternalFunctionRoutes(telepactSchema));
2385
2418
  this.functionRouter = normalizedFunctionRouter;
2386
2419
  this.middleware = options.middleware;
2387
2420
  this.onError = options.onError;
@@ -2393,8 +2426,8 @@ class Server {
2393
2426
  const binaryEncoder = new ServerBinaryEncoder(binaryEncoding);
2394
2427
  const base64Encoder = new ServerBase64Encoder();
2395
2428
  this.serializer = new Serializer(options.serialization, binaryEncoder, base64Encoder);
2396
- if (!('union.Auth_' in this.telepactSchema.parsed) && options.authRequired) {
2397
- throw new Error('Unauthenticated server. Either define a `union.Auth_` in your schema or set `options.authRequired` to `false`.');
2429
+ if (!('union.Auth_' in this.telepactSchema.parsed) && this.functionRouter.hasAuthenticatedRoutes()) {
2430
+ throw new Error('Authenticated routes require `union.Auth_` in your schema.');
2398
2431
  }
2399
2432
  }
2400
2433
  async process(requestMessageBytes, updateHeaders) {
@@ -2407,7 +2440,6 @@ class ServerOptions {
2407
2440
  onResponse;
2408
2441
  onAuth;
2409
2442
  middleware;
2410
- authRequired;
2411
2443
  serialization;
2412
2444
  constructor() {
2413
2445
  this.onError = (_error) => { };
@@ -2415,7 +2447,6 @@ class ServerOptions {
2415
2447
  this.onResponse = (m) => { };
2416
2448
  this.onAuth = (headers) => ({});
2417
2449
  this.middleware = async (requestMessage, functionRouter) => await functionRouter.route(requestMessage);
2418
- this.authRequired = true;
2419
2450
  this.serialization = new DefaultSerialization();
2420
2451
  }
2421
2452
  }
@@ -11906,9 +11937,9 @@ class MockServer {
11906
11937
  this.invocations = [];
11907
11938
  const serverOptions = new ServerOptions();
11908
11939
  serverOptions.onError = options.onError;
11909
- serverOptions.authRequired = false;
11910
11940
  const telepactSchema = new TelepactSchema(mockTelepactSchema.original, mockTelepactSchema.full, mockTelepactSchema.parsed, mockTelepactSchema.parsedRequestHeaders, mockTelepactSchema.parsedResponseHeaders);
11911
- const functionRouter = new FunctionRouter(this.createFunctionRoutes(telepactSchema));
11941
+ const functionRouter = new FunctionRouter();
11942
+ functionRouter.registerUnauthenticatedRoutes(this.createFunctionRoutes(telepactSchema));
11912
11943
  this.server = new Server(telepactSchema, functionRouter, serverOptions);
11913
11944
  }
11914
11945
  random;
@@ -1098,13 +1098,34 @@ var Telepact = (function (exports, msgpackr, crc32) {
1098
1098
  }
1099
1099
 
1100
1100
  class FunctionRouter {
1101
- functionRoutes;
1102
- constructor(functionRoutes) {
1103
- this.functionRoutes = functionRoutes;
1101
+ authenticatedFunctionRoutes;
1102
+ unauthenticatedFunctionRoutes;
1103
+ constructor() {
1104
+ this.authenticatedFunctionRoutes = {};
1105
+ this.unauthenticatedFunctionRoutes = {};
1106
+ }
1107
+ registerAuthenticatedRoutes(functionRoutes) {
1108
+ for (const [functionName, functionRoute] of Object.entries(functionRoutes)) {
1109
+ this.authenticatedFunctionRoutes[functionName] = functionRoute;
1110
+ delete this.unauthenticatedFunctionRoutes[functionName];
1111
+ }
1112
+ }
1113
+ registerUnauthenticatedRoutes(functionRoutes) {
1114
+ for (const [functionName, functionRoute] of Object.entries(functionRoutes)) {
1115
+ this.unauthenticatedFunctionRoutes[functionName] = functionRoute;
1116
+ delete this.authenticatedFunctionRoutes[functionName];
1117
+ }
1118
+ }
1119
+ hasAuthenticatedRoutes() {
1120
+ return Object.keys(this.authenticatedFunctionRoutes).length > 0;
1121
+ }
1122
+ requiresAuthentication(functionName) {
1123
+ return functionName in this.authenticatedFunctionRoutes;
1104
1124
  }
1105
1125
  async route(requestMessage) {
1106
1126
  const functionName = requestMessage.getBodyTarget();
1107
- const functionRoute = this.functionRoutes[functionName];
1127
+ const functionRoute = this.authenticatedFunctionRoutes[functionName]
1128
+ ?? this.unauthenticatedFunctionRoutes[functionName];
1108
1129
  if (functionRoute === undefined) {
1109
1130
  throw new Error(`Unknown function: ${functionName}`);
1110
1131
  }
@@ -1851,7 +1872,7 @@ var Telepact = (function (exports, msgpackr, crc32) {
1851
1872
  return new Message(headers, { ErrorUnknown_: { caseId: error.caseId } });
1852
1873
  }
1853
1874
 
1854
- const INTERNAL_FUNCTIONS_BYPASSING_AUTH = new Set(['fn.ping_', 'fn.api_']);
1875
+ const UNAUTHENTICATED_MESSAGE = 'Valid authentication is required.';
1855
1876
  async function handleMessage(requestMessage, updateHeaders, telepactSchema, middleware, functionRouter, onError, onAuth) {
1856
1877
  const responseHeaders = {};
1857
1878
  const requestHeaders = requestMessage.headers;
@@ -1861,7 +1882,6 @@ var Telepact = (function (exports, msgpackr, crc32) {
1861
1882
  updateHeaders?.(requestHeaders);
1862
1883
  const requestTargetInit = requestEntry[0];
1863
1884
  const requestPayload = requestEntry[1];
1864
- const bypassAuthForFunction = INTERNAL_FUNCTIONS_BYPASSING_AUTH.has(requestTargetInit);
1865
1885
  let unknownTarget;
1866
1886
  let requestTarget;
1867
1887
  if (!(requestTargetInit in parsedTelepactSchema)) {
@@ -1875,6 +1895,7 @@ var Telepact = (function (exports, msgpackr, crc32) {
1875
1895
  const functionName = requestTarget;
1876
1896
  const callType = parsedTelepactSchema[requestTarget];
1877
1897
  const resultUnionType = parsedTelepactSchema[`${requestTarget}.->`];
1898
+ const requiresAuthentication = unknownTarget === null && functionRouter.requiresAuthentication(functionName);
1878
1899
  const callId = requestHeaders['@id_'];
1879
1900
  if (callId !== undefined) {
1880
1901
  responseHeaders['@id_'] = callId;
@@ -1891,7 +1912,10 @@ var Telepact = (function (exports, msgpackr, crc32) {
1891
1912
  if (requestHeaderValidationFailures.length > 0) {
1892
1913
  return getInvalidErrorMessage('ErrorInvalidRequestHeaders_', requestHeaderValidationFailures, resultUnionType, responseHeaders);
1893
1914
  }
1894
- if ('@auth_' in requestHeaders && !bypassAuthForFunction) {
1915
+ if (requiresAuthentication && !('@auth_' in requestHeaders)) {
1916
+ return buildUnauthenticatedErrorMessage(resultUnionType, responseHeaders);
1917
+ }
1918
+ if (requiresAuthentication) {
1895
1919
  try {
1896
1920
  const authHeaders = (await onAuth(requestHeaders)) ?? {};
1897
1921
  Object.assign(requestHeaders, authHeaders);
@@ -1903,7 +1927,7 @@ var Telepact = (function (exports, msgpackr, crc32) {
1903
1927
  }
1904
1928
  catch (ignored) {
1905
1929
  }
1906
- return buildUnknownErrorMessage(wrapped, responseHeaders);
1930
+ return buildUnauthenticatedErrorMessage(resultUnionType, responseHeaders);
1907
1931
  }
1908
1932
  }
1909
1933
  if ('@bin_' in requestHeaders) {
@@ -1914,6 +1938,15 @@ var Telepact = (function (exports, msgpackr, crc32) {
1914
1938
  responseHeaders['@pac_'] = requestHeaders['@pac_'];
1915
1939
  }
1916
1940
  }
1941
+ function buildUnauthenticatedErrorMessage(resultUnionType, headers) {
1942
+ const result = {
1943
+ ErrorUnauthenticated_: {
1944
+ 'message!': UNAUTHENTICATED_MESSAGE,
1945
+ },
1946
+ };
1947
+ validateResult(resultUnionType, result);
1948
+ return new Message(headers, result);
1949
+ }
1917
1950
  const selectStructFieldsHeader = requestHeaders['@select_'] || null;
1918
1951
  if (unknownTarget !== null) {
1919
1952
  const newErrorResult = {
@@ -2377,11 +2410,11 @@ var Telepact = (function (exports, msgpackr, crc32) {
2377
2410
  telepactSchema;
2378
2411
  serializer;
2379
2412
  constructor(telepactSchema, functionRouter, options) {
2380
- const normalizedFunctionRouter = functionRouter instanceof FunctionRouter ? functionRouter : new FunctionRouter(functionRouter);
2381
- normalizedFunctionRouter.functionRoutes = {
2382
- ...normalizedFunctionRouter.functionRoutes,
2383
- ...createInternalFunctionRoutes(telepactSchema),
2384
- };
2413
+ const normalizedFunctionRouter = functionRouter instanceof FunctionRouter ? functionRouter : new FunctionRouter();
2414
+ if (!(functionRouter instanceof FunctionRouter)) {
2415
+ normalizedFunctionRouter.registerUnauthenticatedRoutes(functionRouter);
2416
+ }
2417
+ normalizedFunctionRouter.registerUnauthenticatedRoutes(createInternalFunctionRoutes(telepactSchema));
2385
2418
  this.functionRouter = normalizedFunctionRouter;
2386
2419
  this.middleware = options.middleware;
2387
2420
  this.onError = options.onError;
@@ -2393,8 +2426,8 @@ var Telepact = (function (exports, msgpackr, crc32) {
2393
2426
  const binaryEncoder = new ServerBinaryEncoder(binaryEncoding);
2394
2427
  const base64Encoder = new ServerBase64Encoder();
2395
2428
  this.serializer = new Serializer(options.serialization, binaryEncoder, base64Encoder);
2396
- if (!('union.Auth_' in this.telepactSchema.parsed) && options.authRequired) {
2397
- throw new Error('Unauthenticated server. Either define a `union.Auth_` in your schema or set `options.authRequired` to `false`.');
2429
+ if (!('union.Auth_' in this.telepactSchema.parsed) && this.functionRouter.hasAuthenticatedRoutes()) {
2430
+ throw new Error('Authenticated routes require `union.Auth_` in your schema.');
2398
2431
  }
2399
2432
  }
2400
2433
  async process(requestMessageBytes, updateHeaders) {
@@ -2407,7 +2440,6 @@ var Telepact = (function (exports, msgpackr, crc32) {
2407
2440
  onResponse;
2408
2441
  onAuth;
2409
2442
  middleware;
2410
- authRequired;
2411
2443
  serialization;
2412
2444
  constructor() {
2413
2445
  this.onError = (_error) => { };
@@ -2415,7 +2447,6 @@ var Telepact = (function (exports, msgpackr, crc32) {
2415
2447
  this.onResponse = (m) => { };
2416
2448
  this.onAuth = (headers) => ({});
2417
2449
  this.middleware = async (requestMessage, functionRouter) => await functionRouter.route(requestMessage);
2418
- this.authRequired = true;
2419
2450
  this.serialization = new DefaultSerialization();
2420
2451
  }
2421
2452
  }
@@ -11906,9 +11937,9 @@ var Telepact = (function (exports, msgpackr, crc32) {
11906
11937
  this.invocations = [];
11907
11938
  const serverOptions = new ServerOptions();
11908
11939
  serverOptions.onError = options.onError;
11909
- serverOptions.authRequired = false;
11910
11940
  const telepactSchema = new TelepactSchema(mockTelepactSchema.original, mockTelepactSchema.full, mockTelepactSchema.parsed, mockTelepactSchema.parsedRequestHeaders, mockTelepactSchema.parsedResponseHeaders);
11911
- const functionRouter = new FunctionRouter(this.createFunctionRoutes(telepactSchema));
11941
+ const functionRouter = new FunctionRouter();
11942
+ functionRouter.registerUnauthenticatedRoutes(this.createFunctionRoutes(telepactSchema));
11912
11943
  this.server = new Server(telepactSchema, functionRouter, serverOptions);
11913
11944
  }
11914
11945
  random;
@@ -2,7 +2,12 @@ import { Message } from './Message.js';
2
2
  export type FunctionRoute = (functionName: string, requestMessage: Message) => Promise<Message>;
3
3
  export type FunctionRoutes = Record<string, FunctionRoute>;
4
4
  export declare class FunctionRouter {
5
- functionRoutes: FunctionRoutes;
6
- constructor(functionRoutes: FunctionRoutes);
5
+ authenticatedFunctionRoutes: FunctionRoutes;
6
+ unauthenticatedFunctionRoutes: FunctionRoutes;
7
+ constructor();
8
+ registerAuthenticatedRoutes(functionRoutes: FunctionRoutes): void;
9
+ registerUnauthenticatedRoutes(functionRoutes: FunctionRoutes): void;
10
+ hasAuthenticatedRoutes(): boolean;
11
+ requiresAuthentication(functionName: string): boolean;
7
12
  route(requestMessage: Message): Promise<Message>;
8
13
  }
@@ -14,13 +14,34 @@
14
14
  //| limitations under the License.
15
15
  //|
16
16
  export class FunctionRouter {
17
- functionRoutes;
18
- constructor(functionRoutes) {
19
- this.functionRoutes = functionRoutes;
17
+ authenticatedFunctionRoutes;
18
+ unauthenticatedFunctionRoutes;
19
+ constructor() {
20
+ this.authenticatedFunctionRoutes = {};
21
+ this.unauthenticatedFunctionRoutes = {};
22
+ }
23
+ registerAuthenticatedRoutes(functionRoutes) {
24
+ for (const [functionName, functionRoute] of Object.entries(functionRoutes)) {
25
+ this.authenticatedFunctionRoutes[functionName] = functionRoute;
26
+ delete this.unauthenticatedFunctionRoutes[functionName];
27
+ }
28
+ }
29
+ registerUnauthenticatedRoutes(functionRoutes) {
30
+ for (const [functionName, functionRoute] of Object.entries(functionRoutes)) {
31
+ this.unauthenticatedFunctionRoutes[functionName] = functionRoute;
32
+ delete this.authenticatedFunctionRoutes[functionName];
33
+ }
34
+ }
35
+ hasAuthenticatedRoutes() {
36
+ return Object.keys(this.authenticatedFunctionRoutes).length > 0;
37
+ }
38
+ requiresAuthentication(functionName) {
39
+ return functionName in this.authenticatedFunctionRoutes;
20
40
  }
21
41
  async route(requestMessage) {
22
42
  const functionName = requestMessage.getBodyTarget();
23
- const functionRoute = this.functionRoutes[functionName];
43
+ const functionRoute = this.authenticatedFunctionRoutes[functionName]
44
+ ?? this.unauthenticatedFunctionRoutes[functionName];
24
45
  if (functionRoute === undefined) {
25
46
  throw new Error(`Unknown function: ${functionName}`);
26
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionRouter.js","sourceRoot":"","sources":["../../src/FunctionRouter.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAOH,MAAM,OAAO,cAAc;IACvB,cAAc,CAAiB;IAE/B,YAAY,cAA8B;QACtC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,cAAuB;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,MAAM,aAAa,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;CACJ"}
1
+ {"version":3,"file":"FunctionRouter.js","sourceRoot":"","sources":["../../src/FunctionRouter.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAOH,MAAM,OAAO,cAAc;IACvB,2BAA2B,CAAiB;IAC5C,6BAA6B,CAAiB;IAE9C;QACI,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC;IAC5C,CAAC;IAED,2BAA2B,CAAC,cAA8B;QACtD,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC;YAC/D,OAAO,IAAI,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAED,6BAA6B,CAAC,cAA8B;QACxD,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,6BAA6B,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC;YACjE,OAAO,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAED,sBAAsB;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,sBAAsB,CAAC,YAAoB;QACvC,OAAO,YAAY,IAAI,IAAI,CAAC,2BAA2B,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,cAAuB;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC;eAC7D,IAAI,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,MAAM,aAAa,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;CACJ"}
@@ -30,9 +30,9 @@ export class MockServer {
30
30
  this.invocations = [];
31
31
  const serverOptions = new ServerOptions();
32
32
  serverOptions.onError = options.onError;
33
- serverOptions.authRequired = false;
34
33
  const telepactSchema = new TelepactSchema(mockTelepactSchema.original, mockTelepactSchema.full, mockTelepactSchema.parsed, mockTelepactSchema.parsedRequestHeaders, mockTelepactSchema.parsedResponseHeaders);
35
- const functionRouter = new FunctionRouter(this.createFunctionRoutes(telepactSchema));
34
+ const functionRouter = new FunctionRouter();
35
+ functionRouter.registerUnauthenticatedRoutes(this.createFunctionRoutes(telepactSchema));
36
36
  this.server = new Server(telepactSchema, functionRouter, serverOptions);
37
37
  }
38
38
  random;
@@ -1 +1 @@
1
- {"version":3,"file":"MockServer.js","sourceRoot":"","sources":["../../src/MockServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MockServer.js","sourceRoot":"","sources":["../../src/MockServer.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,6 @@ export declare class ServerOptions {
28
28
  onResponse: (message: Message) => void;
29
29
  onAuth: AuthHandler;
30
30
  middleware: Middleware;
31
- authRequired: boolean;
32
31
  serialization: Serialization;
33
32
  constructor();
34
33
  }
@@ -32,11 +32,11 @@ export class Server {
32
32
  telepactSchema;
33
33
  serializer;
34
34
  constructor(telepactSchema, functionRouter, options) {
35
- const normalizedFunctionRouter = functionRouter instanceof FunctionRouter ? functionRouter : new FunctionRouter(functionRouter);
36
- normalizedFunctionRouter.functionRoutes = {
37
- ...normalizedFunctionRouter.functionRoutes,
38
- ...createInternalFunctionRoutes(telepactSchema),
39
- };
35
+ const normalizedFunctionRouter = functionRouter instanceof FunctionRouter ? functionRouter : new FunctionRouter();
36
+ if (!(functionRouter instanceof FunctionRouter)) {
37
+ normalizedFunctionRouter.registerUnauthenticatedRoutes(functionRouter);
38
+ }
39
+ normalizedFunctionRouter.registerUnauthenticatedRoutes(createInternalFunctionRoutes(telepactSchema));
40
40
  this.functionRouter = normalizedFunctionRouter;
41
41
  this.middleware = options.middleware;
42
42
  this.onError = options.onError;
@@ -48,8 +48,8 @@ export class Server {
48
48
  const binaryEncoder = new ServerBinaryEncoder(binaryEncoding);
49
49
  const base64Encoder = new ServerBase64Encoder();
50
50
  this.serializer = new Serializer(options.serialization, binaryEncoder, base64Encoder);
51
- if (!('union.Auth_' in this.telepactSchema.parsed) && options.authRequired) {
52
- throw new Error('Unauthenticated server. Either define a `union.Auth_` in your schema or set `options.authRequired` to `false`.');
51
+ if (!('union.Auth_' in this.telepactSchema.parsed) && this.functionRouter.hasAuthenticatedRoutes()) {
52
+ throw new Error('Authenticated routes require `union.Auth_` in your schema.');
53
53
  }
54
54
  }
55
55
  async process(requestMessageBytes, updateHeaders) {
@@ -62,7 +62,6 @@ export class ServerOptions {
62
62
  onResponse;
63
63
  onAuth;
64
64
  middleware;
65
- authRequired;
66
65
  serialization;
67
66
  constructor() {
68
67
  this.onError = (_error) => { };
@@ -70,7 +69,6 @@ export class ServerOptions {
70
69
  this.onResponse = (m) => { };
71
70
  this.onAuth = (headers) => ({});
72
71
  this.middleware = async (requestMessage, functionRouter) => await functionRouter.route(requestMessage);
73
- this.authRequired = true;
74
72
  this.serialization = new DefaultSerialization();
75
73
  }
76
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Server.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,5 @@ import { Message } from '../Message.js';
2
2
  import { TelepactSchema } from '../TelepactSchema.js';
3
3
  import { TelepactError } from '../TelepactError.js';
4
4
  import type { AuthHandler, UpdateHeaders } from '../Server.js';
5
- export declare function handleMessage(requestMessage: Message, updateHeaders: UpdateHeaders | undefined, telepactSchema: TelepactSchema, middleware: (requestMessage: Message, functionRouter: {
6
- route: (message: Message) => Promise<Message>;
7
- }) => Promise<Message>, functionRouter: {
8
- route: (message: Message) => Promise<Message>;
9
- }, onError: (error: TelepactError) => void, onAuth: AuthHandler): Promise<Message>;
5
+ import type { FunctionRouter, Middleware } from './ProcessBytes.js';
6
+ export declare function handleMessage(requestMessage: Message, updateHeaders: UpdateHeaders | undefined, telepactSchema: TelepactSchema, middleware: Middleware, functionRouter: FunctionRouter, onError: (error: TelepactError) => void, onAuth: AuthHandler): Promise<Message>;
@@ -24,7 +24,7 @@ import { ValidateContext } from './validation/ValidateContext.js';
24
24
  import { serverBase64Decode } from './binary/ServerBase64Decode.js';
25
25
  import { TelepactError } from '../TelepactError.js';
26
26
  import { buildUnknownErrorMessage } from './UnknownError.js';
27
- const INTERNAL_FUNCTIONS_BYPASSING_AUTH = new Set(['fn.ping_', 'fn.api_']);
27
+ const UNAUTHENTICATED_MESSAGE = 'Valid authentication is required.';
28
28
  export async function handleMessage(requestMessage, updateHeaders, telepactSchema, middleware, functionRouter, onError, onAuth) {
29
29
  const responseHeaders = {};
30
30
  const requestHeaders = requestMessage.headers;
@@ -34,7 +34,6 @@ export async function handleMessage(requestMessage, updateHeaders, telepactSchem
34
34
  updateHeaders?.(requestHeaders);
35
35
  const requestTargetInit = requestEntry[0];
36
36
  const requestPayload = requestEntry[1];
37
- const bypassAuthForFunction = INTERNAL_FUNCTIONS_BYPASSING_AUTH.has(requestTargetInit);
38
37
  let unknownTarget;
39
38
  let requestTarget;
40
39
  if (!(requestTargetInit in parsedTelepactSchema)) {
@@ -48,6 +47,7 @@ export async function handleMessage(requestMessage, updateHeaders, telepactSchem
48
47
  const functionName = requestTarget;
49
48
  const callType = parsedTelepactSchema[requestTarget];
50
49
  const resultUnionType = parsedTelepactSchema[`${requestTarget}.->`];
50
+ const requiresAuthentication = unknownTarget === null && functionRouter.requiresAuthentication(functionName);
51
51
  const callId = requestHeaders['@id_'];
52
52
  if (callId !== undefined) {
53
53
  responseHeaders['@id_'] = callId;
@@ -64,7 +64,10 @@ export async function handleMessage(requestMessage, updateHeaders, telepactSchem
64
64
  if (requestHeaderValidationFailures.length > 0) {
65
65
  return getInvalidErrorMessage('ErrorInvalidRequestHeaders_', requestHeaderValidationFailures, resultUnionType, responseHeaders);
66
66
  }
67
- if ('@auth_' in requestHeaders && !bypassAuthForFunction) {
67
+ if (requiresAuthentication && !('@auth_' in requestHeaders)) {
68
+ return buildUnauthenticatedErrorMessage(resultUnionType, responseHeaders);
69
+ }
70
+ if (requiresAuthentication) {
68
71
  try {
69
72
  const authHeaders = (await onAuth(requestHeaders)) ?? {};
70
73
  Object.assign(requestHeaders, authHeaders);
@@ -76,7 +79,7 @@ export async function handleMessage(requestMessage, updateHeaders, telepactSchem
76
79
  }
77
80
  catch (ignored) {
78
81
  }
79
- return buildUnknownErrorMessage(wrapped, responseHeaders);
82
+ return buildUnauthenticatedErrorMessage(resultUnionType, responseHeaders);
80
83
  }
81
84
  }
82
85
  if ('@bin_' in requestHeaders) {
@@ -87,6 +90,15 @@ export async function handleMessage(requestMessage, updateHeaders, telepactSchem
87
90
  responseHeaders['@pac_'] = requestHeaders['@pac_'];
88
91
  }
89
92
  }
93
+ function buildUnauthenticatedErrorMessage(resultUnionType, headers) {
94
+ const result = {
95
+ ErrorUnauthenticated_: {
96
+ 'message!': UNAUTHENTICATED_MESSAGE,
97
+ },
98
+ };
99
+ validateResult(resultUnionType, result);
100
+ return new Message(headers, result);
101
+ }
90
102
  const selectStructFieldsHeader = requestHeaders['@select_'] || null;
91
103
  if (unknownTarget !== null) {
92
104
  const newErrorResult = {
@@ -1 +1 @@
1
- {"version":3,"file":"HandleMessage.js","sourceRoot":"","sources":["../../../src/internal/HandleMessage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandleMessage.js","sourceRoot":"","sources":["../../../src/internal/HandleMessage.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAK/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,wCAAwC,EAAE,MAAM,0DAA0D,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,cAAuB,EACvB,aAAwC,EACxC,cAA8B,EAC9B,UAAsB,EACtB,cAA8B,EAC9B,OAAuC,EACvC,MAAmB;IAEnB,MAAM,eAAe,GAAwB,EAAE,CAAC;IAChD,MAAM,cAAc,GAAwB,cAAc,CAAC,OAAO,CAAC;IACnE,MAAM,WAAW,GAAwB,cAAc,CAAC,IAAI,CAAC;IAC7D,MAAM,oBAAoB,GAA0B,cAAc,CAAC,MAAM,CAAC;IAC1E,MAAM,YAAY,GAAkB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnE,aAAa,EAAE,CAAC,cAAc,CAAC,CAAC;IAEhC,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAwB,CAAC;IAE9D,IAAI,aAA4B,CAAC;IACjC,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC,CAAC,iBAAiB,IAAI,oBAAoB,CAAC,EAAE,CAAC;QAC/C,aAAa,GAAG,iBAAiB,CAAC;QAClC,aAAa,GAAG,UAAU,CAAC;IAC/B,CAAC;SAAM,CAAC;QACJ,aAAa,GAAG,IAAI,CAAC;QACrB,aAAa,GAAG,iBAAiB,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,CAAC;IACnC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,aAAa,CAAW,CAAC;IAC/D,MAAM,eAAe,GAAW,oBAAoB,CAAC,GAAG,aAAa,KAAK,CAAW,CAAC;IACtF,MAAM,sBAAsB,GAAG,aAAa,KAAK,IAAI,IAAI,cAAc,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAE7G,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,eAAe,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACrC,CAAC;IAED,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAU,CAAC;QAChE,MAAM,cAAc,GAAwB;YACxC,kBAAkB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;SACjD,CAAC;QAEF,cAAc,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QAEhD,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,+BAA+B,GAAwB,eAAe,CACxE,cAAc,EACd,cAAc,CAAC,oBAAoB,EACnC,YAAY,CACf,CAAC;IACF,IAAI,+BAA+B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,sBAAsB,CACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,eAAe,EACf,eAAe,CAClB,CAAC;IACN,CAAC;IAED,IAAI,sBAAsB,IAAI,CAAC,CAAC,QAAQ,IAAI,cAAc,CAAC,EAAE,CAAC;QAC1D,OAAO,gCAAgC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QACzB,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,+CAA+C,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACnH,IAAI,CAAC;gBACD,OAAO,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;YACnB,CAAC;YACD,OAAO,gCAAgC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;QAC5B,MAAM,0BAA0B,GAAG,cAAc,CAAC,OAAO,CAAU,CAAC;QAEpE,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QACnC,eAAe,CAAC,8BAA8B,CAAC,GAAG,0BAA0B,CAAC;QAE7E,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;YAC5B,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,SAAS,gCAAgC,CAAC,eAAuB,EAAE,OAA4B;QAC3F,MAAM,MAAM,GAAG;YACX,qBAAqB,EAAE;gBACnB,UAAU,EAAE,uBAAuB;aACtC;SACJ,CAAC;QACF,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAEG,MAAM,wBAAwB,GAA+B,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAEhG,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,cAAc,GAAwB;YACxC,wBAAwB,EAAE;gBACtB,KAAK,EAAE;oBACH;wBACI,IAAI,EAAE,CAAC,aAAa,CAAC;wBACrB,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE;qBAClC;iBACJ;aACJ;SACJ,CAAC;QAEF,cAAc,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QAChD,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,gBAAgB,GAAW,QAAQ,CAAC;IAE1C,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,MAAM,iBAAiB,GAAG,CAAC,CAAoB,EAAE,EAAE;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,iBAAiB,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;IAEtE,MAAM,sBAAsB,GAAwB,gBAAgB;SAC/D,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,eAAe,CAAC;SAC1C,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC/B,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM,YAAY,GAAG,wCAAwC,CAAC,QAAQ,CAAC,CAAC;YACxE,eAAe,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,sBAAsB,CACzB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,eAAe,CAClB,CAAC;IACN,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,qBAAqB,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;IAElE,MAAM,WAAW,GAAY,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;IAE7F,IAAI,aAAsB,CAAC;IAC3B,IAAI,CAAC;QACD,aAAa,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,0CAA0C,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,eAAe;QACnB,CAAC;QACD,OAAO,wBAAwB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,WAAW,GAAwB,aAAa,CAAC,IAAI,CAAC;IAE5D,aAAa,CAAC,OAAO,GAAG,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IACzE,MAAM,oBAAoB,GAAwB,aAAa,CAAC,OAAO,CAAC;IAExE,MAAM,oBAAoB,GAAY,qBAAqB,CAAC;IAE5D,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAA;IACvD,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC,wBAAwB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACpG,MAAM,wBAAwB,GAAwB,eAAe;SAChE,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,iBAAiB,CAAC;SAC5C,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE/B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,YAAY,GAAG,wCAAwC,CAAC,QAAQ,CAAC,CAAC;QACxE,eAAe,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/D,IAAI,CAAC;YACD,OAAO,CACH,IAAI,aAAa,CACb,2CAA2C,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,wCAAwC,CAAC,wBAAwB,CAAC,CAAC,EAAE,EAChJ,YAAY,CACf,CACJ,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,eAAe;QACnB,CAAC;QACD,OAAO,sBAAsB,CACzB,2BAA2B,EAC3B,wBAAwB,EACxB,eAAe,EACf,eAAe,CAClB,CAAC;IACN,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,oBAAoB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,eAAe,CAAC;IACzE,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,gCAAgC,GAAwB,eAAe,CACzE,oBAAoB,EACpB,cAAc,CAAC,qBAAqB,EACpC,YAAY,CACf,CAAC;IACF,IAAI,gCAAgC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC;YACD,OAAO,CACH,IAAI,aAAa,CACb,kDAAkD,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,wCAAwC,CAAC,gCAAgC,CAAC,CAAC,EAAE,EAC/J,YAAY,CACf,CACJ,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,eAAe;QACnB,CAAC;QACD,OAAO,sBAAsB,CACzB,8BAA8B,EAC9B,gCAAgC,EAChC,eAAe,EACf,eAAe,CAClB,CAAC;IACN,CAAC;IAED,IAAI,gBAAqC,CAAC;IAC1C,IAAI,wBAAwB,KAAK,IAAI,EAAE,CAAC;QACpC,gBAAgB,GAAG,kBAAkB,CACjC,IAAI,gBAAgB,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,CAAC,EAChD,WAAW,EACX,wBAAwB,CACJ,CAAC;IAC7B,CAAC;SAAM,CAAC;QACJ,gBAAgB,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AAC/D,CAAC"}
@@ -10,6 +10,7 @@ export type ResponseHandler = (message: Message) => void;
10
10
  export type AuthHandler = (headers: Record<string, any>) => Record<string, any> | Promise<Record<string, any>>;
11
11
  export type FunctionRouter = {
12
12
  route: (message: Message) => Promise<Message>;
13
+ requiresAuthentication: (functionName: string) => boolean;
13
14
  };
14
15
  export type Middleware = (requestMessage: Message, functionRouter: FunctionRouter) => Promise<Message>;
15
16
  export declare function processBytes(requestMessageBytes: Uint8Array, updateHeaders: UpdateHeaders | undefined, serializer: Serializer, telepactSchema: TelepactSchema, onError: ErrorHandler, onRequest: RequestHandler, onResponse: ResponseHandler, onAuth: AuthHandler, middleware: Middleware, functionRouter: FunctionRouter): Promise<Response>;
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessBytes.js","sourceRoot":"","sources":["../../../src/internal/ProcessBytes.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAS7D,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,mBAA+B,EAC/B,aAAwC,EACxC,UAAsB,EACtB,cAA8B,EAC9B,OAAqB,EACrB,SAAyB,EACzB,UAA2B,EAC3B,MAAmB,EACnB,UAAsB,EACtB,cAA8B;IAE9B,IAAI,CAAC;QACD,MAAM,cAAc,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAErG,IAAI,CAAC;YACD,SAAS,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,eAAe;QACnB,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,aAAa,CACvC,cAAc,EACd,aAAa,EACb,cAAc,EACd,UAAU,EACV,cAAc,EACd,OAAO,EACP,MAAM,CACT,CAAC;QAEF,IAAI,CAAC;YACD,UAAU,CAAC,eAAe,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,eAAe;QACnB,CAAC;QAED,IAAI,aAAyB,CAAC;QAC9B,IAAI,CAAC;YACD,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,KAAK,YAAY,kBAAkB;gBAC/C,CAAC,CAAC,IAAI,aAAa,CAAC,wCAAwC,EAAE,eAAe,EAAE,KAAK,CAAC;gBACrF,CAAC,CAAC,IAAI,aAAa,CAAC,kEAAkE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;YACpH,IAAI,CAAC;gBACD,OAAO,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,eAAe;YACnB,CAAC;YACD,MAAM,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;YACrF,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACxD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,YAAY,aAAa;YAC1C,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,YAAY,kBAAkB;gBACjC,CAAC,CAAC,IAAI,aAAa,CAAC,wCAAwC,EAAE,eAAe,EAAE,KAAK,CAAC;gBACrF,CAAC,CAAC,IAAI,aAAa,CAAC,mCAAmC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACnF,IAAI,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,eAAe;QACnB,CAAC;QAED,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9E,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACjD,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"ProcessBytes.js","sourceRoot":"","sources":["../../../src/internal/ProcessBytes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "telepact",
3
- "version": "1.0.0-alpha.334",
3
+ "version": "1.0.0-alpha.338",
4
4
  "description": "The Typescript Telepact library",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",