@dual-os/dynamics-api 0.0.0-stage → 8.0.4

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 (46) hide show
  1. package/LICENSE +4 -0
  2. package/Runner.js +5537 -0
  3. package/Runner.js.map +59 -0
  4. package/bundle-inventory.json +1 -0
  5. package/dist/_virtual/_rolldown/runtime.js +10 -0
  6. package/dist/_virtual/_rolldown/runtime.js.map +9 -0
  7. package/dist/auth.d.ts +35 -0
  8. package/dist/auth.d.ts.map +1 -0
  9. package/dist/auth.js +16 -0
  10. package/dist/auth.js.map +9 -0
  11. package/dist/generated/http.d.ts +81 -0
  12. package/dist/generated/http.d.ts.map +1 -0
  13. package/dist/generated/http.js +64 -0
  14. package/dist/generated/http.js.map +9 -0
  15. package/dist/generated/operations.d.ts +113 -0
  16. package/dist/generated/operations.d.ts.map +1 -0
  17. package/dist/generated/operations.js +46 -0
  18. package/dist/generated/operations.js.map +9 -0
  19. package/dist/generated/plugin.d.ts +55 -0
  20. package/dist/generated/plugin.d.ts.map +1 -0
  21. package/dist/generated/plugin.js +95 -0
  22. package/dist/generated/plugin.js.map +10 -0
  23. package/dist/triggers.d.ts +92 -0
  24. package/dist/triggers.d.ts.map +1 -0
  25. package/dist/triggers.js +17 -0
  26. package/dist/triggers.js.map +9 -0
  27. package/dual-plugin.json +1 -0
  28. package/licenses/@dual-os_sdk@0.9.0/LICENSE +4 -0
  29. package/licenses/@effect_platform-node-shared@4.1.2/LICENSE +21 -0
  30. package/licenses/@effect_platform-node@4.1.2/LICENSE +21 -0
  31. package/licenses/effect@4.1.2/LICENSE +21 -0
  32. package/package.json +1 -6
  33. package/plugin-2jdfj02n.js +18 -0
  34. package/plugin-2jdfj02n.js.map +10 -0
  35. package/plugin-2tb84mbs.js +172 -0
  36. package/plugin-2tb84mbs.js.map +10 -0
  37. package/plugin-8vsgh1ax.js +62 -0
  38. package/plugin-8vsgh1ax.js.map +10 -0
  39. package/plugin-a6qpnp2x.js +19076 -0
  40. package/plugin-a6qpnp2x.js.map +158 -0
  41. package/plugin-tq4sm338.js +1362 -0
  42. package/plugin-tq4sm338.js.map +18 -0
  43. package/plugin-vwwtd1xe.js +197 -0
  44. package/plugin-vwwtd1xe.js.map +10 -0
  45. package/plugin.json +26 -0
  46. package/README.md +0 -3
@@ -0,0 +1,92 @@
1
+ import { Row } from "./generated/operations.js";
2
+ import { Effect, Schema } from "effect";
3
+ import { Trigger } from "@dual-os/sdk";
4
+ //#region src/triggers.d.ts
5
+ declare const DataverseChangeFeedError_base: Schema.Class<DataverseChangeFeedError, Schema.TaggedStruct<"DataverseChangeFeedError", {
6
+ readonly cause: Schema.optionalKey<Schema.Defect>;
7
+ readonly message: Schema.String;
8
+ }>, import("effect/Cause").YieldableError>;
9
+ declare class DataverseChangeFeedError extends DataverseChangeFeedError_base {}
10
+ export declare const triggers: readonly [Trigger.Trigger<"changes", "polling", Schema.Struct<{
11
+ readonly entitySet: Schema.NonEmptyString;
12
+ readonly primaryKey: Schema.NonEmptyString;
13
+ readonly select: Schema.optionalKey<Schema.$Array<Schema.NonEmptyString>>;
14
+ }>, Schema.Union<readonly [Schema.Struct<{
15
+ readonly event: Schema.Literals<readonly ["created", "updated"]>;
16
+ readonly id: Schema.NonEmptyString;
17
+ readonly row: Schema.Codec<Row, Row, never, never>;
18
+ }>, Schema.Struct<{
19
+ readonly event: Schema.Literal<"deleted">;
20
+ readonly id: Schema.NonEmptyString;
21
+ readonly reason: Schema.NonEmptyString;
22
+ }>]>, Schema.Struct<{
23
+ readonly deltaLink: Schema.NonEmptyString;
24
+ readonly revisions: Schema.$Record<Schema.String, Schema.NonEmptyString>;
25
+ }>, true>];
26
+ export declare const handlers: {
27
+ changes: {
28
+ poll: (input: Trigger.PollingInput<{
29
+ readonly entitySet: string;
30
+ readonly primaryKey: string;
31
+ readonly select?: readonly string[];
32
+ }, {
33
+ readonly deltaLink: string;
34
+ readonly revisions: {
35
+ readonly [x: string]: string;
36
+ };
37
+ } | undefined>, context: {
38
+ readonly auth: import("@dual-os/sdk/AuthMethodBinding").Context<readonly [import("@dual-os/sdk/AuthMethod").AuthMethod<"oauth", Schema.Struct<{
39
+ readonly clientId: Schema.String;
40
+ readonly clientSecret: Schema.String;
41
+ readonly organizationUrl: Schema.String;
42
+ readonly tenantId: Schema.withDecodingDefaultKey<Schema.String, never>;
43
+ }>, undefined, Schema.Struct<{
44
+ readonly accessToken: Schema.String;
45
+ readonly expiresAt: Schema.optional<Schema.Number>;
46
+ readonly expiresIn: Schema.optional<Schema.Number>;
47
+ readonly raw: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
48
+ readonly refreshToken: Schema.optional<Schema.String>;
49
+ readonly scope: Schema.optional<Schema.String>;
50
+ readonly tokenType: Schema.optional<Schema.String>;
51
+ }>, Schema.Struct<{
52
+ readonly accessToken: Schema.String;
53
+ readonly organizationUrl: Schema.String;
54
+ }>, import("@dual-os/sdk/OAuth2TokenRefresher").Service>, import("@dual-os/sdk/AuthMethod").AuthMethod<"application", Schema.Struct<{
55
+ readonly clientId: Schema.NonEmptyString;
56
+ readonly clientSecret: Schema.NonEmptyString;
57
+ readonly organizationUrl: Schema.String;
58
+ readonly tenantId: Schema.String;
59
+ }>, Schema.Struct<{}>, Schema.Struct<{
60
+ readonly accessToken: Schema.String;
61
+ readonly expiresAt: Schema.Finite;
62
+ }>, Schema.Struct<{
63
+ readonly accessToken: Schema.String;
64
+ readonly organizationUrl: Schema.String;
65
+ }>, import("effect/http/HttpClient").HttpClient>]>;
66
+ } & import("@dual-os/sdk/ConnectionResolver").ConnectionResolutionContext) => Effect.Effect<{
67
+ events: never[] | (Trigger.KeyedEvent<{
68
+ readonly event: "created" | "updated";
69
+ readonly id: string;
70
+ readonly row: Row;
71
+ } | {
72
+ readonly event: "deleted";
73
+ readonly id: string;
74
+ readonly reason: string;
75
+ }> | {
76
+ key: string;
77
+ payload: {
78
+ event: "deleted";
79
+ id: string;
80
+ reason: string;
81
+ };
82
+ })[];
83
+ state: {
84
+ deltaLink: string;
85
+ revisions: Record<string, string> | Record<never, string>;
86
+ };
87
+ }, DataverseChangeFeedError | Schema.SchemaError | import("@dual-os/sdk/Action").ActionHandlerFailure, import("effect/http/HttpClient").HttpClient>;
88
+ };
89
+ };
90
+ //#endregion
91
+ export {};
92
+ //# sourceMappingURL=triggers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggers.d.ts","names":["Operations.Row"],"sources":["../src/triggers.ts"],"mappings":";;;;;;;;cAQM,iCAAiC;qBAwC1B,oBAAQ,QAAA,8BAAA,OAAA;;;;;;;;;;;;;;;;qBAER;;IAET,OAAI,OAAA,QAAA"}
@@ -0,0 +1,17 @@
1
+ // @bun
2
+ import {
3
+ triggers2,
4
+ handlers2
5
+ } from "../plugin-2tb84mbs.js";
6
+ import"../plugin-vwwtd1xe.js";
7
+ import"../plugin-8vsgh1ax.js";
8
+ import"../plugin-tq4sm338.js";
9
+ import"../plugin-2jdfj02n.js";
10
+ import"../plugin-a6qpnp2x.js";
11
+ export {
12
+ handlers2 as handlers,
13
+ triggers2 as triggers
14
+ };
15
+
16
+ //# debugId=839FD91A59A8813364756E2164756E21
17
+ //# sourceMappingURL=triggers.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "839FD91A59A8813364756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1 @@
1
+ {"entrypoint":"dist/generated/plugin.js","export":"dynamicsApiPlugin","format":2,"plugin":"dynamics-api","runner":"Runner.js","sdk_version":"0.9.0","version":"8.0.4"}
@@ -0,0 +1,4 @@
1
+ All rights reserved.
2
+
3
+ This package is proprietary and is not licensed for public use or redistribution.
4
+ Use and distribution require permission from the rights holder under a separate agreement.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Effectful Technologies Inc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Effectful Technologies Inc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Effectful Technologies Inc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/package.json CHANGED
@@ -1,6 +1 @@
1
- {
2
- "name": "@dual-os/dynamics-api",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
1
+ {"name":"@dual-os/dynamics-api","version":"8.0.4","license":"UNLICENSED","exports":{".":"./dist/generated/plugin.js","./definition":"./dist/generated/plugin.js","./executable":"./dist/generated/plugin.js","./plugin.json":"./plugin.json","./package.json":"./package.json"},"files":["**/*"],"type":"module","scripts":{},"dependencies":{},"devDependencies":{},"dual":{"plugin":{"entrypoint":"dist/generated/plugin.js","export":"dynamicsApiPlugin","format":2,"plugin":"dynamics-api","runner":"Runner.js","sdk_version":"0.9.0","version":"8.0.4","assets":["dist/_virtual/_rolldown/runtime.js","dist/auth.d.ts","dist/auth.d.ts.map","dist/auth.js","dist/auth.js.map","dist/generated/http.d.ts","dist/generated/http.d.ts.map","dist/generated/http.js","dist/generated/http.js.map","dist/generated/operations.d.ts","dist/generated/operations.d.ts.map","dist/generated/operations.js","dist/generated/operations.js.map","dist/generated/plugin.d.ts","dist/generated/plugin.d.ts.map","dist/generated/plugin.js","dist/generated/plugin.js.map","dist/triggers.d.ts","dist/triggers.d.ts.map","dist/triggers.js","dist/triggers.js.map","plugin.json","package.json"]}},"peerDependencies":{},"optionalDependencies":{}}
@@ -0,0 +1,18 @@
1
+ // @bun
2
+ // dist/_virtual/_rolldown/runtime.js
3
+ var __defProp = Object.defineProperty;
4
+ var __exportAll2 = (all, no_symbols) => {
5
+ let target = {};
6
+ for (var name in all)
7
+ __defProp(target, name, {
8
+ get: all[name],
9
+ enumerable: true
10
+ });
11
+ if (!no_symbols)
12
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ return target;
14
+ };
15
+ export { __exportAll2 };
16
+
17
+ //# debugId=082734D28D54F6AF64756E2164756E21
18
+ //# sourceMappingURL=plugin-2jdfj02n.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../bundle-input/dist/_virtual/_rolldown/runtime.js"],
4
+ "sourcesContent": [
5
+ "//#region \\0rolldown/runtime.js\nvar __defProp = Object.defineProperty;\nvar __exportAll = (all, no_symbols) => {\n\tlet target = {};\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n\tif (!no_symbols) __defProp(target, Symbol.toStringTag, { value: \"Module\" });\n\treturn target;\n};\n//#endregion\nexport { __exportAll };\n"
6
+ ],
7
+ "mappings": ";;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,eAAc,CAAC,KAAK,eAAe;AAAA,EACtC,IAAI,SAAS,CAAC;AAAA,EACd,SAAS,QAAQ;AAAA,IAAK,UAAU,QAAQ,MAAM;AAAA,MAC7C,KAAK,IAAI;AAAA,MACT,YAAY;AAAA,IACb,CAAC;AAAA,EACD,IAAI,CAAC;AAAA,IAAY,UAAU,QAAQ,OAAO,aAAa,EAAE,OAAO,SAAS,CAAC;AAAA,EAC1E,OAAO;AAAA;",
8
+ "debugId": "082734D28D54F6AF64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,172 @@
1
+ // @bun
2
+ import {
3
+ pipe,
4
+ none,
5
+ isSome,
6
+ match2,
7
+ fromUndefinedOr,
8
+ contains,
9
+ empty,
10
+ get2,
11
+ remove,
12
+ set,
13
+ append,
14
+ appendAll,
15
+ empty2,
16
+ dedupeWith,
17
+ dedupe,
18
+ join,
19
+ endsWith,
20
+ reduce2,
21
+ fail5,
22
+ map4,
23
+ mapError,
24
+ fnUntraced,
25
+ fn,
26
+ decodeUnknownEffect,
27
+ decodeEffect,
28
+ optionalKey,
29
+ Literal,
30
+ String3,
31
+ Struct,
32
+ Record,
33
+ ArraySchema,
34
+ Union,
35
+ Literals,
36
+ UndefinedOr,
37
+ NonEmptyString,
38
+ Defect,
39
+ TaggedError2,
40
+ paginate,
41
+ runFold,
42
+ Trigger_exports
43
+ } from "./plugin-a6qpnp2x.js";
44
+ import {
45
+ match
46
+ } from "./plugin-tq4sm338.js";
47
+ import {
48
+ Row2,
49
+ rows_listRows2
50
+ } from "./plugin-vwwtd1xe.js";
51
+
52
+ // dist/triggers.js
53
+ var DataverseChangeFeedError = class extends TaggedError2()("DataverseChangeFeedError", {
54
+ cause: optionalKey(Defect()),
55
+ message: String3
56
+ }) {
57
+ };
58
+ var identity = Struct({
59
+ etag: NonEmptyString,
60
+ id: NonEmptyString
61
+ });
62
+ var tombstone = Struct({
63
+ "@odata.context": NonEmptyString,
64
+ id: NonEmptyString,
65
+ reason: NonEmptyString
66
+ });
67
+ var output = Union([Struct({
68
+ event: Literals(["created", "updated"]),
69
+ id: NonEmptyString,
70
+ row: Row2
71
+ }), Struct({
72
+ event: Literal("deleted"),
73
+ id: NonEmptyString,
74
+ reason: NonEmptyString
75
+ })]);
76
+ var state = Struct({
77
+ deltaLink: NonEmptyString,
78
+ revisions: Record(String3, NonEmptyString)
79
+ });
80
+ var triggers2 = [Trigger_exports.polling("changes", {
81
+ description: "Polls one Dataverse table with change tracking enabled and reports created, updated and deleted rows after a silent first check.",
82
+ name: "Dataverse row changes",
83
+ config: Struct({
84
+ entitySet: NonEmptyString,
85
+ primaryKey: NonEmptyString,
86
+ select: optionalKey(ArraySchema(NonEmptyString))
87
+ }),
88
+ output,
89
+ state
90
+ })];
91
+ var handlers2 = { changes: { poll: fn("Dynamics.changes.poll")(function* (input, context) {
92
+ const delta = yield* pipe(paginate(input.state?.deltaLink, (nextLink) => map4(rows_listRows2.run({
93
+ $select: pipe([input.config.primaryKey], appendAll(input.config.select ?? []), dedupe, join(",")),
94
+ Prefer: "odata.track-changes",
95
+ entitySet: input.config.entitySet,
96
+ ...nextLink === undefined ? {} : { nextLink }
97
+ }, context), (page) => [[page], fromUndefinedOr(page["@odata.nextLink"])])), runFold(() => ({
98
+ deltaLink: none(),
99
+ rows: empty2()
100
+ }), (previous, page) => ({
101
+ deltaLink: fromUndefinedOr(page["@odata.deltaLink"]),
102
+ rows: appendAll(previous.rows, page.value)
103
+ })));
104
+ const deltaLink = yield* pipe(delta.deltaLink, match2({
105
+ onNone: () => fail5(DataverseChangeFeedError.make({ message: "The final change-tracking page has no delta link" })),
106
+ onSome: (link) => decodeEffect(NonEmptyString)(link)
107
+ }));
108
+ const updated = yield* reduce2(delta.rows, () => ({
109
+ events: empty2(),
110
+ revisions: input.state?.revisions ?? empty()
111
+ }), fnUntraced(function* (previous, row) {
112
+ const rowContext = yield* pipe(decodeUnknownEffect(UndefinedOr(String3))(row["@odata.context"]), mapError((cause) => DataverseChangeFeedError.make({
113
+ cause,
114
+ message: "Invalid row context"
115
+ })));
116
+ if (rowContext !== undefined && pipe(rowContext, endsWith("/$deletedEntity"))) {
117
+ const deleted = yield* pipe(decodeUnknownEffect(tombstone)(row), mapError((cause) => DataverseChangeFeedError.make({
118
+ cause,
119
+ message: "Invalid deleted row identity"
120
+ })));
121
+ return {
122
+ events: append(previous.events, {
123
+ key: `${input.config.entitySet}:${deleted.id}:deleted:${input.state?.deltaLink ?? deltaLink}`,
124
+ payload: {
125
+ event: "deleted",
126
+ id: deleted.id,
127
+ reason: deleted.reason
128
+ }
129
+ }),
130
+ revisions: remove(previous.revisions, deleted.id)
131
+ };
132
+ }
133
+ const live = yield* pipe(decodeUnknownEffect(identity)({
134
+ etag: row["@odata.etag"],
135
+ id: row[input.config.primaryKey]
136
+ }), mapError((cause) => DataverseChangeFeedError.make({
137
+ cause,
138
+ message: "A live row requires its configured primary key and @odata.etag"
139
+ })));
140
+ const before = get2(previous.revisions, live.id);
141
+ if (contains(before, live.etag))
142
+ return previous;
143
+ return {
144
+ events: append(previous.events, {
145
+ key: `${input.config.entitySet}:${live.id}:${live.etag}`,
146
+ payload: {
147
+ event: match(isSome(before), {
148
+ onFalse: () => "created",
149
+ onTrue: () => "updated"
150
+ }),
151
+ id: live.id,
152
+ row
153
+ }
154
+ }),
155
+ revisions: set(previous.revisions, live.id, live.etag)
156
+ };
157
+ }));
158
+ return {
159
+ events: match(input.state === undefined, {
160
+ onFalse: () => dedupeWith(updated.events, (left, right) => left.key === right.key),
161
+ onTrue: () => []
162
+ }),
163
+ state: {
164
+ deltaLink,
165
+ revisions: updated.revisions
166
+ }
167
+ };
168
+ }) } };
169
+ export { triggers2, handlers2 };
170
+
171
+ //# debugId=474650A196ECA17564756E2164756E21
172
+ //# sourceMappingURL=plugin-2tb84mbs.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../bundle-input/dist/triggers.js"],
4
+ "sourcesContent": [
5
+ "import { Row, rows_listRows } from \"./generated/operations.js\";\nimport { Array, Boolean, Effect, Option, Record, Schema, Stream, String, pipe } from \"effect\";\nimport { Trigger } from \"@dual-os/sdk\";\n//#region src/triggers.ts\nvar DataverseChangeFeedError = class extends Schema.TaggedError()(\"DataverseChangeFeedError\", {\n\tcause: Schema.optionalKey(Schema.Defect()),\n\tmessage: Schema.String\n}) {};\nconst identity = Schema.Struct({\n\tetag: Schema.NonEmptyString,\n\tid: Schema.NonEmptyString\n});\nconst tombstone = Schema.Struct({\n\t\"@odata.context\": Schema.NonEmptyString,\n\tid: Schema.NonEmptyString,\n\treason: Schema.NonEmptyString\n});\nconst output = Schema.Union([Schema.Struct({\n\tevent: Schema.Literals([\"created\", \"updated\"]),\n\tid: Schema.NonEmptyString,\n\trow: Row\n}), Schema.Struct({\n\tevent: Schema.Literal(\"deleted\"),\n\tid: Schema.NonEmptyString,\n\treason: Schema.NonEmptyString\n})]);\nconst state = Schema.Struct({\n\tdeltaLink: Schema.NonEmptyString,\n\trevisions: Schema.Record(Schema.String, Schema.NonEmptyString)\n});\nconst triggers = [Trigger.polling(\"changes\", {\n\tdescription: \"Polls one Dataverse table with change tracking enabled and reports created, updated and deleted rows after a silent first check.\",\n\tname: \"Dataverse row changes\",\n\tconfig: Schema.Struct({\n\t\tentitySet: Schema.NonEmptyString,\n\t\tprimaryKey: Schema.NonEmptyString,\n\t\tselect: Schema.optionalKey(Schema.Array(Schema.NonEmptyString))\n\t}),\n\toutput,\n\tstate\n})];\nconst handlers = { changes: { poll: Effect.fn(\"Dynamics.changes.poll\")(function* (input, context) {\n\tconst delta = yield* pipe(Stream.paginate(input.state?.deltaLink, (nextLink) => Effect.map(rows_listRows.run({\n\t\t$select: pipe([input.config.primaryKey], Array.appendAll(input.config.select ?? []), Array.dedupe, Array.join(\",\")),\n\t\tPrefer: \"odata.track-changes\",\n\t\tentitySet: input.config.entitySet,\n\t\t...nextLink === void 0 ? {} : { nextLink }\n\t}, context), (page) => [[page], Option.fromUndefinedOr(page[\"@odata.nextLink\"])])), Stream.runFold(() => ({\n\t\tdeltaLink: Option.none(),\n\t\trows: Array.empty()\n\t}), (previous, page) => ({\n\t\tdeltaLink: Option.fromUndefinedOr(page[\"@odata.deltaLink\"]),\n\t\trows: Array.appendAll(previous.rows, page.value)\n\t})));\n\tconst deltaLink = yield* pipe(delta.deltaLink, Option.match({\n\t\tonNone: () => Effect.fail(DataverseChangeFeedError.make({ message: \"The final change-tracking page has no delta link\" })),\n\t\tonSome: (link) => Schema.decodeEffect(Schema.NonEmptyString)(link)\n\t}));\n\tconst updated = yield* Effect.reduce(delta.rows, () => ({\n\t\tevents: Array.empty(),\n\t\trevisions: input.state?.revisions ?? Record.empty()\n\t}), Effect.fnUntraced(function* (previous, row) {\n\t\tconst rowContext = yield* pipe(Schema.decodeUnknownEffect(Schema.UndefinedOr(Schema.String))(row[\"@odata.context\"]), Effect.mapError((cause) => DataverseChangeFeedError.make({\n\t\t\tcause,\n\t\t\tmessage: \"Invalid row context\"\n\t\t})));\n\t\tif (rowContext !== void 0 && pipe(rowContext, String.endsWith(\"/$deletedEntity\"))) {\n\t\t\tconst deleted = yield* pipe(Schema.decodeUnknownEffect(tombstone)(row), Effect.mapError((cause) => DataverseChangeFeedError.make({\n\t\t\t\tcause,\n\t\t\t\tmessage: \"Invalid deleted row identity\"\n\t\t\t})));\n\t\t\treturn {\n\t\t\t\tevents: Array.append(previous.events, {\n\t\t\t\t\tkey: `${input.config.entitySet}:${deleted.id}:deleted:${input.state?.deltaLink ?? deltaLink}`,\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tevent: \"deleted\",\n\t\t\t\t\t\tid: deleted.id,\n\t\t\t\t\t\treason: deleted.reason\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\trevisions: Record.remove(previous.revisions, deleted.id)\n\t\t\t};\n\t\t}\n\t\tconst live = yield* pipe(Schema.decodeUnknownEffect(identity)({\n\t\t\tetag: row[\"@odata.etag\"],\n\t\t\tid: row[input.config.primaryKey]\n\t\t}), Effect.mapError((cause) => DataverseChangeFeedError.make({\n\t\t\tcause,\n\t\t\tmessage: \"A live row requires its configured primary key and @odata.etag\"\n\t\t})));\n\t\tconst before = Record.get(previous.revisions, live.id);\n\t\tif (Option.contains(before, live.etag)) return previous;\n\t\treturn {\n\t\t\tevents: Array.append(previous.events, {\n\t\t\t\tkey: `${input.config.entitySet}:${live.id}:${live.etag}`,\n\t\t\t\tpayload: {\n\t\t\t\t\tevent: Boolean.match(Option.isSome(before), {\n\t\t\t\t\t\tonFalse: () => \"created\",\n\t\t\t\t\t\tonTrue: () => \"updated\"\n\t\t\t\t\t}),\n\t\t\t\t\tid: live.id,\n\t\t\t\t\trow\n\t\t\t\t}\n\t\t\t}),\n\t\t\trevisions: Record.set(previous.revisions, live.id, live.etag)\n\t\t};\n\t}));\n\treturn {\n\t\tevents: Boolean.match(input.state === void 0, {\n\t\t\tonFalse: () => Array.dedupeWith(updated.events, (left, right) => left.key === right.key),\n\t\t\tonTrue: () => []\n\t\t}),\n\t\tstate: {\n\t\t\tdeltaLink,\n\t\t\trevisions: updated.revisions\n\t\t}\n\t};\n}) } };\n//#endregion\nexport { handlers, triggers };\n\n//# sourceMappingURL=triggers.js.map"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "474650A196ECA17564756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,62 @@
1
+ // @bun
2
+ import {
3
+ __exportAll2
4
+ } from "./plugin-2jdfj02n.js";
5
+ import {
6
+ Http_exports,
7
+ File2,
8
+ FileFromBase642,
9
+ FileFromBase64Url2,
10
+ Base64FromFile2,
11
+ Base64UrlFromFile2,
12
+ FileFromDataUri2,
13
+ DataUriFromFile2,
14
+ DateTimeFromUnixSeconds2,
15
+ UnixSecondsFromDateTime2,
16
+ DateTimeFromRfc28222,
17
+ Rfc2822FromDateTime2,
18
+ decoded2,
19
+ path2,
20
+ literal2,
21
+ segments2,
22
+ params2,
23
+ form2,
24
+ continuation2,
25
+ preauthenticated2,
26
+ auth_exports2
27
+ } from "./plugin-tq4sm338.js";
28
+
29
+ // dist/generated/http.js
30
+ var http_exports = /* @__PURE__ */ __exportAll2({
31
+ Base64FromFile: () => Base64FromFile2,
32
+ Base64UrlFromFile: () => Base64UrlFromFile2,
33
+ DataUriFromFile: () => DataUriFromFile2,
34
+ DateTimeFromRfc2822: () => DateTimeFromRfc28222,
35
+ DateTimeFromUnixSeconds: () => DateTimeFromUnixSeconds2,
36
+ File: () => File2,
37
+ FileFromBase64: () => FileFromBase642,
38
+ FileFromBase64Url: () => FileFromBase64Url2,
39
+ FileFromDataUri: () => FileFromDataUri2,
40
+ Http: () => http_exports,
41
+ Rfc2822FromDateTime: () => Rfc2822FromDateTime2,
42
+ UnixSecondsFromDateTime: () => UnixSecondsFromDateTime2,
43
+ continuation: () => continuation2,
44
+ decoded: () => decoded2,
45
+ endpoint: () => endpoint2,
46
+ execute: () => execute2,
47
+ form: () => form2,
48
+ googleUpload: () => googleUpload2,
49
+ graphql: () => graphql2,
50
+ literal: () => literal2,
51
+ mcp: () => mcp2,
52
+ params: () => params2,
53
+ path: () => path2,
54
+ preauthenticated: () => preauthenticated2,
55
+ segments: () => segments2,
56
+ variants: () => variants2
57
+ });
58
+ var { endpoint: endpoint2, execute: execute2, googleUpload: googleUpload2, graphql: graphql2, mcp: mcp2, variants: variants2 } = Http_exports.make(auth_exports2);
59
+ export { http_exports, endpoint2, execute2, googleUpload2, graphql2, mcp2, variants2 };
60
+
61
+ //# debugId=51EF335407DB324B64756E2164756E21
62
+ //# sourceMappingURL=plugin-8vsgh1ax.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../bundle-input/dist/generated/http.js"],
4
+ "sourcesContent": [
5
+ "import { __exportAll } from \"../_virtual/_rolldown/runtime.js\";\nimport { auth_exports } from \"../auth.js\";\nimport \"./http.js\";\nimport { Http } from \"@dual-os/sdk\";\nimport { Base64FromFile, Base64UrlFromFile, DataUriFromFile, DateTimeFromRfc2822, DateTimeFromUnixSeconds, File, FileFromBase64, FileFromBase64Url, FileFromDataUri, Rfc2822FromDateTime, UnixSecondsFromDateTime, continuation, decoded, form, literal, params, path, preauthenticated, segments } from \"@dual-os/sdk/Http\";\n//#region src/generated/http.ts\nvar http_exports = /* @__PURE__ */ __exportAll({\n\tBase64FromFile: () => Base64FromFile,\n\tBase64UrlFromFile: () => Base64UrlFromFile,\n\tDataUriFromFile: () => DataUriFromFile,\n\tDateTimeFromRfc2822: () => DateTimeFromRfc2822,\n\tDateTimeFromUnixSeconds: () => DateTimeFromUnixSeconds,\n\tFile: () => File,\n\tFileFromBase64: () => FileFromBase64,\n\tFileFromBase64Url: () => FileFromBase64Url,\n\tFileFromDataUri: () => FileFromDataUri,\n\tHttp: () => http_exports,\n\tRfc2822FromDateTime: () => Rfc2822FromDateTime,\n\tUnixSecondsFromDateTime: () => UnixSecondsFromDateTime,\n\tcontinuation: () => continuation,\n\tdecoded: () => decoded,\n\tendpoint: () => endpoint,\n\texecute: () => execute,\n\tform: () => form,\n\tgoogleUpload: () => googleUpload,\n\tgraphql: () => graphql,\n\tliteral: () => literal,\n\tmcp: () => mcp,\n\tparams: () => params,\n\tpath: () => path,\n\tpreauthenticated: () => preauthenticated,\n\tsegments: () => segments,\n\tvariants: () => variants\n});\nconst { endpoint, execute, googleUpload, graphql, mcp, variants } = Http.make(auth_exports);\n//#endregion\nexport { Base64FromFile, Base64UrlFromFile, DataUriFromFile, DateTimeFromRfc2822, DateTimeFromUnixSeconds, File, FileFromBase64, FileFromBase64Url, FileFromDataUri, http_exports as Http, Rfc2822FromDateTime, UnixSecondsFromDateTime, continuation, decoded, endpoint, execute, form, googleUpload, graphql, literal, mcp, params, path, preauthenticated, segments, variants };\n\n//# sourceMappingURL=http.js.map"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAI,+BAA+B,aAAY;AAAA,EAC9C,gBAAgB,MAAM;AAAA,EACtB,mBAAmB,MAAM;AAAA,EACzB,iBAAiB,MAAM;AAAA,EACvB,qBAAqB,MAAM;AAAA,EAC3B,yBAAyB,MAAM;AAAA,EAC/B,MAAM,MAAM;AAAA,EACZ,gBAAgB,MAAM;AAAA,EACtB,mBAAmB,MAAM;AAAA,EACzB,iBAAiB,MAAM;AAAA,EACvB,MAAM,MAAM;AAAA,EACZ,qBAAqB,MAAM;AAAA,EAC3B,yBAAyB,MAAM;AAAA,EAC/B,cAAc,MAAM;AAAA,EACpB,SAAS,MAAM;AAAA,EACf,UAAU,MAAM;AAAA,EAChB,SAAS,MAAM;AAAA,EACf,MAAM,MAAM;AAAA,EACZ,cAAc,MAAM;AAAA,EACpB,SAAS,MAAM;AAAA,EACf,SAAS,MAAM;AAAA,EACf,KAAK,MAAM;AAAA,EACX,QAAQ,MAAM;AAAA,EACd,MAAM,MAAM;AAAA,EACZ,kBAAkB,MAAM;AAAA,EACxB,UAAU,MAAM;AAAA,EAChB,UAAU,MAAM;AACjB,CAAC;AACD,MAAQ,qBAAU,mBAAS,6BAAc,mBAAS,WAAK,wBAAa,aAAK,KAAK,aAAY;",
8
+ "debugId": "51EF335407DB324B64756E2164756E21",
9
+ "names": []
10
+ }