@webda/azure 0.0.0-stage → 4.0.0-beta.13

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 (68) hide show
  1. package/LICENSE +166 -0
  2. package/README.md +248 -2
  3. package/lib/auth.d.ts +30 -0
  4. package/lib/auth.d.ts.map +1 -0
  5. package/lib/auth.js +70 -0
  6. package/lib/auth.js.map +1 -0
  7. package/lib/deployers/arm.service.d.ts +108 -0
  8. package/lib/deployers/arm.service.d.ts.map +1 -0
  9. package/lib/deployers/arm.service.js +280 -0
  10. package/lib/deployers/arm.service.js.map +1 -0
  11. package/lib/deployers/containerapps.service.d.ts +156 -0
  12. package/lib/deployers/containerapps.service.d.ts.map +1 -0
  13. package/lib/deployers/containerapps.service.js +455 -0
  14. package/lib/deployers/containerapps.service.js.map +1 -0
  15. package/lib/deployers/functions-entrypoint.d.ts +48 -0
  16. package/lib/deployers/functions-entrypoint.d.ts.map +1 -0
  17. package/lib/deployers/functions-entrypoint.js +78 -0
  18. package/lib/deployers/functions-entrypoint.js.map +1 -0
  19. package/lib/deployers/functions.service.d.ts +66 -0
  20. package/lib/deployers/functions.service.d.ts.map +1 -0
  21. package/lib/deployers/functions.service.js +322 -0
  22. package/lib/deployers/functions.service.js.map +1 -0
  23. package/lib/deployers/functionspackager.service.d.ts +43 -0
  24. package/lib/deployers/functionspackager.service.d.ts.map +1 -0
  25. package/lib/deployers/functionspackager.service.js +151 -0
  26. package/lib/deployers/functionspackager.service.js.map +1 -0
  27. package/lib/index.d.ts +15 -0
  28. package/lib/index.d.ts.map +1 -0
  29. package/lib/index.js +18 -0
  30. package/lib/index.js.map +1 -0
  31. package/lib/services/azure-parameters.d.ts +41 -0
  32. package/lib/services/azure-parameters.d.ts.map +1 -0
  33. package/lib/services/azure-parameters.js +43 -0
  34. package/lib/services/azure-parameters.js.map +1 -0
  35. package/lib/services/blob.service.d.ts +157 -0
  36. package/lib/services/blob.service.d.ts.map +1 -0
  37. package/lib/services/blob.service.js +428 -0
  38. package/lib/services/blob.service.js.map +1 -0
  39. package/lib/services/contributors.d.ts +47 -0
  40. package/lib/services/contributors.d.ts.map +1 -0
  41. package/lib/services/contributors.js +2 -0
  42. package/lib/services/contributors.js.map +1 -0
  43. package/lib/services/cosmos.service.d.ts +211 -0
  44. package/lib/services/cosmos.service.d.ts.map +1 -0
  45. package/lib/services/cosmos.service.js +554 -0
  46. package/lib/services/cosmos.service.js.map +1 -0
  47. package/lib/services/functionserver.service.d.ts +42 -0
  48. package/lib/services/functionserver.service.d.ts.map +1 -0
  49. package/lib/services/functionserver.service.js +223 -0
  50. package/lib/services/functionserver.service.js.map +1 -0
  51. package/lib/services/keyvault.service.d.ts +91 -0
  52. package/lib/services/keyvault.service.d.ts.map +1 -0
  53. package/lib/services/keyvault.service.js +225 -0
  54. package/lib/services/keyvault.service.js.map +1 -0
  55. package/lib/services/monitorlogger.service.d.ts +66 -0
  56. package/lib/services/monitorlogger.service.d.ts.map +1 -0
  57. package/lib/services/monitorlogger.service.js +131 -0
  58. package/lib/services/monitorlogger.service.js.map +1 -0
  59. package/lib/services/servicebus.service.d.ts +128 -0
  60. package/lib/services/servicebus.service.d.ts.map +1 -0
  61. package/lib/services/servicebus.service.js +324 -0
  62. package/lib/services/servicebus.service.js.map +1 -0
  63. package/lib/template.d.ts +53 -0
  64. package/lib/template.d.ts.map +1 -0
  65. package/lib/template.js +74 -0
  66. package/lib/template.js.map +1 -0
  67. package/package.json +77 -3
  68. package/webda.module.json +1817 -0
@@ -0,0 +1,554 @@
1
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
2
+ var useValue = arguments.length > 2;
3
+ for (var i = 0; i < initializers.length; i++) {
4
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
5
+ }
6
+ return useValue ? value : void 0;
7
+ };
8
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
9
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
10
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
11
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
12
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
13
+ var _, done = false;
14
+ for (var i = decorators.length - 1; i >= 0; i--) {
15
+ var context = {};
16
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
17
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
18
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
19
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
20
+ if (kind === "accessor") {
21
+ if (result === void 0) continue;
22
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
23
+ if (_ = accept(result.get)) descriptor.get = _;
24
+ if (_ = accept(result.set)) descriptor.set = _;
25
+ if (_ = accept(result.init)) initializers.unshift(_);
26
+ }
27
+ else if (_ = accept(result)) {
28
+ if (kind === "field") initializers.unshift(_);
29
+ else descriptor[key] = _;
30
+ }
31
+ }
32
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
33
+ done = true;
34
+ };
35
+ import { CosmosClient } from "@azure/cosmos";
36
+ import { EventRepository, InstanceCache, MemoryRepository, SecretString, Store, StoreNotFoundError, StoreParameters, UpdateConditionFailError, useModelMetadata, WebdaError } from "@webda/core";
37
+ import * as QL from "@webda/ql";
38
+ import { getAzureCredential, loadAzureParameters } from "./azure-parameters.js";
39
+ import { armLiteral, armValue } from "../template.js";
40
+ /** Cosmos DB NoSQL settings. All models in the store share a typed container. */
41
+ export class CosmosStoreParameters extends StoreParameters {
42
+ constructor() {
43
+ super(...arguments);
44
+ this.partitionKey = "/id";
45
+ this.createIfNotExists = false;
46
+ }
47
+ /**
48
+ * Perform load.
49
+ * @override
50
+ */
51
+ load(params = {}) {
52
+ super.load(params);
53
+ return loadAzureParameters(this);
54
+ }
55
+ }
56
+ /**
57
+ * Translate the supported WebdaQL filter subset with bound values and quoted field identifiers.
58
+ * @param query - WebdaQL query or parsed filter
59
+ * @returns SQL text and bound parameters
60
+ */
61
+ export function cosmosQuery(query) {
62
+ const parameters = [];
63
+ const field = (path) => (path[0] === "__type" ? "c" : 'c["value"]') + path.map(part => `[${JSON.stringify(part)}]`).join("");
64
+ const bind = (value) => {
65
+ const name = `@p${parameters.length}`;
66
+ parameters.push({ name, value });
67
+ return name;
68
+ };
69
+ const translate = (expression) => {
70
+ if (expression instanceof QL.BooleanExpression)
71
+ return expression.value ? "true" : "false";
72
+ if (expression instanceof QL.AndExpression || expression instanceof QL.OrExpression) {
73
+ return expression.children.length
74
+ ? `(${expression.children.map(translate).join(` ${expression.operator} `)})`
75
+ : expression.operator === "AND"
76
+ ? "true"
77
+ : "false";
78
+ }
79
+ if (!(expression instanceof QL.ComparisonExpression))
80
+ throw new WebdaError.NotImplemented("Unsupported Cosmos query expression");
81
+ const attribute = field(expression.attribute), value = expression.value;
82
+ switch (expression.operator) {
83
+ case "=":
84
+ case "!=":
85
+ case ">":
86
+ case ">=":
87
+ case "<":
88
+ case "<=":
89
+ return `${attribute} ${expression.operator} ${bind(value)}`;
90
+ case "IN":
91
+ return `ARRAY_CONTAINS(${bind(value)}, ${attribute})`;
92
+ case "CONTAINS":
93
+ return `ARRAY_CONTAINS(${attribute}, ${bind(value)})`;
94
+ case "LIKE":
95
+ return `${attribute} LIKE ${bind(value)}`;
96
+ case "IS NULL":
97
+ return `(NOT IS_DEFINED(${attribute}) OR IS_NULL(${attribute}))`;
98
+ case "IS NOT NULL":
99
+ return `(IS_DEFINED(${attribute}) AND NOT IS_NULL(${attribute}))`;
100
+ default:
101
+ throw new WebdaError.NotImplemented(`Unsupported Cosmos query operator ${expression.operator}`);
102
+ }
103
+ };
104
+ const filter = translate(query.filter);
105
+ const order = query.orderBy?.map(item => `${field(item.field.split("."))} ${item.direction}`).join(", ");
106
+ return { query: `SELECT * FROM c WHERE ${filter}${order ? ` ORDER BY ${order}` : ""}`, parameters };
107
+ }
108
+ /** Typed Cosmos repository. A serializer envelope preserves dates, behaviors and concrete model types. */
109
+ export class CosmosRepository extends MemoryRepository {
110
+ /**
111
+ * Initialize the Azure integration.
112
+ * @param model - Model class or model identifier
113
+ * @param pks - Primary key field names
114
+ * @param container - Lazy Cosmos container accessor
115
+ * @param partitionKey - Cosmos partition key path
116
+ * @param separator - Composite primary key separator
117
+ */
118
+ constructor(model, pks, container, partitionKey = "/id", separator) {
119
+ super(model, pks, separator);
120
+ this.container = container;
121
+ this.partitionKey = partitionKey;
122
+ if (partitionKey !== "/id" &&
123
+ (!/^\/[a-zA-Z]\w*$/.test(partitionKey) ||
124
+ !pks.includes(partitionKey.slice(1)) ||
125
+ ["value", "__type", "constructor", "prototype"].includes(partitionKey.slice(1)))) {
126
+ throw new WebdaError.BadRequest("A custom Cosmos partition key must name a top-level primary key field");
127
+ }
128
+ }
129
+ /**
130
+ * Encode the model primary key as a Cosmos item identifier.
131
+ * @param primaryKey - Model primary key
132
+ * @returns The key result
133
+ */
134
+ key(primaryKey) {
135
+ return Buffer.from(this.getPrimaryKey(primaryKey).toString()).toString("base64url");
136
+ }
137
+ /**
138
+ * Resolve the partition value from the primary key.
139
+ * @param primaryKey - Model primary key
140
+ * @returns The partition result
141
+ */
142
+ partition(primaryKey) {
143
+ if (this.partitionKey === "/id")
144
+ return this.key(primaryKey);
145
+ const value = this.getPrimaryKey(primaryKey, true)[this.partitionKey.slice(1)];
146
+ if (!["string", "number", "boolean"].includes(typeof value))
147
+ throw new WebdaError.BadRequest("Cosmos partition key requires a scalar value");
148
+ return value;
149
+ }
150
+ /**
151
+ * Address a Cosmos document by its item and partition keys.
152
+ * @param primaryKey - Model primary key
153
+ * @returns The item result
154
+ */
155
+ item(primaryKey) {
156
+ return this.container().item(this.key(primaryKey), this.partition(primaryKey));
157
+ }
158
+ /**
159
+ * Serialize a model into a typed Cosmos document.
160
+ * @param item - Collection item or model instance
161
+ * @returns The document result
162
+ */
163
+ document(item) {
164
+ return {
165
+ ...JSON.parse(this.serialize(item)),
166
+ id: this.key(item),
167
+ ...(this.partitionKey === "/id" ? {} : { [this.partitionKey.slice(1)]: this.partition(item) })
168
+ };
169
+ }
170
+ /**
171
+ * Restore a typed model from a Cosmos document.
172
+ * @param document - Stored Cosmos document
173
+ * @returns The from document result
174
+ */
175
+ fromDocument(document) {
176
+ const { id: _id, _etag: _etag, _rid: _rid, _self: _self, _attachments: _attachments, _ts: _ts, ...envelope } = document;
177
+ if (this.partitionKey !== "/id")
178
+ delete envelope[this.partitionKey.slice(1)];
179
+ return this.deserialize(JSON.stringify(envelope));
180
+ }
181
+ /**
182
+ * Map Cosmos storage errors to Webda errors.
183
+ * @param primaryKey - Model primary key
184
+ * @param error - Azure SDK error
185
+ */
186
+ translateError(primaryKey, error) {
187
+ const code = error.code;
188
+ if (code === 404)
189
+ throw new StoreNotFoundError(primaryKey, this.container().id);
190
+ if (code === 412)
191
+ throw new UpdateConditionFailError(primaryKey, "_etag", "current version");
192
+ if (code === 409)
193
+ throw new WebdaError.Conflict("Cosmos item already exists");
194
+ throw error;
195
+ }
196
+ /**
197
+ * Read a Cosmos document or raise the store not-found error.
198
+ * @param primaryKey - Model primary key
199
+ * @returns The read result
200
+ */
201
+ async read(primaryKey) {
202
+ try {
203
+ const { resource } = await this.item(primaryKey).read();
204
+ if (!resource)
205
+ throw new StoreNotFoundError(primaryKey, this.container().id);
206
+ return resource;
207
+ }
208
+ catch (error) {
209
+ this.translateError(primaryKey, error);
210
+ }
211
+ }
212
+ /**
213
+ * Perform get.
214
+ * @override
215
+ */
216
+ async get(primaryKey) {
217
+ return this.fromDocument(await this.read(primaryKey));
218
+ }
219
+ /**
220
+ * Perform exists.
221
+ * @override
222
+ */
223
+ async exists(primaryKey) {
224
+ try {
225
+ await this.read(primaryKey);
226
+ return true;
227
+ }
228
+ catch (error) {
229
+ if (error instanceof StoreNotFoundError)
230
+ return false;
231
+ throw error;
232
+ }
233
+ }
234
+ /**
235
+ * Perform create.
236
+ * @override
237
+ */
238
+ async create(data, save = true) {
239
+ const item = this.buildItem(data);
240
+ if (save) {
241
+ try {
242
+ await this.container().items.create(this.document(item));
243
+ }
244
+ catch (error) {
245
+ this.translateError(this.getPrimaryKey(item), error);
246
+ }
247
+ }
248
+ return item;
249
+ }
250
+ /**
251
+ * Validate a write condition against the current document.
252
+ * @param primaryKey - Model primary key
253
+ * @param document - Stored Cosmos document
254
+ * @param field - Conditional write field
255
+ * @param expected - Expected field value
256
+ */
257
+ checkWriteCondition(primaryKey, document, field, expected) {
258
+ if (!field)
259
+ return;
260
+ const actual = field === "_etag"
261
+ ? document._etag
262
+ : field.split(".").reduce((value, key) => value?.[key], this.fromDocument(document));
263
+ if ((actual instanceof Date ? actual.toISOString() : actual) !==
264
+ (expected instanceof Date ? expected.toISOString() : expected)) {
265
+ throw new UpdateConditionFailError(primaryKey, field, expected);
266
+ }
267
+ }
268
+ /**
269
+ * Use the shared model mutation helpers, then submit the complete change atomically under the read ETag.
270
+ * @param primaryKey - Model primary key
271
+ * @param change - Model mutation applied through shared repository helpers
272
+ * @param conditionField - Conditional write field
273
+ * @param condition - Expected write condition
274
+ * @param native - Native atomic Cosmos patch operations
275
+ */
276
+ async mutate(primaryKey, change, conditionField, condition, native) {
277
+ const original = await this.read(primaryKey);
278
+ this.checkWriteCondition(primaryKey, original, conditionField, condition);
279
+ const key = this.getPrimaryKey(primaryKey).toString();
280
+ const memory = new MemoryRepository(this.model, this.pks, this.separator, new Map([[key, this.serialize(this.fromDocument(original))]]));
281
+ await change(memory);
282
+ const updated = this.document((await memory.get(primaryKey)));
283
+ if (updated.id !== original.id)
284
+ throw new WebdaError.BadRequest("Cannot change a Cosmos primary key");
285
+ const operations = native ?? [];
286
+ const path = (name) => `/value/${name.replace(/~/g, "~0").replace(/\//g, "~1")}`;
287
+ if (!native) {
288
+ for (const [name, value] of Object.entries(updated.value)) {
289
+ if (JSON.stringify(value) !== JSON.stringify(original.value[name]))
290
+ operations.push({ op: "set", path: path(name), value });
291
+ }
292
+ for (const name of Object.keys(original.value))
293
+ if (!(name in updated.value))
294
+ operations.push({ op: "remove", path: path(name) });
295
+ }
296
+ if (JSON.stringify(updated.$serializer) !== JSON.stringify(original.$serializer))
297
+ operations.push({ op: "set", path: "/$serializer", value: updated.$serializer });
298
+ if (!operations.length)
299
+ return;
300
+ if (operations.length > 10)
301
+ throw new WebdaError.BadRequest("Cosmos supports at most ten atomic patch operations; use update() for larger changes");
302
+ try {
303
+ await this.item(primaryKey).patch(operations, {
304
+ accessCondition: { type: "IfMatch", condition: original._etag }
305
+ });
306
+ }
307
+ catch (error) {
308
+ this.translateError(primaryKey, error);
309
+ }
310
+ }
311
+ /**
312
+ * Perform update.
313
+ * @override
314
+ */
315
+ async update(data, conditionField, condition) {
316
+ const original = await this.read(data);
317
+ this.checkWriteCondition(data, original, conditionField, condition);
318
+ const existing = this.fromDocument(original);
319
+ const clazz = (data instanceof this.model ? data.constructor : existing.constructor);
320
+ const memory = new MemoryRepository(clazz, this.pks, this.separator);
321
+ const replacement = this.document((await memory.create(data, false)));
322
+ if (replacement.id !== original.id)
323
+ throw new WebdaError.BadRequest("Cannot change a Cosmos primary key");
324
+ try {
325
+ await this.item(data).replace(replacement, { accessCondition: { type: "IfMatch", condition: original._etag } });
326
+ }
327
+ catch (error) {
328
+ this.translateError(data, error);
329
+ }
330
+ }
331
+ /**
332
+ * Perform patch.
333
+ * @override
334
+ */
335
+ async patch(primaryKey, data, field, expected) {
336
+ const key = this.getPrimaryKey(primaryKey, true);
337
+ if (this.pks.some(name => Object.prototype.hasOwnProperty.call(data, name) && data[name] !== key[name])) {
338
+ throw new WebdaError.BadRequest("Cannot change a Cosmos primary key");
339
+ }
340
+ await this.mutate(primaryKey, repo => repo.patch(primaryKey, data), field, expected);
341
+ }
342
+ /**
343
+ * Perform delete.
344
+ * @override
345
+ */
346
+ async delete(primaryKey, field, expected) {
347
+ const original = await this.read(primaryKey);
348
+ this.checkWriteCondition(primaryKey, original, field, expected);
349
+ try {
350
+ await this.item(primaryKey).delete({ accessCondition: { type: "IfMatch", condition: original._etag } });
351
+ }
352
+ catch (error) {
353
+ this.translateError(primaryKey, error);
354
+ }
355
+ }
356
+ /**
357
+ * Perform remove attribute.
358
+ * @override
359
+ */
360
+ async removeAttribute(primaryKey, attribute, field, expected) {
361
+ await this.mutate(primaryKey, repo => repo.removeAttribute(primaryKey, attribute), field, expected);
362
+ }
363
+ /**
364
+ * Perform increment attributes.
365
+ * @override
366
+ */
367
+ async incrementAttributes(primaryKey, info, field, expected) {
368
+ const entries = Array.isArray(info)
369
+ ? info.map(entry => (typeof entry === "string" ? [entry, 1] : [entry.property, entry.value ?? 1]))
370
+ : Object.entries(info);
371
+ const operations = entries.map(([property, value]) => {
372
+ if (!Number.isFinite(value) ||
373
+ property.split(".").some(part => ["__proto__", "constructor", "prototype"].includes(part)))
374
+ throw new WebdaError.BadRequest("Invalid Cosmos increment");
375
+ return {
376
+ op: "incr",
377
+ path: "/value/" +
378
+ property
379
+ .split(".")
380
+ .map(part => part.replace(/~/g, "~0").replace(/\//g, "~1"))
381
+ .join("/"),
382
+ value
383
+ };
384
+ });
385
+ let updated = {};
386
+ await this.mutate(primaryKey, async (repo) => {
387
+ updated = (await repo.incrementAttributes(primaryKey, info));
388
+ }, field, expected, operations);
389
+ return updated;
390
+ }
391
+ /**
392
+ * Perform upsert item to collection.
393
+ * @override
394
+ */
395
+ async upsertItemToCollection(primaryKey, collection, item, index, field, expected) {
396
+ await this.mutate(primaryKey, repo => repo.upsertItemToCollection(primaryKey, collection, item, index, field, expected));
397
+ }
398
+ /**
399
+ * Perform delete item from collection.
400
+ * @override
401
+ */
402
+ async deleteItemFromCollection(primaryKey, collection, index, field, expected) {
403
+ await this.mutate(primaryKey, repo => repo.deleteItemFromCollection(primaryKey, collection, index, field, expected));
404
+ }
405
+ /**
406
+ * Perform query.
407
+ * @override
408
+ */
409
+ async query(query, params) {
410
+ const parsed = typeof query === "string" ? QL.parse(params ? QL.bind(query, params) : query) : QL.normalizeQuery(query);
411
+ QL.assertFilterQuery(parsed);
412
+ const types = this.acceptedTypes();
413
+ if (types.length)
414
+ parsed.filter = new QL.AndExpression([new QL.ComparisonExpression("IN", "__type", types), parsed.filter]);
415
+ const result = await this.container()
416
+ .items.query(cosmosQuery(parsed), {
417
+ maxItemCount: parsed.limit,
418
+ continuationToken: parsed.continuationToken
419
+ })
420
+ .fetchNext();
421
+ return {
422
+ results: result.resources.map(document => this.fromDocument(document)),
423
+ continuationToken: result.continuationToken
424
+ };
425
+ }
426
+ /**
427
+ * Perform iterate.
428
+ * @override
429
+ */
430
+ async *iterate(query, params) {
431
+ const parsed = QL.parse(params ? QL.bind(query, params) : query);
432
+ do {
433
+ const page = await this.query(parsed);
434
+ yield* page.results;
435
+ parsed.continuationToken = page.continuationToken;
436
+ } while (parsed.continuationToken);
437
+ }
438
+ /**
439
+ * Perform delete many.
440
+ * @override
441
+ */
442
+ async deleteMany() {
443
+ throw new WebdaError.NotImplemented("Cosmos bulk delete is not supported");
444
+ }
445
+ /**
446
+ * Perform update many.
447
+ * @override
448
+ */
449
+ async updateMany() {
450
+ throw new WebdaError.NotImplemented("Cosmos bulk update is not supported");
451
+ }
452
+ }
453
+ /** Cosmos DB NoSQL store using optimistic ETags and atomic document patches.
454
+ * @WebdaModda
455
+ */
456
+ let CosmosStore = (() => {
457
+ var _a;
458
+ let _classSuper = Store;
459
+ let _instanceExtraInitializers = [];
460
+ let _getRepository_decorators;
461
+ return _a = class CosmosStore extends _classSuper {
462
+ constructor() {
463
+ super(...arguments);
464
+ this.client = __runInitializers(this, _instanceExtraInitializers);
465
+ }
466
+ /**
467
+ * Perform init.
468
+ * @override
469
+ */
470
+ async init() {
471
+ const p = this.parameters;
472
+ this.client = new CosmosClient({
473
+ endpoint: p.endpoint,
474
+ ...(p.key !== undefined ? { key: SecretString.from(p.key, "key") } : { aadCredentials: getAzureCredential(p) })
475
+ });
476
+ if (p.createIfNotExists) {
477
+ await this.client.databases.createIfNotExists({ id: p.database });
478
+ await this.client
479
+ .database(p.database)
480
+ .containers.createIfNotExists({ id: p.container, partitionKey: { paths: [p.partitionKey] } }, { offerThroughput: p.throughput });
481
+ }
482
+ await super.init();
483
+ return this;
484
+ }
485
+ /**
486
+ * Perform get repository.
487
+ * @override
488
+ */
489
+ getRepository(model) {
490
+ const meta = useModelMetadata(model);
491
+ const repository = new CosmosRepository(model, meta.PrimaryKey, () => this.client.database(this.parameters.database).container(this.parameters.container), this.parameters.partitionKey, meta.PrimaryKeySeparator);
492
+ return new EventRepository(model, meta.PrimaryKey, repository, meta.PrimaryKeySeparator);
493
+ }
494
+ /**
495
+ * Perform stop.
496
+ * @override
497
+ */
498
+ async stop() {
499
+ this.client?.dispose();
500
+ await super.stop();
501
+ }
502
+ /**
503
+ * Describe the Azure resources and identity permissions required by this service.
504
+ * @param deployer - Deployment scope and identity helpers
505
+ * @returns The azure resources result
506
+ */
507
+ getAzureResources(deployer) {
508
+ const p = this.parameters, account = new URL(p.endpoint).hostname.split(".")[0];
509
+ const accountId = `/subscriptions/${deployer.resources.subscriptionId}/resourceGroups/${deployer.resources.resourceGroup}/providers/Microsoft.DocumentDB/databaseAccounts/${account}`;
510
+ const databaseId = `${accountId}/sqlDatabases/${p.database}`;
511
+ return {
512
+ resources: [
513
+ {
514
+ type: "Microsoft.DocumentDB/databaseAccounts/sqlDatabases",
515
+ apiVersion: "2024-11-15",
516
+ name: `${account}/${p.database}`,
517
+ properties: { resource: { id: p.database } }
518
+ },
519
+ {
520
+ type: "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers",
521
+ apiVersion: "2024-11-15",
522
+ name: `${account}/${p.database}/${p.container}`,
523
+ dependsOn: [databaseId],
524
+ properties: {
525
+ resource: { id: p.container, partitionKey: { paths: [p.partitionKey], kind: "Hash" } },
526
+ options: p.throughput ? { throughput: p.throughput } : {}
527
+ }
528
+ },
529
+ {
530
+ type: "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments",
531
+ apiVersion: "2024-11-15",
532
+ name: `[concat(${armLiteral(`${account}/`)}, guid(${armLiteral(accountId)}, ${armLiteral(`${p.database}/${p.container}`)}, ${armValue(deployer.getAppPrincipalId())}))]`,
533
+ dependsOn: [`${databaseId}/containers/${p.container}`],
534
+ properties: {
535
+ roleDefinitionId: `${accountId}/sqlRoleDefinitions/00000000-0000-0000-0000-000000000002`,
536
+ scope: `${accountId}/dbs/${p.database}/colls/${p.container}`,
537
+ principalId: deployer.getAppPrincipalId()
538
+ }
539
+ }
540
+ ]
541
+ };
542
+ }
543
+ },
544
+ (() => {
545
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
546
+ _getRepository_decorators = [InstanceCache()];
547
+ __esDecorate(_a, null, _getRepository_decorators, { kind: "method", name: "getRepository", static: false, private: false, access: { has: obj => "getRepository" in obj, get: obj => obj.getRepository }, metadata: _metadata }, null, _instanceExtraInitializers);
548
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
549
+ })(),
550
+ _a.Parameters = CosmosStoreParameters,
551
+ _a;
552
+ })();
553
+ export { CosmosStore };
554
+ //# sourceMappingURL=cosmos.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos.service.js","sources":["../../src/services/cosmos.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
2
+ import { Service, ServiceParameters } from "@webda/core";
3
+ /** Non-HTTP bindings dispatch to services implementing this contract. */
4
+ export interface AzureEventsHandler {
5
+ handleAzureEvent(source: "servicebus" | "blob" | "timer", event: unknown, context: InvocationContext): Promise<boolean>;
6
+ }
7
+ /** Azure Functions HTTP adapter settings. */
8
+ export declare class AzureFunctionServerParameters extends ServiceParameters {
9
+ requestIdHeader: string;
10
+ }
11
+ /** Run Webda routes and event handlers inside the Azure Functions v4 runtime.
12
+ * @WebdaModda
13
+ */
14
+ export declare class AzureFunctionServer extends Service<AzureFunctionServerParameters> {
15
+ static Parameters: typeof AzureFunctionServerParameters;
16
+ /**
17
+ * Execute an Azure HTTP request through the Webda router.
18
+ * @param request - Azure Functions HTTP request
19
+ * @param invocation - Azure invocation metadata
20
+ * @returns The handle request result
21
+ */
22
+ handleRequest(request: HttpRequest, invocation: InvocationContext): Promise<HttpResponseInit>;
23
+ /**
24
+ * Resolve the client address from the rightmost X-Forwarded-For entry, without any port. Never throws.
25
+ * @param headers - the request headers
26
+ * @returns the address, undefined if unknown or invalid
27
+ */
28
+ protected getClientIp(headers: Record<string, string>): string | undefined;
29
+ /**
30
+ * Dispatch an Azure binding event to configured handler services.
31
+ * @param source - Azure binding event source
32
+ * @param event - Received event payload
33
+ * @param context - Webda or Azure invocation context
34
+ */
35
+ handleEvent(source: "servicebus" | "blob" | "timer", event: unknown, context: InvocationContext): Promise<void>;
36
+ /**
37
+ * Execute only the declared cron matching the exported identifier, through its operation
38
+ * @param id - Secret name or exported cron identifier
39
+ */
40
+ handleCron(id: string): Promise<void>;
41
+ }
42
+ //# sourceMappingURL=functionserver.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionserver.service.d.ts","sources":["../../src/services/functionserver.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIzF,OAAO,EAML,OAAO,EACP,iBAAiB,EAMlB,MAAM,aAAa,CAAC;AAErB,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CACd,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,EACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,6CAA6C;AAC7C,qBAAa,6BAA8B,SAAQ,iBAAiB;IAClE,eAAe,SAAkB;CAClC;AA6DD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,OAAO,CAAC,6BAA6B,CAAC;IAC7E,MAAM,CAAC,UAAU,uCAAiC;IAElD;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoGlG;IAED;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAiBzE;IAED;;;;;OAKG;IACG,WAAW,CACf,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,EACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CASf;IAED;;;OAGG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1C;CACF"}